消息队列和应用工具产品体系-申通快递云原生应用实践

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
容器镜像服务 ACR,镜像仓库100个 不限时长
函数计算FC,每月15万CU 3个月
简介: 消息队列和应用工具产品体系-申通快递云原生应用实践

开发者学习笔记【阿里云云原生助理工程师认证(ACA)课程:消息队列和应用工具产品体系-申通快递云原生应用实践】

课程地址:https://edu.aliyun.com/course/3112075/lesson/19054


消息队列和应用工具产品体系-申通快递云原生应用实践


内容介绍

一、云原生理念和微服务架构在企业的综合实践方案

二、数据库的云原生化方案
三、申通公司应用阿里云产品的总体情况

四、申通这套云上应用环境的后续展望

 

一、云原生理念和微服务架构在企业的综合实践方案

第一个案例的主角是国内最大的物流公司之一申通快递这个故事依然得从双十一说起为了解决双十一的技术挑战,申通的技术部门在物流场景中引入了IOT、大数据和AI等手段,并通过快速的技术迭代促进物流资源的有效配置,从而帮助公司面对大促后的物流洪峰。

总体来说,快速的技术迭代带来了对it基础设施的挑战。

image.png

传统的虚拟化架构在弹性方面就显得力不从心了比如上云前申通使用线下机房作为计算及数据存储的平台,一到双十一资源需求就膨胀大促之后则闲置浪费上云后,几乎全部的资源都是按量购买利用云原生技术的快速扩缩容的特性,双十一前快速扩容,双十一后有序释放,真正做到了开箱即用,不产生一天的浪费。与2019年双十一当天相比,2020年11月1日到3日,申通在业务量大幅提升的情况下,it投入反而降低了30%。这充分的体现了云原生应用快速迭代、高可用、弹性好、成本合理的特点,是一次成功的技术升级。目前,申通正把业务从IDC机房往云上搬迁,核心业务系统也已经在云上完成了流量的承接。

这套IDC系统帮助申通实现了早期的快速发展但也暴露了不少问题传统的IOE技术体系各系统架构不规范,运行不稳定,研发效率不高,这些都无法满足申通的业务发展需求。随着云计算在国内的发展成熟,越来越多的企业把自己的核心业务搬到了云上。申通在同阿里云进行多次的技术交流后,最终确定其为唯一的合作伙伴,为企业提供计算和数据的处理平台。下面我们结合容器技术及其相关的趋势,详细的分析一下申通云原生的技术架构。首先说申通业务上云的应用云原生化技术改造。

申通原来的技术核心是基于Vmware家族的虚拟化应用和oracle的数据库。计划上云后,打算通过阿里云全面转型到基于Kubernetes的云原生架构体系也就是说应用架构需要根据云原生特性进行重构。

这个过程主要涉及两个方面

第一方面,程序代码的改造升级,核心是应用的容器化和架构的微服务化。容器是云原生的一大基础,跟虚拟机比起来使用更轻量的容器来实现虚拟化,能够为应用带来效率和速度的提升,并让其更加适合微服务架构此外,通过应用的容器化还解决了基础设施不一致的问题,保证了应用在开发、测试和生产环境的一致性。

下面来谈谈微服务架构改造的目的。原来很多业务是基于oracle的存储过程及触发器来实现系统之间的服务依赖也是走的数据库ODG同步来完成的这种方式的问题就是系统非常的难于维护,也非常的不稳定。
架构升级时,通过引入Kubernetes的服务发现和微服务架构的方案,按业务域进行拆分,让整个系统更加易于维护。


二、数据库的云原生化方案

借助阿里云申通引入了ORTP和ORDP种不同类型的数据库,将在线数据与离线数据分析逻辑进行拆分,并分别存入了这两种数据库中,从而取代了oracle的数据库方案并解决了诸如查询历史数据的时候oracle表现不佳的问题。

下面我们对比这张图介绍一下申通云原生的基础架构。
image.png

第一,基础设施全部的计算资源取自阿里云的神龙裸金属服务器,Kubernetes搭配神龙服务器,能够获得更佳的性能及更合理的资源利用率。云上资源可以按量付费,特别适合大促场景,伸缩自如。相比于线下自建机房和常备机器,云上资源的操作更加方便,管理成本也更低。

第二,流量接入申通共有三套流量接入系统,一套是面向公网请求的,一套是面向自有办公和生产需求的。还有一套是仅供服务内部调用的域名解析采用云DNS及private zoom,同时借助了Kubernetes的ingress能力来做统一的域名转发,这样可以节省公网SLB的数量,便于运维管理。

第三,平台的选择,申通pass平台基于阿里云容器服务ACK进行打造了该平台具备测试、集成、预发生产统一环境,能够打通devoaips闭环。由于其天生的资源隔离,机器资源利用率高,且支持多云跟混合云的部署上云后每个应用都在Kubernetes上面创建单独的name space,并定义配置模板。通过该方案,申通实现了应用的资源隔离版本的快速升级和历史回滚。

