随着云计算的普及和云原生的广泛应用,越来越多的从业者和决策者清醒地意识到“云原生将成为企业技术创新的关键要素,也是最短时间完成企业数字化转型。”因此,有前瞻性的互联网企业从应用开始就扎根于云端,稳健稳健的新零售、政府、金融、医疗等企业和机构也逐步将业务应用迁移到云端,采用云原生技术和云原生架构,面对架构设计、开发方式、部署维护等不同的业务场景,基于云原生架构的应用通常会根据其技术特点进行技术生命周期设计。云平台,最大限度发挥云平台的弹性、配送、自助、按需等产品优势。作为发展速度最快的物流企业之一,申通快递一直在积极探索技术创新之路赋能业务增长,以达到降本增效的目的,目前申通快递日订单处理量已达千万级,亿级物流轨道处理量,每天产生的数据达到TB级,1300+计算节点实时处理业务。当业务快速发展遇到运维瓶颈时,申通快递的核心业务应用曾经运行在IDC机房,原有的IDC系统帮助申通稳定度过了早期的业务快速发展期。但随着业务量呈指数级增长,业务形态也更加多元化。原来的系统已经暴露出很多问题。传统的IOE架构,各系统架构的不规则性、稳定性、研发效率等都限制了业务快速发展的可能性。软件交付周期过长,大促保障对资源的特殊需求难以实现、系统稳定性难以保障等业务问题逐渐暴露。在与阿里云进行多次需求沟通和技术验证后,申通最终确定阿里云为唯一合作伙伴,并采用云原生技术和架构,将核心业务迁移至阿里云。2019年,业务将逐步从IDC迁移至阿里云。目前,核心业务系统已在阿里云完成流量验收,为申通提供稳定高效的计算能力。全面转型云原生升级,助力业务发展申通核心业务系统原有架构基于Vmware+Oracle数据库。随着搬迁到阿里云,架构已经全面转型为基于Kubernetes的云原生架构体系。其中,引入云原生数据库,完成应用容器化微服务改造,是整个应用服务架构重构的重点。引入云原生数据库通过引入OLTP和OLAP数据库,将在线数据和离线分析逻辑拆分为两类数据库,改变了以往完全依赖Oracle数据库的现状。满足在处理历史数据查询的上下文中Oracle数据库无法支持的实际业务需求。随着容器化技术的引入,应用容器化通过应用容器化有效解决了环境不一致的问题,保证了应用在开发、测试、生产环境中的一致性。与虚拟机相比,容器化提供了效率和速度的双重提升,让应用更适合微服务场景,有效提升产研效率。微服务改造由于过去很多业务都是基于Oracle的存储过程和触发器完成的,因此系统间的服务依赖也需要与Oracle数据库OGG同步。由此带来的问题是系统维护困难,稳定性差。通过引入Kubernetes的服务发现,构建微服务解决方案,按照业务领域拆分业务,让整个系统更容易维护。综合考虑申通的实际业务需求和技术特点,最终选择了“阿里云ACK+神龙+云数据库”的云原生解决方案,实现核心应用向阿里云的迁移。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等众多领域。研发人员开箱即用,有效节省业务创新带来的技术成本。原文链接本文为阿里云原创内容,未经许可不得转载。
