阿里决战双11核心技术揭秘——混部调度助力云化战略再次突破
雷锋网 AI 科技评论按:每年的「双 11」都掀起了买买买的热潮,阿里巴巴将这个原本普通的日子赋予了非凡的意义。据雷锋网 AI 科技评论了解到,今年的双 11,阿里巴巴再次打破了上一年的交易记录,3 分钟 GMV 超百亿,一小时 GMV 近 600 亿,零点后交易峰值 32.5 万笔/秒,支付峰值 25.6 万笔/秒。
在大家如丝般顺滑地完成一次次秒杀、抢购和付款过程的背后,是阿里巴巴技术团队经历数年时间的系统打磨,技术架构优化所做出的努力。而底层基础设施服务质量不断提升、IT 成本增加逐年递减的演进历程,都由一个名为「云化战略」的技术梦想所贯穿起来。
特别是 2017 年双 11,阿里巴巴首次混合部署了在线服务、离线计算以及公共云,作为全球最大规模的混合云,资源弹性能力再度升级,计算资源效率再一次得到极大提升。
光明顶指挥室合影 via 阿里巴巴
阿里巴巴的云化技术战略,是阿里集团基础设施近年来一直在努力的方向。包括混合云、资源 Pouch 容器化、统一调度、存储计算分离和混部等多项技术的不断突破和创新。
据阿里巴巴资深技术专家丁宇(花名叔同)介绍,在前几年完成混合云部署提升资源弹性的基础上,最近两年的目标则是提升混合云下的资源效率为主,特别统一调度和容器化两大重要目标,各 BU 在线系统都陆续进行 Pouch 容器化改造,并统一接入 Sigma 调度系统,直至 2017 双 11 这一世界级应用场景,最终释放云化技术架构的巨大价值。
阿里巴巴混部技术视频介绍:
Sigma 调度系统和混部
在大规模的数据中心中,基于自动化调度的集群管理系统已经成为互联网公司的必然选择,以提高数据中心的资源利用率。阿里巴巴高级技术专家吕奇(花名潇谦)介绍道,在以往的双 11 中,为了保证系统的在线交易服务顺利运转,最初几年,阿里都是在大促来临之前大量采购机器储备计算资源,双 11 之后资源大量闲置;最近几年则依靠阿里云弹性资源来应付洪峰流量,在每次双 11 的前两个月左右,团队做容量规划时采用阿里云的弹性计算资源作为储备,构建了全球最大的混合云,从而使得资源持有时间也在逐年优化减少,大幅降低成本。
另一个趋势是,随着大数据的普及,对实时性要求不高的计算任务集群规模越来越大,甚至超过在线服务。阿里技术团队也在思考,是否能把计算任务与在线服务进行混合部署,在现有弹性资源基础上提升集群资源利用率,降低双 11 资源新增成本。 于是从 2015 年开始,阿里巴巴技术团队尝试将延迟不敏感的计算任务和延迟敏感的在线服务部署到同一集群上运行,让在线服务的空闲资源充分被计算任务所使用,以提高集群的整体利用率,也就是混部技术的应用。
于是在今年双 11,技术团队除了继续打造最大的混合云保障计算资源弹性外,还依托阿里云资源弹性能力再次升级,特别是资源混部的能力,使得资源效率大幅提升。 基于资源弹性和混部技术的云化战略又一次为双 11 带来成本的降低,未来这样具有混部能力的混合云弹性能力将通过阿里云开放,让用户以更低的成本获得更强的计算能力,进而帮助整个社会提高资源效率。
「在线服务的容器就像砖块,而计算任务就像沙子和水。当在线服务压力小的时候,计算任务就占住那些空隙,把空闲的资源都使用起来,而当在线服务忙的时候,计算任务便立即退出空隙,把资源还给在线服务。」通过混部,系统在平时可以极大地提升服务器资源利用率,而在双 11 这样的大促活动需要突增在线服务能力的时候,又可以通过在线服务占用计算任务资源的方式,来顶住短暂的超高峰值压力。
此外在混部技术实施中,由于在线服务机型与计算任务机型等不同的计算资源要求有比较大的差别,阿里还通过存储计算分离技术,把资源分为计算节点和存储节点两大类,完全统一了异构机型。
在资源隔离技术方面,从服务器的内核层面,对 CPU、内存、IO、网络等多方面进行优先级的划分,做到对相关任务的毫秒级自适性调度或限制,以保证高优先级的任务不受影响。
在资源隔离与存储计算分离两大技术难题得到突破后,经过 2 年多的试验论证、架构调整和优化,混部调度方案已走向大规模生产环境,并已服务于电商核心应用和大数据计算服务 ODPS 业务。阿里官方提供的数据显示,实施混部方案后在线服务集群的日常平均资源利用率从之前的 10% 提高到了现在的 40% 以上,且同时保证在线服务 SLO 目标不受影响。
「所以今年双 11 云化架构的方案,就是在充分发挥混合云弹性架构的基础上,通过统一调度和混部,复用计算任务集群资源,1 个小时内迅速建起新的交易站点,分流应对洪峰流量。」叔同介绍道。
在备战双 11 阶段,云化架构,特别是混部技术的价值显得尤为重要。在节约资源的同时,也实现了成本的极大降低。叔同向雷锋网 (公众号:雷锋网) AI 科技评论表示,「云化架构使多个数据中心像一台计算机一样来管理,可以跨多个不同的平台来调度双 11 所需要的资源,以极低成本快速拿到服务器,并大幅提升资源利用率,支撑双 11 的容量准备,今年双 11 通过云化架构使 IT 资产新增成本下降 50%。实现了真正的弹性资源平滑复用,任务灵活交叉部署。接下来这个能力可以在阿里云平台输出,提升产业的 IT 效率。」
而为了实现便捷调度,统一基础运维资源的接口,集团在线业务资源的容器化改造就成了云化战略的另一个重要基础。
Pouch 容器化改造
如果用「Pouch」这个词可能大家相对陌生,但提到 AliDocker,大家想必更熟悉一些。
实际上,AliDocker 是一个过渡阶段的技术名词,在阿里自研容器集成了 Docker 镜像机制,兼容 Docker API 后,临时命名为 AliDocker。去年双 11,在基础设施方面最大的变化就在于,双 11 的所有交易核心应用都是在容器中跑起来的,几十万容器撑起了双 11 交易 17.5 万笔/秒的下单峰值。后续,AliDocker 根据阿里场景进行了大量增强,代码全部重写,命名为 Pouch,本意为育儿袋,也隐含着这一容器技术能够「贴身呵护应用」。截止到今年双 11,阿里已在集团范围实现在线服务全部 Pouch 容器化,内部已达到百万级容器部署规模。
根据阿里巴巴技术专家孙宏亮(花名宏良)的介绍,Pouch 具有如下特点:
1、首先 Pouch 是一种富容器技术,内部应用体验类似虚拟机,拥有 init 进程,富含多种系统服务,用户使用 Pouch 时体验跟在一台虚拟机当中相同,另外,Pouch 还提供友好的用户界面;
2、其次通过内核加固与轻量级虚拟机支持,Pouch 提供丰富的安全隔离保障和隔离维度。在 Linux 原生 cgroup 基础上,具备 diskquota, cache-io, ulimit, net, LLC 等更丰富维度的资源隔离和限制能力;
3、在镜像分发上,特别是超大规模场景下可通过 P2P 的方式缓解网络负载;
4、在内核兼容性方面,更加符合企业现状,考虑到大部分企业 IT 系统内核的升级缓慢、版本较低,最大限度适配现有底层基础设施,支持 2.6.32 以上版本的 Linux 内核。完善的运行时支持,同时 runlxc,runc,vlinux 等多种运行时;
5、丰富的插件群,内置 alilocal/ceph/alinet/ultron 等插件,极大增强了容器在远程盘、网络等方面的功能特性和扩展能力;
6、出众的性能和稳定性,Pouch 支持多线程执行容器指令,同时镜像支持链式分发、热更新或通过盘古、ceph 等远程盘直接挂载,大规模、高频度的容器操作和更新场景下依旧能够表现稳定从容。
开源,开放
作为工业界的代表,阿里巴巴也在资源调度与集群管理上做出了技术探索,顺利迎战一年又一年的双 11。 在混部技术方面,为了更好地带动学术界在科研领域找寻更好的基础数据,阿里巴巴已对外开放内部核心混部集群的数据。「希望学术界能在有一定规模的真实生产环境数据中,寻找到资源调度和集群管理更好的模式和方法,能够指导优化实际生产场景,将机器利用率和服务质量提高到一个更高的水平。」
而在 Pouch 容器化改造的道路上,宏良表示,Pouch 在未来将走上完全开源的道路。除了共同制定行业标准,协助容器技术落地外,Pouch 也计划在双 11 后的中国开源年会上现场开放源代码,并经过 5 个月的社区打磨后,于 2018 年 3 月底发布第一个大版本。
雷锋网 AI 科技评论也期待,阿里巴巴在秉承云化技术战略的基础上继续探索,不断提升计算资源的利用率,为以双 11 为代表的全民狂欢提供坚实可靠、灵活高效的 IT 基础设施,也有信心在未来通过阿里云提升行业资源效率,降低创业成本,实现普惠。
编者注:文中图片及视频由阿里巴巴提供,特此感谢。
相关文章:
阿里双11凭什么达到1682亿交易额?这些技术支撑或许是原因
天猫双11第一小时:剁手族贡献570亿,阿里工程师抗住25.6万笔/秒支付峰值
。