第五,运维管理得益于阿里云的托管版容器服务,申通免去了运维master节点的工作,只需要制定works节点的上线及下线流程即可。同时,上面运行的业务系统均通过pass平台完成日志的搜索系统,根据策略按需自动完成扩容操作,降低了直接操作Kubernetes集群所带来的风险。

下面我们来结合左边的这张图,从三个角度说明一下申通的云原生服务的特点。

image.png

首先我们说说应用和数据迁移的特点。申通的云上业务系统及业务中间件均是通过镜像的方式部署的应用通过服务发现组件进行注册和调用,全部在线应用对应的POD及service配置均保存在pass平台里面。每个应用的历史镜像版本都保存在系统中,这样随时可以基于这份配置快速的构建一套业务生产环境

数据的迁移,这个过程主要是通过DTS工具将数据及增量迁移到云上。阿里云的DTS实时数据流服务集数据迁移订阅同步于一体,可以提供稳定安全的数据传输链路。此外,小文件存储保存在OSS上面,并以nas作为共享存储介质,挂载到神龙节点,以实现服务集成的特点,申通技术以K8S集群作为计算资源,通过gate执行版本控制,并借助云环境高效的实现了应用的构建编译及镜像的上传业务镜像保存在镜像服务仓库中。

最后云平台的高可用性保证,也是云原生服务的关键。阿里云的K8S集群通过控制应用的副本数来保证集群的高可用。当节点出现故障时,通过负面数的保持,可以快速的在其他works节点上再起新的pot,再配合负载均衡等组件业务中的高可用性也得到了保障。

介绍了申通云原生应用的特点我们再来谈一谈这套方案的创新指数

第一,申通通过自己的应用和业务特点,制定了一套有效的监控体系。监控系统的任务是发现业务故障,通过引入监控体系,主动发现业务问题,快速响应并解决故障。申通在同一个pot里面部署了两个容器,一个是业务容器,一个是log tail容器应用只需按照运维定的目录,将业务日志打进去即可以完成监控数据的采集。

第二,在申通的云原生环境中,pot和ECS网络处于同等地位。

这一创新点是基于阿里云的特殊网络插件来实现的。相比于传统的社区插件特位根据阿里云的网络环境深度优化,主要有几个额外的特性

第一,不依赖VPC路由表就能够打通网络,因此节点的规模不受路由表的限制。

第二,不需要额外为POD规划olay的网段。

第三,混合云专线打通,也无需额外配置路由。

第四,可以直接将POD挂载到SLB的后端。

第五,性能至少提升了20%。

因此,申通的云原生服务架构具备一个高性能且健壮的网络技术。申通的技术团队定义了三套接入环境及三套业务环境。三套接入环境指的是公网办公网和内网公网主要是适合跟外部客户对接该网络环境通过统一的证书卸载,有助于收敛公网IP办公网只允许指定语言IP的请求,并通过网络ACL让整个应用的访问更加安全。内网适合于业务之间及混合云架构下IDC业务调用云上应用,以保证性能和安全。三套业务环境则是根据业务产品的生命周期划分的,分别是测试用的测试环境发布前验证产品的预发环境和产品正式运行的生产环境。

 

三、申通公司应用阿里云产品的总体情况

首先在成本方面,公共云可以做到随用随付,完即销毁,按量付费。另外阿里云的产品都是免托管运维的,可以节省人工运维的成本,让企业更加专注于做核心的业务。

其次,稳定性方面,云上产品至少提供了五个9以上的SLA服务,确保稳定性。阿里云的数据类产品也具备高可靠、低成本、安全性、存储、无线等特点,让企业的数据更加的安全。

第三,效率方面,借助阿里云相关的产品深度的集成,可以实现一站式的研发运维工作。

第四,赋能方面,阿里云的组件和产品涵盖了计算、AI、大数据、IOT等诸多的领域。通过已有的技术组件可以节省业务创新带来的技术成本。


四、申通这套云上应用环境的后续展望

目前,申通已经使用了云原生技术,快速的将基础设施迁移到云上,解决了成本预算问题、服务监控问题、服务接入和负载均衡等问题,让公司以更低的成本、更稳定的方式来应对快递高峰。对于类似于申通这样的传统企业,数字化转型和上云来说,使用云原生技术的内置组件和能力可以大幅降低企业研发和运维人员的技术迁移成本让企业技术人员只需要关心业务研发和迁移,而无需管理大量的基础设施迁移成本可以说是企业上云的最佳路径。

申通下一步将会结合云原生技术,在以下三个方面优化系统。

第一,实时的弹性调度快递业务是典型的周期性业务,使用云原生技术的实时弹性调度能力,可以让每天的业务高低峰都能够自动弹性伸缩,有望再节省一大笔的资源成本。

第二,智能运维和安全生产。根据云原生的细颗粒度监控能力,结合AI ops技术,针对各项系统和业务指标进行分析和诊断,从而及时的发现和处理异常事件。

