云栖学习小组 关注
手机版

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

  1. 云栖社区>
  2. 云栖学习小组>
  3. 博客>
  4. 正文

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

阿里云头条 2018-05-11 10:49:09 浏览11109 评论4

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

一、项目背景

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

二、实施策略

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

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

三、一阶段总结

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

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

a0766392b658aca3ed677a970a1107432c4b9c6c

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

fd6a5691b5c2bf2159bfd090f4924536d30ee583

图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

da36c2ea0cfea993ae6dca2e3219c937bc87af0d

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

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

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

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

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

de7f7046108a0ff53b6f1f543718e452dbdf4323

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

四、建设历程

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

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

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

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

五、延展思考

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

关于三墩IT人:

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

用云栖社区APP,舒服~

【云栖快讯】诚邀你用自己的技术能力来用心回答每一个问题,通过回答传承技术知识、经验、心得,问答专家期待你加入!  详情请点击

网友评论

1F
hmgmg

你倒是说说是什么应用啊?也是服了,说的这么牛,就是不上链接,或者应用名字。

(来自社区APP)
2F
anlinew

用户管理场景的应用,GTS还不能想办法避免掉?

(来自社区APP)
3F
anlinew

用户管理场景的应用,GTS还不能想办法避免掉?

(来自社区APP)
4F
超女10强

好样的,加油

(来自社区APP)
阿里云头条
文章609篇 | 关注856
关注
充分利用阿里云现有资源管理和服务体系,引入中间件成熟的整套分布式计算框架,以应用为中心,帮助... 查看详情
阿里云移动APP解决方案,助力开发者轻松应对移动app中随时可能出现的用户数量的爆发式增长、... 查看详情
阿里云推出的一款移动App数据统计分析产品,为开发者提供一站式数据化运营服务 查看详情
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效... 查看详情
阿里云总监课正式启航

阿里云总监课正式启航