申通的云原生实践之路:如何实现应用基于容器的微服务改造?

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 作为发展最为迅猛的物流企业之一,申通快递一直积极探索技术创新赋能商业增长之路,以期达到降本提效目的。目前,申通快递日订单处理量已达千万量级,亿级别物流轨迹处理量,每天产生数据已达到 TB 级别,使用 1300+ 个计算节点来实时处理业务。

头图.png

随着云计算的普及与云原生的广泛应用,越来越多的从业者、决策者清晰地认识到「云原生化将成为 企业技术创新的关键要素,也是完成企业数字化转型的最短路径」

因此,具有前瞻思维的互联网企业从应用诞生之初就扎根于云端,谨慎稳重的新零售、政府、金融、医疗等领域的企业与机构也逐渐将业务应用迁移上云,深度使用云原生技术与云原生架构。面对架构设计、开发方式到部署运维等不同业务场景,基于云原生架构的应用通常针对云的技术特性进行技术生命周期设计,最大限度利用云平台的弹性、分布式、自助、按需等产品优势。

作为发展最为迅猛的物流企业之一,申通快递一直积极探索技术创新赋能商业增长之路,以期达到降本提效目的。目前,申通快递日订单处理量已达千万量级,亿级别物流轨迹处理量,每天产生数据已达到 TB 级别,使用 1300+ 个计算节点来实时处理业务。

当业务飞速发展遭遇运维瓶颈

过往申通快递的核心业务应用运行在 IDC 机房,原有 IDC 系统帮助申通安稳度过早期业务快速发展期。但伴随着业务体量指数级增长,业务形式愈发多元化。原有系统暴露出不少问题,传统 IOE 架构、各系统架构的不规范、 稳定性、研发效率都限制了业务高速发展的可能。软件交付周期过长,大促保障对资源的特殊要求难实现、系统稳定性难以保障等业务问题逐渐暴露。

在与阿里云进行多次需求沟通与技术验证后,申通最终确定阿里云为唯一合作伙伴,采用云原生技术和架构实现核心业务搬迁上阿里云。2019 年开始将业务逐步从 IDC 迁移至阿里云。目前,核心业务系统已经在阿里云上完成流量承接,为申通提供稳定而高效的计算能力。

全面改造云原生升级,助力业务发展

申通核心业务系统原架构基于 Vmware+Oracle 数据库进行搭建。随着搬迁上阿里云,架构全面转型为基于 Kubernetes 的云原生架构体系。其中,引入云原生数据库并完成应用基于容器的微服务改造是整个应用服务架构重构的关键点。

  • 引入云原生数据库

通过引入 OLTP 跟 OLAP 型数据库,将在线数据与离线分析逻辑拆分到两种数据库中,改变此前完全依赖 Oracle 数据库的现状。满足在处理历史数据查询场景下 Oracle 数据库所无法支持的实际业务需求。

  • 应用容器化

伴随着容器化技术的引进,通过应用容器化有效解决了环境不一致的问题,确保应用在开发、测试、生产环 境的一致性。与虚拟机相比,容器化提供了效率与速度的双重提升,让应用更适合微服务场景,有效提升产研效率。

  • 微服务改造

由于过往很多业务是基于 Oracle 的存储过程及触发器完成的,系统间的服务依赖也需要 Oracle 数据库 OGG 同步完成。这样带来的问题就是系统维护难度高且稳定性差。通过引入 Kubernetes 的服务发现,组建微服务解决方案,将业务按业务域进行拆分,让整个系统更易于维护。

综合考虑申通实际业务需求与技术特征,最终选择了「阿里云 ACK+ 神龙 + 云数据库」的云原生解决方案,从而实现核心应用迁移上阿里云。

1.png

1. 架构阐述

基础设施,全部计算资源取自阿里云的神龙裸金属服务器。相较于一般云服务器(ECS),Kubernetes 搭配神龙服务器能够获得更优性能及更合理的资源利用率且云上资源按需取量,对于拥有大促活动等短期大流量业务场景的申通而言极为重要。相较于线下自建机房、常备机器,云上资源随取随用。在大促活动结束后,云上资源使用完毕后即可释放,管理与采购成本更低,相应效率。

流量接入,阿里云提供两套流量接入,一套是面向公网请求,另外一套是服务内部调用。域名解析采用云 DNS 及 PrivateZone。借助 Kubernetes 的 Ingress 能力实现统一的域名转发,以节省公网 SLB 的数量,提高运维管理效率。

2. 平台层

基于 Kubernetes 打造的云原生 PaaS 平台优势明显突出。

打通 DevOps 闭环,统一测试,集成,预发、生产环境; 天生资源隔离,机器资源利用率高; 流量接入可实现精细化管理; 集成了日志、链路诊断、Metrics 平台;

统一 ApiServer 接口和扩展,天生支持多云跟混合云部署。

3. 应用服务层

每个应用都在 Kubernetes 上面创建单独的一个 Namespace,应用跟应用之间实现资源隔离。通过定义各个 应用的配置 Yaml 模板,当应用在部署时直接编辑其中的镜像版本即可快速完成版本升级,当需要回滚时直接在本地启动历史版本的镜像快速回滚。

