作者 | 中间件支持集团上云技术小组
2019 年,阿里巴巴核心系统 100% 运行在阿里云上。2021年,阿里巴巴业务 100% 云原生化。阿里巴巴已经成为全球首家,将所有业务都放在自家公共云上的大型科技公司。
举全集团之力,将业务全部迁移至公共云,不仅是对云的笃定,也证明了阿里云有能力应对高难度、超复杂环境下的技术挑战,为客户享受云上技术红利提供了更坚实的实践保障。
01 架构一致性,开源、自研、商业化三位一体
在今年的天猫双 11 中,中间件支撑了 5403 亿的交易量,并全面升级到了公共云架构。
此次的架构升级,是以开源为内核、以公共云为基础、以 OpenAPI 进行解偶扩展,在架构上,对开源、自研、商业化进行统一。通过采用和反哺开源、推动社区建设,通过阿里巴巴丰富的业务场景、打磨技术的性能和可用性,通过云上商业化服务更多企业、打造更好的用户体验,全方位锤炼云上产品的竞争力。
这个过程中,阿里巴巴业务的研发效率提升了 20%,CPU 资源利用率提升了 30%,应用 100%云原生化,在线业务容器可达百万规模,计算效率大幅提升,双 11 计算成本下降 30%。
接下去,我们将全方位揭秘业务 100%云化过程中,后端 BaaS 化,运行时 Mesh 化,业务侧 Serverless 化的全过程。
02 中间件后端 BaaS 化,有状态应用也可分钟级交付
以往的双 11 建站交付都是线性的。先交付 IaaS 资源,然后再交付中间件,最后再交付业务。
今年,中间件升级到公共云架构后,IaaS 资源和中间件同步交付,节省了两者串行交付的时间。中间件公共云架构运维底座全部切到 K8s 上,让有状态的中间件也能做到极致弹性,使得中间件的交付效率从天级别,降低到了分钟级,极大地提升了交付效率,降低了资源保有时间和资源成本。
后端的支撑系统也全面升级,如通过对接阿里云账号权限体系,来解决安全问题;通过对接计量计费体系,来解决 IT 资产数字化问题,为集团各个技术团队的经营者可以通过账单形式,可视化的进行成本优化。
在用户界面上,也升级支持了 IPv6,为阿里巴巴生产网全面向 IPv6 架构演进做好了准备。
03 海外业务 Mesh 化,异地多活可下沉 Sidecar
阿里巴巴海外有 AE&Lazada 等多种业务形态,异地多活体系侵入性大,技术架构不统一,从而影响了全局高可用和研发协同效率。
随着服务网格架构的演进和成熟,我们逐步将服务路由标准化,路由功能层次化,通过插件模式让业务进行扩展,让异地多活体系下沉到 Sidecar,和业务逻辑解偶,探索异地多活通用、无侵入、低成本的解决方案。今年,这套体系在海外业务得到了充分验证,为未来商业化积累了实践经验。
随着 Mesh 化服务架构的深度应用,除了异地多活功能下沉 Sidecar,阿里巴巴还基于 Mesh 化架构,统一了流量调度技术与产品架构,降低了流量调度实施和治理成本,提升服务容灾能力和线上服务治理效率,实现了更加灵活和稳定的调度规则下发及单元间切流。
04 业务侧 Serverless 化,实现研发提效 38%,弹性提升 200%
Serverless 是阿里巴巴降本提效的首选技术方案。
今年双 11,Serverless 不仅成功承载了 3 倍的峰值流量 ,支撑应用场景数量也提升了 2 倍,整体研发运维体系提升 38%,主要表现在以下两个关键点上。
1、夯实三位一体技术体系,使用阿里云函数计算 FC 支撑大促全面 Serverless 化
函数计算 FC 与阿里内部的运维体系,实现全面标准化对接,打通研发的最后一公里。首次实现了业务全链路“ FaaS + BaaS ”的 Serverless 全流程研发体系。
在函数计算进入集团之前,云上的 Serverless 技术体系一直无法融入到开发者生态,虽然功能丰富、强大,但是无法被业务使用,甚至出现了使用 Serverless 技术后,研发成本反而增高的情况。所以,在 2021 年,我们发力 Serverless-Devs 工具链,基于标准的接口与集团内部的技术社区,共同打造了专属于 Serverless 的研发体系,把云上的技术巧妙的融入到了集团。
通过双 11 大促场景作为“磨刀石”,把关键的核心技术进行进一步打磨,然后反哺给云上的商业化产品和工具链,夯实三位一体的技术体系,今年交出了满意的答卷,全面支撑 2021 天猫 双 11 各类业务场景,覆盖淘特、淘系、阿里妈妈、1688、高德和飞猪等多类业务场景,数量提升 2 倍,峰值流量总数同比增加 3 倍,实现了 50w QPS 的突破,整体研发提效达到 38%。
02
2、加大 Serverless 硬核技术投入,阿里内部通过天猫双 11 场景打磨,外部通过公共云输出、服务千万家企业
在 Serverless 的场景下,冷启动的速度是客户选型的关键,也是云上产品的核心竞争力,。
今年,我们加大了硬核技术研发的投入,从“弹性策略”、“镜像分发”、“容器启动” 等全方位对冷启动进行了性能提升,冷启动时间进一步缩减 60%,刚性交付能力提升 200%。在年初,函数计算刚应用于集团内部时,Runtime 层的冷启动时间在秒级别,并且需要初始化中间件,整体的冷启动时间要大于 2s,这严重制约了 Serverless 的使用场景。
所以,我们在镜像分发上,创新性发明了 Serverless Caching 。根据不同的存储服务特点,构建数据驱动、智能高效的缓存体系,实现软硬件协同优化;即便在 GB 级别镜像冷启动的场景下,函数计算也能提秒级别的交付能力。
在调度上,相比去年,增加了定时/CPU 等更多指标的弹性策略,并且基于集团内资源统一调度的能力,支撑了天猫双 11 业务的 10w 级别的实例弹性。在容器层,使用了自研的安全容器池化技术,在容器启动上,时间进一步缩小到 50ms 以内。
这些技术,都已经在双 11 场景下得到验证,也在公共云上全面输出,已经帮助我们的合作伙伴轻松应对业务高峰。
05 从 Ops 到 Dev,云原生的技术改造正进入下半场
第一时间让客户使用跟阿里巴巴一样的技术,是中间件开源、自研、商业化三位一体的初衷。这些源自三位一体的产品正帮助云上客户更好的提升 Ops 的效率。
三位一体的商业化输出包括:
- 微服务引擎 MSE:注册&配置中心全(原生支持 Nacos/ZooKeeper/Eureka)、网关(原生支持 Ingress/Envoy)和无侵入的开源增强服务治理(原生支持 Spring Cloud/Dubbo);
- 消息队列 MQ:原生支持 Apache RocketMQ、Apache Kafka;
- 应用实时监控服务 ARMS:原生支持 Prometheus,提供基于开源的 Tracing 能力;
- 应用高可用服务 AHAS:原生支持 Sentinel、ChaosBlade;
- 函数计算 FC:支持开发者工具开源 Serverless Devs、开源可观测工具等。
云计算和云原生技术上半场更多的是解决的是 Ops 的问题,我们相信下半场更多是关注 Dev 的问题。
围绕着开发者效率的提升,中间件已经完成了 Serverless、应用运行时、低代码、云边一体,在线 IDE 等关键领域的技术布局,通过服务网格和应用运行时等技术,将非业务逻辑下沉,并且通过插件模式,形成新的研发分工,让中间件研发屏蔽底层复杂技术,让安全研发在应用运行时这层建立可信的安全防线,让高可用研发在底层通用的构建熔断、限流、降级、异地多活等能力,让业务更轻量,更聚焦业务本身开发,更高效的构建业务竞争力。