第三,网络服务引入网格技术来优化目前的微服务架构,统一微服务调度的协议,实现全链路追踪和监控,进而提升研发和运维的效率。

 

 

 

 

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
2天前
|
监控 Kubernetes Cloud Native
云原生之旅:从理论到实践的探索
【10月更文挑战第34天】本文将引导你走进云原生的世界,从基础概念出发,逐步深入到实际的应用部署。我们将探讨云原生技术如何改变现代软件开发和运维的方式,并展示通过一个简单应用的部署过程来具体理解服务编排、容器化以及自动化管理的实践意义。无论你是云原生技术的初学者还是希望深化理解的开发者,这篇文章都将为你提供有价值的视角和知识。
14 3
|
9天前
|
弹性计算 Kubernetes Cloud Native
云原生架构下的微服务设计原则与实践####
本文深入探讨了在云原生环境中,微服务架构的设计原则、关键技术及实践案例。通过剖析传统单体架构面临的挑战,引出微服务作为解决方案的优势,并详细阐述了微服务设计的几大核心原则:单一职责、独立部署、弹性伸缩和服务自治。文章还介绍了容器化技术、Kubernetes等云原生工具如何助力微服务的高效实施,并通过一个实际项目案例,展示了从服务拆分到持续集成/持续部署(CI/CD)流程的完整实现路径,为读者提供了宝贵的实践经验和启发。 ####
|
1天前
|
Kubernetes Cloud Native 持续交付
云原生技术在现代应用开发中的实践与思考
【10月更文挑战第35天】云原生技术,作为云计算的进阶形态,正引领着软件开发和运维的新潮流。本文将深入探讨云原生技术的核心理念、关键技术组件以及在实际项目中的应用案例,帮助读者理解如何利用云原生技术优化应用架构,提高开发效率和系统稳定性。我们将从容器化、微服务、持续集成/持续部署(CI/CD)等角度出发,结合实际代码示例,展现云原生技术的强大能力。
|
9天前
|
Kubernetes 负载均衡 Cloud Native
云原生应用:Kubernetes在容器编排中的实践与挑战
【10月更文挑战第27天】Kubernetes(简称K8s)是云原生应用的核心容器编排平台,提供自动化、扩展和管理容器化应用的能力。本文介绍Kubernetes的基本概念、安装配置、核心组件(如Pod和Deployment)、服务发现与负载均衡、网络配置及安全性挑战,帮助读者理解和实践Kubernetes在容器编排中的应用。
36 4
|
14天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。
|
15天前
|
监控 Cloud Native Java
云原生架构下微服务治理策略与实践####
【10月更文挑战第20天】 本文深入探讨了云原生环境下微服务架构的治理策略,通过分析当前技术趋势与挑战,提出了一系列高效、可扩展的微服务治理最佳实践方案。不同于传统摘要概述内容要点,本部分直接聚焦于治理核心——如何在动态多变的分布式系统中实现服务的自动发现、配置管理、流量控制及故障恢复,旨在为开发者提供一套系统性的方法论,助力企业在云端构建更加健壮、灵活的应用程序。 ####
62 10
|
10天前
|
Kubernetes Cloud Native API
云原生架构下微服务治理的深度探索与实践####
本文旨在深入剖析云原生环境下微服务治理的核心要素与最佳实践,通过实际案例分析,揭示高效、稳定的微服务架构设计原则及实施策略。在快速迭代的云计算领域,微服务架构以其高度解耦、灵活扩展的特性成为众多企业的首选。然而,伴随而来的服务间通信、故障隔离、配置管理等挑战亦不容忽视。本研究聚焦于云原生技术栈如何赋能微服务治理,涵盖容器编排(如Kubernetes)、服务网格(如Istio/Envoy)、API网关、分布式追踪系统等关键技术组件的应用与优化,为读者提供一套系统性的解决方案框架,助力企业在云端构建更加健壮、可维护的服务生态。 ####
|
10天前
|
Kubernetes 监控 Cloud Native
云原生应用:Kubernetes在容器编排中的实践与挑战
【10月更文挑战第26天】随着云计算技术的发展,容器化成为现代应用部署的核心趋势。Kubernetes(K8s)作为容器编排领域的佼佼者,以其强大的可扩展性和自动化能力,为开发者提供了高效管理和部署容器化应用的平台。本文将详细介绍Kubernetes的基本概念、核心组件、实践过程及面临的挑战,帮助读者更好地理解和应用这一技术。
40 3
|
15天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第20天】本文探讨了MongoDB Atlas的核心特性、实践应用及对未来云原生数据库的思考。MongoDB Atlas作为云原生数据库服务,具备全球分布、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了实施MongoDB Atlas的最佳实践和职业心得,展望了云原生数据库的发展趋势。
|
10天前
|
监控 安全 Cloud Native
云原生安全:Istio在微服务架构中的安全策略与实践
【10月更文挑战第26天】随着云计算的发展,云原生架构成为企业数字化转型的关键。微服务作为其核心组件,虽具备灵活性和可扩展性,但也带来安全挑战。Istio作为开源服务网格,通过双向TLS加密、细粒度访问控制和强大的审计监控功能,有效保障微服务间的通信安全,成为云原生安全的重要工具。
29 2
下一篇
无影云桌面