4.1.2 云原生应用架构优势
应用架构被认为是技术发展和创新的火车头。首先,好的应用架构可以快速支撑业务的高速发展;其次,敏捷的应用架构可以大大提升研发效能;最后好的应用架构还可以大大减少后端资源的使用,降低运维的压力。
快递公司是非常典型的云边一体架构,实操环节很重。尤其头部的快递公司基本都拥有数万个分点部和几百个中转场、仓储场地。大量的业务逻辑下沉到边缘,边缘设备的管理和运营挑战压力越来越大,所以快递公司在上云改造过程中,云边一体化的架构升级改造是快递公司必然的选择。通过云边一体,可以让开发在同一个平台上面完成云上业务及边缘侧业务的迭代开发。同时,快递公司还有典型的大数据处理场景,全网每天会新增数亿条扫描数据,需要对这些数据进行实时分析,这就对快递企业的数据处理要求非常高。
云原生技术天然适合解决传统应用升级缓慢、架构臃肿、不能快速迭代等问题。具体来看,云原生有四点优势是快递企业迫切需要的:
一是云原生架构带来更快速的业务交付速度。数字化转型的紧迫需求下使得快递企业越来越多的业务衍变成数字化业务,数字化业务对于业务渠道、竞争格局、用户体验等诸多方面都带来了非常严苛的要求,直面用户需求更加快速的响应成为企业的核心竞争优势。应用微服务化开发,服务之间使用标准的API接口进行通信。松耦合架构会减轻因需求变更导致的系统迭代成本,为多团队并行开发提供基础,并加快交付速度。云原生技术实现了应用的敏捷开发,大幅提升交付速度,降低业务试错成本,快速响应用户需求,增强用户体验,加速业务创新。
二是云原生架构能够更好的提升业务稳定性。自动化程度高,自愈性高,云原生使得应用本身具有“韧性”,即面对强大压力的缓解能力以及压力过后的恢复能力。通过服务状态、系统健康度、接口调用情况、异常的实时告警等实现可视化及预警化,自动化的量化和监控功能,结合业务健康检测启用容器级别的异常自动恢复,及时规避业务风险。
三是云原生架构大幅减少企业IT成本。云原生极致的弹性免除了企业侧因应对峰值业务所带来的预留资源的浪费,提高资源的复合利用率,降低了资源成本。同时传统IT架构下的应用中捆绑嵌入了大量的非业务功能,重复造轮子现象严重,研发成本居高不下。云原生技术标准化的交互方式,应用与应用基础设施(编程框架、中间件等)逐步分离,应用基础设施从专用转为通用,从中心化转为松耦合模块化。应用基础设施下沉与云平台充分融合,将云能力与应用基础设施能力进行整合封装构筑统一的技术中台,向业务应用提供简单、一致、易于使用的应用基础设施能力接口,实现技术中台化,缩减重复开发的人力与资源成本。
四是云原生架构更大程度的降低了内部协同的折耗。通过引入DevOps理念优化软件研发运营全周期的管理,从软件需求到生产运维的全流程改进和优化,结合统一工具链,实现文化、流程、工具的一致性,降低组织内部的沟通与管理障碍,加速业务的流程化、自动化。云原生架构变革了研发运营的生产方式,打破组织壁垒,实现研发与运维的跨域协同,进一步解放生产力。云原生应用架构改造。某头部快递公司原来的IT架构是基于VMware+Oracle数据库的架构,与阿里云原生团队沟通后,决定采用基于Kubernetes的云原生架构体系。对应用服务架构进行改造,上云之前先对应用的结构、中间件以及研发发布流程都进行了一次整体的改造升级,如下:
4.1.2.1 引入云原生中间件产品
1)消息队列在快递行业应用链路中主要用于订单/实操链路异步解耦,是非常核心的组件,RocketMQ,RabbitMQ升级到云原生的版本,利用云产品提供的高可用能力提高核心组件稳定性。
2)注册中心&配置中心从原来的consul迁移到了mse的nacos版本。
3)分布式任务从原来自建的xxl-job,逐步到schedulerX2.0。
4.1.2.2 应用容器化
跟虚拟机比起来,容器可以同时提升效率和速度,让其更适合微服务场景。另外所有应用原来都是通过jeckins打成war或jar包,直接发布到物理机器上,存在多个应用发布到一台机器上的情况。引入容器技术,解决了环境不一致的问题,保证应用
开发、测试、生产环境的一致性。
1)统一镜像,保障日常、预发、生产的环境,固定pod的规格。
2)统一jvm的参数规范,统一标准模板。
3)准化日志打印格式,封装定义统一的业务日志埋点。
4)改造pod的统一readness,liveness的心跳检测机制,自动拉起pod。
《快递行业云上技术服务白皮书》——4. 快递行业技术服务最佳实践——4.1 核心业务上云最佳实践——4.1.2 云原生应用架构优势(下) https://developer.aliyun.com/article/1224281?groupCode=supportservice