LeanCloud 推出至今,主要都是通过公有云的共享集群模式来服务客户。随着业务成熟度的不断提升,众多企业客户对平台稳定性、后端可控性以及功能多样性方面的要求越来越高,而其中有些需求是共享集群模式很难实现的,所以我们现在推出了新的 独立部署方案,希望减少使用中的限制,给开发者更大的灵活性,同时也提供一个更加稳定可靠的完整后端,满足业务系统的更高要求。
新的独立部署方案里,我们会使用「独立的存储集群 + 独立的 API 集群 + 独立的扩展服务集群」的模式来构建一个完整的、物理隔离的公有云系统,供单个用户和应用独享使用。这里的「扩展服务」是指基于存储到云端的结构化数据,解决特定业务需求的垂直服务,例如并行计算(原离线分析功能)、全文检索(原应用内搜索功能)等。
独立部署的存储集群
大家知道,LeanCloud 使用 MongoDB + MySQL 的混合存储系统,来为成千上万的应用提供结构化数据存储服务,共享存储集群显著降低了使用成本,但是也存在一些明显的限制,例如并发请求数和大批量操作的限制,因此现在已有不少企业用户选择使用了我们的独立部署方案(企业版)。
独立部署的存储集群,是指 LeanCloud 在资源池中单独创建一个独立的 MongoDB 集群,由指定用户独享集群的物理资源(CPU/内存/磁盘/网络等)。与共享存储集群相比,独立部署的方式有如下优点:
- 更好的硬件,我们会提供多种规格的配置够大家按需选择,并且所有服务器都会配置 SSD 硬盘,以提供低延迟高吞吐的 IO 能力;
- 解除使用限制,对于独立部署的存储集群,我们会放开访问限制(如批量处理等),在硬件能力许可范围内尽可能满足用户需求;
- 用户的隔离,由于整个存储集群只供单个用户使用,与其他用户的资源完全隔离,避免受到其他租户的干扰,更加稳定可靠。
独立部署的 API Server
独立部署的 API Server 是和独立的存储集群搭配工作的。将 API Server 独立部署,是指为单个应用启动一批独立的 API Server(数量由开发者根据需求选择),这些 Server 节点仅仅只服务单个应用的所有请求,以此提供专属、稳定的后端服务。
与共享模式相比,独立部署的 API Server 有如下优点:
- 开放更强大的聚合查询接口,由于一些聚合查询,例如 group by,distinct count 等操作,需要耗费更多的计算资源,所以在共享存储集群上我们是禁止这些操作的,但是在独立部署模式下,我们会开放这部分接口,以满足业务需求;
- 开放更多的批量操作和管理接口,例如批量修改、删除数据,以及建立索引等操作,我们也会直接开放出来,给开发者更大的便利性;
- 解除租户限制,例如最大并发数,这样一些在共享模式下必须要有的限制,在独立部署方式下都会取消掉;
- 隔离,更好的稳定性,以及固定的价格。
独立部署的并行计算服务
LeanCloud 推出来的离线分析服务,通过 SQL-like 的接口,给大家提供了一个大规模数据处理的方案,但是共享计算集群的模式,也带来了很多使用上的限制,例如:
- 数据源位于共享的 MongoDB 集群,由于多租户共享使用的原因所以存在 IO 带宽限制,并不能让处理速度完全跑起来;
- 计算集群资源共享,所以会限制单个离线分析任务可用的最大资源量,且所有任务需要排队轮流使用;
- 计算结果要持久化到数据库的话,为了避免给存储集群造成过大的瞬时压力,离线分析服务对写入的规模和速度也会有比较严格的限制;
- 无法支持用户自定义函数和操作符。
由于这些限制的存在,使得离线分析的目标——提供大规模数据处理的高效解决方案——很难实现。鉴于很多用户对并行计算有比较迫切的需求,在新方案中我们引入了独立部署的并行计算服务。
独立部署的并行计算服务,是指单独为用户创建一个独立的计算集群,由单个用户独享计算集群的物理资源,与其他用户完全隔离。与共享集群模式相比,独立部署模式有以下优点和特性:
- 开放自定义函数,可以支持更灵活的业务查询算法;
- 解除软限制,因为底层的存储集群和计算集群都是独立部署的,所以我们会去掉数据载入、计算、结果写出等环节的限制,在硬件能力许可范围内尽可能满足用户需求,让并行计算真的成为高效的解决方案;
- 提供丰富的硬件资源供用户选择,我们会提供不同规格和规模的计算资源,供开发者根据业务需求进行合理选择;
- 隔离,更好的稳定性和时效性。
以后共享集群的「离线分析」主要是供大家体验和在小规模数据集上低频使用,大量的数据以及较多的并行计算任务,还是需要在独立的计算集群上来执行。
独立部署的全文检索服务
LeanCloud 应用内搜索服务底层使用了 Elastic Search 来做全文索引,现在共享集群的方式无论在索引的规模还是速度上都存在一些限制,并且在分词和排序方面也无法定制,满足不了大客户的要求,在新的方案中,我们也会将这一模块进行独立部署,以便提供更灵活的服务能力。
独立部署的日志服务(云引擎)
对于云引擎的用户来说,程序运行日志的展示和查询是一个非常重要的功能,有不少用户提出过希望搭建自己的 ELK 日志分析平台,以满足在更长时间维度、更大数据规模、更复杂查询条件下的日志分析需求,将来我们也会在云引擎中提供独立部署的日志服务,给大家带来更好的使用体验。
路线图
我们从年初开始讨论独立部署方案,在不影响公有云迭代的前提下投入部分资源进行了新架构的研发,计划于 8 月份推出「独立部署的存储集群 + 独立部署的 API Server」的开放测试,于年底推出「独立部署的并行计算服务」和「全文检索服务」。
有兴趣参与「独立部署存储集群 + API Server」方案测试的用户,可以在这里登记您的信息,我们会主动跟您联系,欢迎大家参与测试,谢谢。