1. 背景和挑战
作为发展最为迅猛的物流企业之一,某快递公司一直积极探索技术创新赋能商业增长之路,以期达到降本提效的目的。目前,某快递公司日订单处理量已达千万量级,亿级别物流轨迹处理量,每天产生数据已达到T B 级别,使用1300+个计算结点来实时处理业务。
过往某快递公司的核心业务应用运行在 IDC机房,原有 IDC系统帮助某快递公司安稳度过早期业务快速发展期。但伴随着业务体量指数级增长,业务形式愈发多元化。原有系统暴露出不少问题,传统IOE架构、各系统架构的不规范、稳定性、研发效率都限制了业务高速发展的可能。软件交付周期过长,大促保障对资源的特殊要求难实现、系统稳定性难以保障等业务问题逐渐暴露。
在与阿里云进行多次需求沟通与技术验证后,某快递公司最终确定阿里云为唯一合作伙伴,采用云原生技术和架构实现核心业务搬迁上阿里云。2019年开始将业务逐步从 IDC迁移至阿里云。目前,核心业务系统已经在阿里云上完成流量承接,为申通提供稳定而高效的计算能力。
2. 基于云原生架构的解决方案
某快递公司核心业务系统原架构基于 Vmware+Oracle 数据库进行搭建。随着搬迁上阿里云,架构全面转型为基于Kubernetes 的云原生架构体系。其中,引入云原生数据库并完成应用基于容器的微服务改造是整个应用服务架构重构的关键点。
1)引入云原生数据库
通过引入 OLTP、OLAP 型数据库,将在线数据与离线分析逻辑拆分到两种数据库中,改变此前完全依赖Oracle 数据库的现状。满足在处理历史数据查询场景下Oracle 数据库所无法支持的实际业务需求。
- OLTP:Online Transaction Processing,事务型数据库,也称交易型数据库
- OLAP :Online Analytical Processing,在线分析数据库
2)应用容器化
- 解决了环境不一致的问题
- 效率与速度双重提升
伴随着容器化技术的引进,通过应用容器化有效解决了环境不一致的问题,确保应用在开发、测试、生产环境的一致性。与虚拟机相比,容器化提供了效率与速度的双重提升,让应用更适合微服务场景,有效提升产研效率。
3)微服务改造
由于过往很多业务是基于Oracle 的存储过程及触发器完成的,系统间的服务依赖也需要Oracle数据库OGG(Oracle Golden Gate) 同步完成。这样带来的问题就是系统维护难度高且稳定性差。通过引入Kubernetes 的服务发现,组建微服务解决方案,将业务按业务域进行拆分,让整个系统更易于维护。
综合考虑申通实际业务需求与技术特征,最终选择了“阿里云 ACK+ 神龙+云数据库”的云原生解决方案,从而实现核心应用迁移上阿里云。图14-7展示了最终的上云架构。
(1)架构阐述。
基础设施,全部计算资源取自阿里云的神龙裸金属服务器。相较于一般云服务器 (ECS),Kubernetes 搭配神龙服务器能够获得更优性能及更合理的资源利用率。且云上资源按需取量,对于拥有促活动等短期大流量业务场景的申通而言极为重要。相较于线下自建机房、常备机器,云上资源随取随用。在促活动结束后,云上资源使用完毕后即可释放,管理与采购成本更低,相应效率流量接入,阿里云提供两套流量接入,一套是面向公网请求,另外一套是服务内部调用。
域名解析采用云 DNS及 PrivateZone。 借助Kubernetes 的Ingress能力实现统一的域名转发,以节省公网 SLB 的数量,提高运维管理效率。
(2)平台层。
基于Kubernetes打造的云原生PaaS平台优势明显突出。
- 打通DevOps闭环,统一测试,集成,预发、生产环境;
- 天生资源隔离,机器资源利用率高;
- 流量接入可实现精细化管理;
- 集成了日志、链路诊断、 Metrics平台;
- 统一APIServer接口和扩展,支持多云及混合云部署。
(3)应用服务层
每个应用都在Kubernetes上面创建单独的一个Namespace, 应用和应用之间实现资源隔离。通过定义各个应用的配置Yaml 模板,当应用在部署时直接编辑其中的镜像版本即可快速完成版本升级,当需要回滚时直接在本地启动历史版本的镜像快速回滚。
(4)运维管理。
线上 Kubernetes集群采用阿里云托管版容器服务,免去了运维Master结点的工作,只需要制定Worker结点上线及下线流程即可。同时业务系统均通过阿里云的 PaaS平台完成业务日志搜索,按照业务需求投交扩容任务,系统自动完成扩容操作,降低了直接操作Kubernetes集群带来的业务风险。
3. 应用效益
-
成本方面:
- 不需要业务一次性大量投入,随用随付款,不用时立即释放。
- 产品托管在云端,节省运维成本。
-
稳定性方面:
- 稳定性高(ACK目前可用性保证99.95% ,这是阿里云官方承诺的,而不是教材上吹的五个9)
- 避免了自己搭建开源软件的功能bug
- 数据备份具备高可靠、低成本、安全性、存储无限等特点
-
效率方面:
- 借助与云产品深度集成,研发人员可以完成一站式研发、运维工作
- 排查问题方面,集成的 SLS 日志控制台快速检索异常日志、定位问题
-
赋能业务:
- 阿里云提供超过300余种的云上组件,涵盖计算、 AI、 大数据、 IoT等诸多领域。开箱即用,有效节省业务创新带来的技术成本。