浙江移动首个基于阿里云技术的生产应用上线成功

一、项目背景

为落实公司“十三五”战略,建立“架构先进、运营高效、内外兼顾”的IT体系, 浙江移动近日受总部信息技术中心委托和指导,探索传统企业与互联网公司新型合作模式,跟踪行业发展态势,开展新技术、新产品研究和创新,在集团内首次携手亚洲最大的云计算公司——阿里云,在“可监可管可运维”基础上,开展第三方基础组件引入试点验证。

二、实施策略

浙江公司经过与阿里云工程师多次讨论后决定,采用分阶段实施与快速试点,在降低对应用侵入的同时又要兼顾实际效应,考虑轻量级系统验证和关键业务引入。试点具体分为多个阶段执行,其中一阶段以快速落地验证技术组件为目标。

一阶段总体原则以经历天猫双11核心交易业务和各类型业务考验的阿里云DRDS分布式关系型数据库服务(Distributed Relational Database Service)组件在M域试点应用的快速验证为诉求,完成“统一用户管理”应用迁移DRDS的“短平快”功能验证,开发上尽量以最小化改造实现DRDS的“分库分表”、“平滑扩容”以及“无差别运维”。一阶段完成后出具改造的评估报告,为二阶段实施提供参考。

三、一阶段总结

一阶段选取了“统一用户管理”系统作为试点,该应用原来采用了传统中小型应用常见的前后端一体化架构,原有的数据库为PostgreSQL。随着业务的不断发展,“统一用户管理”系统的传统基础架构正不断接受挑战,其中数据库单点瓶颈问题尤其突出,存在单库容量平瓶颈、扩展困难、二次开发难度高、性能问题难以优化等诸多问题。

1、改造前后系统部署架构对比如下:

浙江移动首个基于阿里云技术的生产应用上线成功

图1——原“统一用户管理”系统部署架构

浙江移动首个基于阿里云技术的生产应用上线成功

图2——“统一用户管理”接入DRDS后的系统部署架构

2、一阶段实施后的收益:

应用本身只需进行少量的接口适配工作即可接入DRDS,收益则是分布式数据库所带来一系列优秀特性:

1)分库分表

支持数据库分库分表,在创建分布式数据库后,可以按照业务特性设定拆分规则,实现数据水平拆分。

2)透明读写分离

通过使用只读实例实现读写分离,可低成本增加集群读负载能力,释放主库压力,且对业务代码透明,无需改造;同时具备一致性读能力。

3)数据存储平滑扩容

当出现数据存储容量和访问量瓶颈时,支持在线存储容量扩展,扩容无需应用改造,扩容进度支持可视化跟踪。

3、一阶段实施过程中的挑战:

“统一用户管理”作为首个接入试点的应用,在一阶段实施过程中先后遇到数据库语法不兼容如何解决、如何制定拆分方案、分布式事务如何解决等问题,并一一攻克。

1)从PostgreSql到DRDS

应用原有数据库选型为PostgreSQL,而DRDS目前仅可以无缝对接Mysql。因此,应用首先要完成数据库切换并解决数据库间Sql方言或特性差异的问题。

开发团队从代码逻辑入手,全面替换了不兼容的数据类型,并在功能测试中不断分析SQL执行效率并进行细致优化,为应用后续接入DRDS做好充分准备。

2)分库分表拆分规则

应用存在若干千万级的核心大表,在迁移到DRDS时应根据“确定业务主体——寻找关键字段——计算分库分表数”三步原则处理。

以工单操作属性表为例,该表所有操作围绕“工单操作”进行,因此选定applyopid(工单单号)为拆分键。未来预估此表1-2年的数据总量为六千万行,根据以下公式可得此表需按照分库且每个分库两个分表执行:

单库物理分表数 = CEILING(60,000,000 / ( 1 * 8 ) / 5,000,000) = 2

浙江移动首个基于阿里云技术的生产应用上线成功

图3——分库分表规则说明

3)分布式事务实践—全局事务服务(Global Transaction Service,简称 GTS)

在对应用的几张核心大表进行拆分后,原本存储在单库单表里面的数据分散到了多库多表里,因而应用在对相关数据进行写操作时会涉及到分布式事务的问题。

分布式事务管理的传统解决方案是基于XA协议的两段提交方式,需要进行针对性的开发,对已有业务逻辑有较大侵入,且性能较差。

经过综合评估后,决定引入阿里云的全局事务服务GTS。GTS具有接入简单、与DRDS无缝衔接、对业务逻辑无侵入的特性,有效地解决了由数据库拆分引发的一系列事务控制问题。

浙江移动首个基于阿里云技术的生产应用上线成功

图4——“统一用户管理”系统接入GTS部署示意图

四、建设历程

一阶段于今年2月上旬立项,春节后正式开始实施,在浙江移动和阿里云双方精诚合作下,前后仅用了1个多月的时间就将试点应用成功发布上线。期间重大工程里程碑如下:

1、2018年2月上旬,在春节前完成立项,春节后项目正式启动。

2、2018年3月底,系统成功将数据库迁移至MySQL。

3、2018年4月底,系统完成生产数据割接并正式接入DRDS。

五、延展思考

本次合作是中国移动集团内部首次与业界先进互联网公司的深度技术合作,在践行集团“可监可管可运维”理念的基础上,通过一阶段试点业务的改造实践,在组件能力、运维模式、运维工具、集成方案等方面磨合、积累、沉淀了宝贵的经验,也在项目协作、架构匹配上,初步验证了浙江移动与互联网公司先进技术、理念相结合的可行性,为后续二、三阶段在浙江移动的核心系统上开展更加深入的试点工作奠定了坚实基础。

关于三墩IT人:

“三墩IT人”微信公众号于2014年12月底建立,是浙江移动IT团队建立的面向全行业的IT技术和经验交流平台。

上一篇:oc63--协议@protocol1


下一篇:SQL Server差异备份的备份/还原原理