力谱宿云助力企业“快省好”进入移动互联新时代
先看架构图,我们的数据库服务器主要采用两种。事物依赖或者强一致性要求的数据,用MySQL来存储。用户的数据库访问请求经过负载均衡和代理,到达目标数据库服务器和对应DB,MySQL和MongoDB均是类似,差别在于MySQL和MongoDB的集群组织方式差别比较大。MySQL采用主备读写分离方式,大型应用采用代理加数据分片。MongoDB采用复制集方式,大型应用采用Mongos加数据分片方案。设计上遵循三个设计原则:第一个原则,一应用一库;第二个原则,一库一账户;第三个原则用户需求分级。通过分库将数据在物理上隔离,且方便扩展和迁移。通过一库一账户原则,区分数据的访问权限。通过用户需求分级,规模比较小的用户可以共享数据库服务器资源,规模慢慢增大时,可以独享资源,继续增大是可以独享更多的服务器资源。 PaaS服务对数据接入进行了抽象,MySQL实现的代理叫Circe,兼容MySQL5.7版本协议,MongoDB代理叫Pandora,兼容MongoDB3.0以上协议。在数据代理层实现了数据访问路由,鉴权,Metrics采集,流控能力,能够支持共享、独享、定制多种部署模式支持迁出。 和主流PaaS的云数据库对比 以AWS的RDS为例,资源申请以RDS实例数为单位,每个RDS是由两个配置相同的EC2实例以及运行在EC2上的主备数据库组成。如果做到应用间数据和权限的隔离,并且对应用代码透明、无侵入,需要每个应用单独申请一台RDS。 MaxLeap的云数据源,以应用为单位,在物理和访问权限上进行隔离,应用A和B规模较小,可以使用公共服务器,但是数据和权限独立。应用C规模一般,使用独立的数据服务器资源。应用X规模很大,可以定制集群方案。 因此,云数据源在成本和灵活性上有很大优势,小规模时期,使用共享资源,降低成本,中、大规模时变更为独享,甚至使用集群方案。 为什么服务能够做到隔离和扩展 先看架构图,用户请求经过负载均衡器和网关,到达目标服务的容器。通过容器技术保障服务间的资源隔离;可扩展性通过网关和容器技术同时保障,小规模的应用共享服务资源,规模扩大后可以启动独立的服务,并可以根据场景决定需要的资源数量。网关会根据用户的设定,动态路由请求到对应容器实例。整个Docker容器环境,基于Mesos构建,生态本身支持水平无线扩展,通过Marathon对容器的资源调度进行管理,从底向上,IaaS层、Mesos层、Docker层,每层都可以水平扩展。 对架构进行总结和梳理。整个服务基于Docker容器构建,达到资源隔离、快速扩展的特性,Docker容器基于Marathon和Mesos构建,管理、调度、监控、Failover等方案成熟,支持水平扩展。网关支持服务的路由。整个架构支持多租户共享服务和独享模式。 安全设计也非常重要。网络通过https对请求进行加密,针对DDOS对整个网络基础架构进行了部署,VPC内部对防火墙进行规划。服务中对不同级别的请求进行分级和鉴权操作,服务针对不同领域进行了拆分,在设计和部署上相互独立。对敏感数据加密、数据访问支持ACL、应用分库物理隔离、每个度权限独立,访问隔离。业务数据进行容灾备份。 总结 PaaS+SaaS这种研发模式通过MaxWon云平台验证完全可行,能够加快研发速度,解决掉了隔离和扩展问题,降低运维团队的压力。MaxWon现在支持20多个营销模块的自由组合,更多模块快速研发中,支持电商、社交、教育、餐饮等多个行业,支持上千家商户的稳定运行。 (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |