云原生混部技术分享 天猫双11计算成本持续降低的秘密 曾凡松(逐灵) 阿里云高级技术专家 PART1/ PART2/ PART3/ 混部的起源 阿里混部技术历程 云原生混部技术及案例 PART1 混部的起源 内部容器调度演进的重要事件 阿里容器技术简史 容器化探索调度系统探索全面容器化云原生探索云原生统一调度 20112014201620182020 T4容器 阿里第一个自研容器引擎,基于LXC研发T4容器,使得淘宝业务从VM过渡到容器 Zeus/Hippo/Fuxi 阿里构建了在线交易、搜索、大数据调度系统,收敛了资源分散在几百个BU带来的资源碎片及运营成本的问题 Sigma 基于swarm打造的容器调度引擎,驱动集团全面容器化,统一管理公司的资源,并探索了与ODPS混部技术架构 AlphaASI 调度引擎基于k8s基座的探索,加速业务运维生态融入k8s,底层引擎基于sigma,探索基于安全容器的第二代混部架构 ASI统一调度 打造第三代基于ASI的全业务混部系统,统一了电商、搜索、大数据、蚂蚁的资源调度基础设施,混部技术水位做到领先行业 混部诞生的历史背景 题混部源自对数据中心利用效率的不懈追求 AccentureTechnologyLabs@2011 埃森哲报告显示2011年公有云数据中心的机器利用率平均不到10%,意味着企业的资源成本极高;另一方面大数据技术的发展迅速,计算作业对资源的需求越来越大。 如何解决? Google公开数据显示其数据中心利用率30%~40%@2011 混部定义,什么是混部 呈现形态: 1.集群维度:在一个K8S集群内编排多种类型负载,共享资源池消除浪费 在线+在线 离线+离线 企业内不同的业务线资源统一管理,解决资源池割裂带来的效率问题。技术上需要提供共池的资源精细化编排能力。 企业日常态与大促态资源灵活拆借,解决大规模资源弹性的效率问题。技术上需要提供在线离线混部水位管理能力。 企业内不同的计算框架资源统一管理,解决资源池割裂带来的效率问题。技术上需要提供计算任务共池弹性额度管理能力。 在线业务典型的峰谷特征 CPUusage CPUusage 2.节点维度:基于对应用、对工作负载的足够理解,让多个类型负载在一个节点上运行,释放闲置资源价值 AZ1 AZ2 日常态容量 多活预留容量 日常态容量 多活预留容量 延迟敏感服务 批处理计算 实时计算 多活预留的资源长期是不会用到的,所以共节点后提供给短生命周期的任务共享,最大化算力价值。 典型的在线业务夜间存在波谷,而夜间恰好是大数据计算任务的计算窗口,利用波谷算力空闲完成报表计算。 PART2 阿里混部历程 阿里混部技术阶段一:容器化 完成了调度系统的探索,从VM过度到容器 交易PaaSAone-Normandy 调度、容器、混部变革的开端 AI(T4操作入口) 调度引擎 调度核心Master 全自动化运维变革的开端 应用 有无状态的定义与区分运维 AI-RC (Resourtroller) 在线调度器Zeus-RC ETCD ceCon 离线调度器Zeus-RC 无状态应用自动重启迁移 Zone2(不同机房或地域) Zone1机房调度(含节点调度) AI-ZC(ZoneController) 机房调度zeus-zc NC集群 StarAgent 在线交易容器调度的积累 中心调度器:基于调度策略的精细化调度 单机调度:CPU调度首次发挥价值 内核调度 规模化方向的确定:腾挪、凑框、搬迁、建站 全局最优的调度把控 混部的开端 100台小流量在离线混部验证 容器化的开端 Docker容器化验证 容器T4运维 容器异常的全自动化运维探索(如OOM、T4IP冲突) 宿主机运维 数万宿主机故障自动运维 容器调度的开端 始创:在线容器调度的开端 在线交易调度策略 规划了“统一资源管理”的长远目标 1.容器自动运维的变革,PE禁止触碰应用进程的初步终结。 2.宿主机自动化运维的变革,省掉一支T4宿主机运维团队的投入。 面对太多未知、太多需要变化,处处是质疑 说明一 备注说明一 备注说明一 阿里业务增长迅猛,资源规模逐年翻翻,挑战和机遇并存 Staragent Armory IClone TBoss IDC IPAM ECS 物理机 天基 资源运营 Sigma Cerebullum 调度核心Schedule引擎 预算滚动额度 采购 账单 阿里混部技术阶段二:统一资源池 研发域(集团所有BU在线应用) 运维域 Aone/PSP/WPP/LARK等 规模化运营(如Atom) 资源申领、销毁、镜像升级、容器启停 容器交付 Sigma调度策略 Sigma Boss 读取并加工 SAE 自动策略 Astro(策略及规则) 调度 ETCD集群 宿主机 SigmaSlave/Agent Pouch 自运维管控 Sigma-APIServer 命令通道 集群请求接入 运维支撑 资源统一接入 资源管控 宿主机管理 故障运维 基础环境 二层 captain 数据库 YARN|HIPPO 交易-Zeus2 Sigma整合后 改变: 规模:统一大资源池模式。 调度:大资源池下,Sigma调度对核心应用的各种策略保障,得以更充分地发挥价值。 资源分配:全集团充分使用了所有资源,没有闲置。 资源利用率:资源充分均衡使用。 统一大资源池 (混部&非混部) Sigma统筹所有物理资源 2个主流资源池(公共资源池+中间件资源池)四个专属资源池(菜鸟、合一、安全、海外) 其它专属特征资源池:Hippo、Captain Sigma资源调度系统 其它专属特征资源池 中间件资源池菜鸟、合一、安全、海外 阿里混部技术阶段二:在离线混部 在线电商交易积累的调度编排能力引入0层,支持跨系统的在离线混部 CPU精细编排 CPUSet互斥CPUSet独占SameCore策略 CPUSet均衡分布 CpuShare 应用重调度能力 CPU重调度能力 混部编排能力 CPU编排资源隔离保障 大促态扩容保障 应用编排策略 应用独占应用间互斥/亲和应用互斥第一/第二原则宿主机亲和宿主机独占 高级策略(数十项) IP隔离特殊需求宿主机任意标签匹配资源池匹配 网络版本、物理机机型、物理机能力匹配等….. 容器HostConfig特殊需求(如Privilege) 容灾与打散 5:POD级 4:ASW级 3;机柜级 1:机框级 0:宿主机级物理机级 应用基本需求 OS 虚拟比单元基础OS需求规格是否启动 在线+在线在线+离线 阿里混部技术阶段三:云原生化 融入K8S架构:标准的K8SAPI协议对接。 兼容存量的新老并存调度;可逐渐原地升级。 Sigma到云原生Kubernetes平台的转型 Sigma3架构升级 Kubernetes全面兼容K8S ETCD Normandy等PAASK8SAPIServer unified Sigma2APIServer etcd- 基本能力 最佳实践的积累或创新 1.K8S生态积累:基于标准CNI和CSI的集团网络和存储支持能力,众多Controller; 2.运维链路下沉:Skyline、VIP、VIPServer、自愈等; 3.K8S天然的声明式面向终态能力,扩容速度提升,自闭环POD自愈。 1.多集群管理、五元组workload模型; 2.阿里开源的最佳实践OpenKruise技术前身; 3.为K8S单集群的规模建设与影响力打下基础。 Skyline controller scheduler KubeletCRI pouchd sigma sigmaagent 业务接入 星辰大海:新兴场景、 新计算场景成为可能 1.最先在新收购的饿了么落地(18年10月1号); 2.双11深圳交易单元落地; 3.赋能UC和神马。 1.PAIJobworkload基于Sigma3的接入 2.淘宝视频等新计算场景接入 VIP VIPServer … K8spod 1.原二层调度的运维链路下沉,移植为标准k8s扩展方案。 富容器 CNI plugin CNI service IPAM 2.更厚的调度且Sigma体系内自闭环;如自愈、重调度等建设。 云原生初探。K8S规模化的大部分问题尚未开始解决 阿里混部技术阶段三:统一调度 基于云原生Kubernetes的全场景混部 阿里资源数量分布阿里资源利用率分布 电商电商独池搜索&阿里妈妈蚂蚁计算平台数据库 电商电商独池搜索&阿里妈妈蚂蚁计算平台数据库 ASI 电商调度生态 蚂蚁调度生态 搜索Hippo 大数据fuxi 大促弹性日常混部 电商调度生态 蚂蚁调度生态 搜索调度生态 大数据调度生态 应用管理 流量管理 Quota管理 分时复用 HPA VPA CA 统一调度 从调度架构统一逐步驱动整个调度生态统一 阿里混部技术阶段三:智能化 阿里巴巴CPU精细化调度技术演进 CPUSet规格自动化托管 SameCoreFirst Spreed NUMAaware APPsSpreed PodGroup MaxPerNode Reshuffle Pod14corePod28corePod34core Node Pod48corePod54corePod64core Node Pod48corePod54corePod64core Pod42.9corePod55.8corePod62.9corePod71.3corePod83.2core 资源化画像 QoS闭环反馈 安全的变配流程 自适应的资源调节 运维体系兼容 运维体系兼容 CPUthrottleaware CPUburst CPUshare Node 精细化资源分配 Pod14corePod28core Pod34core 机型性能拉齐 Node 应用画像+规格托管 (约30%资源优化)s Pod13.6corePod27.2core Pod33.6core 4/5/6/7代实例 ACUBenchmark LLCcontrol NUMAaware Hotspotmigration Pod48corePod54corePod64core CPU归一化 (约20%性能提升) Pod48corePod54corePod64core Pod71.6core 运维体系兼容 利用率归一化 提高资源精细化分配能力,提升在线业务部署密度 阿里混部技术阶段三:全面弹性 HPA–水平伸缩 PodPod PodPod Pod VPA–垂直伸缩 Pod Pod AHPA-伸缩预测 Pod Pod PodPod PodPod !"# ACK容器服务 弹性感知调度 &'()*+E#!" -./012"34* 578ECSfiECI34: 虚拟节点 ECIECI ECIECI 竞价实例 50%~90%成本节省 PodPod PodPod GPU实例 PodPod PodPod 神龙裸金属 PodPod PodPod ECS虚拟机 PodPod PodPod $%# 阿里混部技术阶段三:成果 •覆盖阿里在线、离线调度全场景、几百万容器的调度系统,共计数千万核的调度。 •强大的调度能力支撑更多弹性场景,比如搜索与电商大促节点的数十万核模分时复用,搜推数十万核的弹性实例。 低成本:50%成本降低 常态混部池:50~60% 大规模:单集群百万核 高性能:2万任务/s 弹性池:上百万核 虚拟节点 ECIECI ECIECI ECS PodPod PodPod PodPod ECS PodPod PodPod PodPod PART3 云原生混部技术及案例 Web/mobileapplications