4. 运维管理

线上 Kubernetes 集群采用阿里云托管版容器服务,免去了运维 Master 节点的工作,只需要制定 Worker 节点上线及下线流程即可。同时业务系统均通过阿里云的 PaaS 平台完成业务日志搜索,按照业务需求投交扩容任务,系统自动完成扩容操作,降低了直接操作 Kubernetes 集群带来的业务风险。

全面释放云原生技术红利

成本方面:使用公有云作为计算平台,可以让企业不必因为业务突发增长需求,而一次性投入大量资金成本用于采购服务器及扩充机柜。在公共云上可以做到随用随付,对于一些创新业务想做技术调研十分便捷。用完即释放, 按量付费。另外云产品都免运维自行托管在云端,有效节省人工运维成本,让企业更专注于核心业务。

稳定性方面:首先,云上产品提供至少 5 个 9 以上的 SLA 服务确保系统稳定,而自建系统稳定性相去甚远。其次,部分开源软件可能存在功能 bug,造成故障隐患。最后,在数据安全方面云上数据可以轻松实现异地备份,阿里云数据存储体系下的归档存储产品具备高可靠、低成本、安全性、存储无限等特点,让企业数据更安全。

效率方面:借助与云产品深度集成,研发人员可以完成一站式研发、运维工作。从业务需求立项到拉取分支开发, 再到测试环境功能回归验证,最终部署到预发验证及上线,整个持续集成流程耗时可缩短至分钟级。排查问题方面,研发人员直接选择所负责的应用,并通过集成的 SLS 日志控制台快速检索程序的异常日志进行问题定位,免去了登录机器查日志的麻烦。

赋能业务:阿里云提供超过 300 余种的云上组件,组件涵盖计算、AI、大数据、IOT 等等诸多领域。研发人员开箱即用,有效节省业务创新带来的技术成本。

想要了解更多阿里云云原生技术细节,以及更多企业实践案例?那么就快下载《云原生架构白皮书》吧!点击链接即可下载:https://developer.aliyun.com/topic/cn-architecture-paper

阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的公众号。”

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
4月前
|
Cloud Native 中间件 调度
云原生信息提取系统:容器化流程与CI/CD集成实践
本文介绍如何通过工程化手段解决数据提取任务中的稳定性与部署难题。结合 Scrapy、Docker、代理中间件与 CI/CD 工具,构建可自动运行、持续迭代的云原生信息提取系统,实现结构化数据采集与标准化交付。
165 1
云原生信息提取系统:容器化流程与CI/CD集成实践
|
7月前
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
437 12
|
6月前
|
Kubernetes Cloud Native 区块链
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
220 0
|
9月前
|
监控 Kubernetes Cloud Native
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
|
8月前
|
存储 NoSQL 关系型数据库
微服务——MongoDB的应用场景
随着Web2.0时代的到来,传统关系型数据库(如MySQL)在高并发读写、海量数据存储及高可扩展性需求方面逐渐力不从心。而MongoDB凭借其灵活的文档结构和高效性能,在社交、游戏、物流、物联网和视频直播等场景中表现出色。这些场景通常具有数据量大、写入频繁且对事务要求不高的特点。选择MongoDB适合以下情况:应用无需复杂事务与join支持、需求不确定需快速迭代、需处理高QPS读写或超大规模数据存储、追求高可用性和快速水平扩展能力。相比MySQL,MongoDB能以更低的学习、开发和运维成本满足现代应用需求。
284 0
|
11月前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
439 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
9月前
|
监控 Cloud Native Java
基于阿里云容器服务(ACK)的微服务架构设计与实践
本文介绍如何利用阿里云容器服务Kubernetes版(ACK)构建高可用、可扩展的微服务架构。通过电商平台案例,展示基于Java(Spring Boot)、Docker、Nacos等技术的开发、容器化、部署流程,涵盖服务注册、API网关、监控日志及性能优化实践,帮助企业实现云原生转型。
|
11月前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
613 24
|
11月前
|
存储 人工智能 调度
容器服务:智算时代云原生操作系统及月之暗面Kimi、深势科技实践分享
容器技术已经发展成为云计算操作系统的关键组成部分,向下高效调度多样化异构算力,向上提供统一编程接口,支持多样化工作负载。阿里云容器服务在2024年巴黎奥运会中提供了稳定高效的云上支持,实现了子弹时间特效等创新应用。此外,容器技术还带来了弹性、普惠的计算能力升级,如每分钟创建1万Pod和秒级CPU资源热变配,以及针对大数据与AI应用的弹性临时盘和跨可用区云盘等高性能存储解决方案。智能运维方面,推出了即时弹性节点池、智能应用弹性策略和可信赖集群托管运维等功能,进一步简化了集群管理和优化了资源利用率。
|
11月前
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
本文基于2024云栖大会演讲,探讨了软件供应链攻击的快速增长趋势及对企业安全的挑战。文中介绍了如何利用阿里云容器服务ACK、ACR和ASM构建云原生软件供应链安全,涵盖容器镜像的可信生产、管理和分发,以及服务网格ASM实现应用无感的零信任安全,确保企业在软件开发和部署过程中的安全性。