作者:易立
2020 年以来,新冠疫情改变了全球经济的运行与人们的生活。数字化的生产与生活方式成为后疫情时代的新常态。今天,云计算已经成为全社会的数字经济基础设施,而云原生技术正在深刻地改变企业上云和用云的方式。如何利用云原生技术帮助企业实现降本增效是很多 IT 负责人关注的话题。
阿里巴巴一直是云原生领域的的探索者和实践者。阿里集团的云原生之路有几条主线:
- 第一个阶段是应用架构的互联网化。2007 年起,随着互联网流量大爆发,阿里开始构建互联网规模分布式应用架构,自研微服务、消息、分布式数据库等核心中间件。
- 第二个阶段是基础设施云化。阿里云 2009 年开始自研飞天云操作系统,集团业务开始逐渐上云。同时,2011 年阿里集团开始探索落地容器技术,加速应用迁云,最大化利用云的弹性,通过离在线混部优化计算成本,到了 2019 年实现了核心系统全面上云。
在这个基础上,阿里集团开始实现全面的云原生升级。我们坚持开源技术、阿里云产品和集团应用的 三位一体。到 2021 年,实现了业务 100% 上云,应用 100% 云原生化。
云原生技术已经为阿里带来了巨大的价值红利。目前阿里集团已经拥有全球最大的 K8s 集群,单集群过万节点,可以统一支持电商、搜索、大数据、AI 等多样化应用。2021 年阿里双 11 大促峰值的计算成本相较去年下降了 50%。Serverless 也在大量场景落地,研发效能提升 40%。
得益于阿里的云原生大规模实践,阿里云为企业构建了先进、普惠的云原生产品家族,同时服务阿里集团和各行业客户。2022 年 1 季度,在权威咨询机构 Forrester 发布的公共云容器平台分析师报告中,阿里云容器服务 ACK 成为比肩 Google 的全球领导者,这也是首次有中国科技公司进入容器服务领导者象限。
企业降本增效之路上面临的难题
过去几年,以容器为代表的的云原生技术快速发展,在最新 CNCF 开发者调查中,在 2021 三季度年全球已经有超过 700 万云原生开发者。使用云原生技术可以驱动企业实现降本增效是当下大多数开发者的共识。但我们同样可以看到的是,在 2021 年 CNCF《FinOps Kubernetes Report》的调研报告中显示,68% 的受访者表示所在企业过去一年在 Kubernetes 环境的计算资源成本有所增加。这背后的原因是什么?
通过与企业的沟通和分析,我们发现企业目前面临五大难题:
- 规划难。当业务迁移到容器场景后,需要对应用进行容量规划,过度分配资源会导致资源浪费,资源超售过度则会导致稳定性问题。
- 计费难。容器应用与传统应用相比具备更高的弹性和动态性,可以按需创建和释放资源,这也对费用估算带来更大的挑战。
- 分账难。与传统应用部署与资源绑定的方式不同。现在多个容器应用共享一个 K8s 集群。一个计算节点上可以运行多个 Pod,而且 Pod 可以弹性伸缩,在节点间动态迁移。应用层与资源层计量计费在空间、时间等多个维度都无法做到一对一对应,造成成本治理的复杂性。
- 优化难。云原生技术中例如:弹性、混部、Serverless、超卖等技术都有各自适合的典型场景。如果使用不当,比如弹性配置错误,可能带来意想不到的资源浪费甚至稳定性问题。
- 管理难。混合云已经成为企业 IT 架构的新常态。Kubernetes 可以帮助企业屏蔽基础差异。而不同环境财资管理能力参差不一,缺乏统一开放的用量数据模型进行管理,使得企业难以从全局的视角进行整体的成本分析与优化。
近些年,随着企业上云的加速,云财务管理(FinOps)的概念被越来越多的企业提及与采纳,FinOps 是一种云的运营模式,它将系统、最佳实践和文化结合在一起,以提高组织了解云成本的能力。这是一种为云支出带来财务责任的做法,使团队能够做出明智的业务决策。FinOps 增强了 IT、工程、财务、采购和企业之间的协作。它使 IT 能够发展成为专注于利用云技术为业务增值的服务组织。当云原生技术与 FinOps 概念交织在一起,就孕育出了云原生IT成本治理(Cloud Native FinOps)的理念,它是 FinOps 概念在云原生场景下的一种演进与进化。
为了解决云架构和云原生技术带来的新挑战,企业开始关注新的成本治理方法。通过IT、财务、业务等团队协同,在保障业务发展的同时帮助企业获得更好财务控制和可预测性。
云原生企业 IT 成本治理方案:加速企业 FinOps 进程
阿里云结合业财一体化实践和 FinOps 理念,提供了原生的产品能力,为企业提供了云上全链路财务经营管理保障。阿里云容器服务推出了企业云原生 IT 成本治理方案,助力企业在云原生云上的场景下,提供企业 IT 成本管理、企业 IT 成本可视化、企业 IT 成本优化等功能。
5 月 19 日,由中国信息通信研究院(以下简称“中国信通院”)和中国通信标准化协会联合主办的“2022 云管和云网大会”成功召开。会上发布了《可信云•云成本优化工具能力要求 - 第 1 部分 原生工具》标准及首批评测结果。阿里云凭借在云上成本管理的产品能力,以满分的成绩通过了全部 33 个能力指标,成为国内首家通过该项评估的云服务商。
阿里云企业云原生 IT 成本治理方案拥有五大核心功能:
核心功能一:独有的云原生容器场景成本分摊与估算模型。为了解决容器场景下业务单元与计费单元生命周期不一致的问题,容器服务提出了独有的计费与计量相结合的成本估算模型,并加入费用策略(付费类型、节省计划、代金券、用户折扣、竞价波动)、分摊因子(CPU、内存、GPU 卡、GPU 显存等)、资源形态(ECS\ECI\HPC)等因素的考量,实现针对 Pod 维度的成本估算以及集群占比的成本分摊。通过账单分析将集群在一个阶段内的所有资源成本进行聚合,再配合 Pod 维度的成本分摊能力实现了完整的云原生容器场景成本分摊与估算模型。
核心功能二:多维度的成本洞察、趋势预测、根因下钻。支持集群、命名空间、节点池、应用(label 通配符匹配)四个维度的成本洞察,集群维度侧重在云资源的分布、资源成本的趋势变化、集群水位与浪费的比率以及集群成本费用的趋势与预测,可以协助IT管理员准确判断成本消费的趋势,防止超过预算的场景;命名空间侧重在费用的分摊,支持短周期的费用预估以及长周期的成本分摊,支持调度水位、资源用量、成本趋势的相关性分析,协助部门管理员进行成本估算,下钻分析成本浪费,提升部门资源利用率;节点池维度侧重在资源成本规划与治理,通过实例类型、单位核时、调度水位、利用率水位的相关性分析,协助 IT 资产管理员优化资源组合和付费策略。应用(label 通配符匹配)维度侧重在领域场景成本优化,例如:大数据、AI、离线作业、在线应用等各种上层应用场景,都可以通过应用维度的成本洞察进行实时费用预估以及任务级别的成本核算。
通过四个维度的成本洞察,可以让全场景的成本优化功能与解决方案都有数据可以支撑,有理有据的进行降本增效。
核心功能三:全场景的成本优化能力、解决方案的覆盖。针对于不同企业的实际业务场景,阿里云容器服务提供了全场景的资源画像建立、成本优化能力与解决方案。此外,企业针对成本的优化策略,大部分是需要业务场景支撑的,很多场景下还会存在定制化和二次开发。因此,阿里云容器服务的企业云原生 IT 成本治理方案提供的成本洞察能力与上层优化方案完全解耦的,可以通过四个维度的成本洞察能力,覆盖全场景的成本优化手段的衡量与评估。
核心功能四:多集群/多云/混合云全类型云成本管理能力。多云是目前企业上云的新趋势,不同的云厂商的计费模型存在比较大的差异,例如:国内云服务商常见的包年包月付费方式、国际云服务商常见的信用卡预扣/后付、部分云服务商支持的节省计划以及预留实例等等。这些都对多云云管平面的成本分析能力提供了更多的挑战。阿里云容器服务的企业云原生 IT 成本治理方案通过提供统一的云服务厂商的账单与询价接入与默认实现,支持主流的云服务厂商、IDC 自建机房的费用数据的接入。并通过一致的云原生容器场景成本分摊与估算模型进行成本管理。配合企业级云原生分布式云容器平台 ACK One,不仅提供了多集群、多环境的统一集群管理、统一资源调度、统一数据容灾和统一应用交付能力,也提供了统一的财资治理能力。
核心功能五:企业云原生IT成本治理的专家服务。企业云原生 IT 成本治理不仅仅是一个产品能力或者解决方案,更是一种云原生时代的企业IT管理、组织流程、文化的演进。阿里云容器服务团队联合阿里云天基团队,通过阿里云云资管家提供完整的 FinOps 理念覆盖的产品及专家服务。
比如,我们可以通过多维度的成本分析、洞察功能,了解应用的成本和资源利用率。并能提供趋势预测。为企业财资管理提供决策依据。为了满足企业多样化的治理需求,我们还提供了开放的数据模型,可以通过 Prometheus、OpenAPI 等方式集成到企业自己的治理流程中。有了成本洞察能力,我们看看可以利用什么样的手段实现成本优化。
多样化弹性能力:弹性容器实例可以在 30 秒内扩容 3000 Pod
弹性是云最核心的能力之一,可以有效降低计算成本。ACK 在资源层和应用层提供了丰富的弹性策略。
在资源层,当集群资源不足时,ACK 集群可以利用 cluster-autoscaler 在节点池中自动创建新的节点实例。我们可以根据应用负载,选择 ECS 虚拟机,神龙裸金属实例,进行扩容。基于阿里云强大的弹性计算能力,我们可以在分钟级实现千节点扩容。
在 ACK 集群中一个更加简化的方案是利用 ECI 弹性容器实例来实现弹性。ECI 基于轻量虚拟机提供了 Serverless 化的容器运行环境,具备强隔离、高弹性,免运维、免容量规划的特性。弹性容器实例可以在 30 秒内扩容 3000 Pod,可以轻松应对突发的新闻事件,或者支持自动驾驶模拟仿真这样的批量计算业务。
值得一提的是,我们可以使用 ECS 或者 ECI 的竞价实例,它可以利用阿里云的空闲计算资源,成本折扣可以低至按量付费实例的 90%。竞价实例非常适合无状态和容错性好的应用,比如批量数据处理或者视频渲染等。在应用层,Kubernetes 提供了 HPA 的方式进行 Pod 的水平伸缩,和 VPA 进行 Pod 的垂直伸缩。ACK 内建了基于机器学习的 AHPA 方案、来进一步简化弹性体验,提升弹性的 SLA。
K8s 内建的水平 Pod 自动伸缩(HPA)有两个不足:
第一个是弹性的滞后性,弹性策略基于对监控指标的被动响应,此外由于应用本身启动、预热也需要一定时间,在扩容的过程中,业务稳定性可能会受到影响;
第二个是配置的复杂性,HPA 的运行效果取决于弹性阈值的配置。配置过于激进可能导致应用稳定性受影响,配置过于保守,成本优化的效果就大打折扣。需要反复尝试才能达到一个合理的水平。而且随着业务的变化,也会需要重新调整弹性策略。
阿里云和达摩院团队合作,推出了 AHPA,可以根据历史资源画像,对弹性周期和用量进行预测,提前扩容来保障服务质量,已经在菜鸟 PaaS 平台、阿里云智能语音服务多种场景经过验证。帮助智能语义交互产品实现 90% 的实例在业务来临之前 Ready,CPU 利用率提升 10% 节省 20% 的资源成本。
混部能力升级:在 K8s 上提供对编排调度能力的增强
随着云原生技术的广泛应用,Kubernetes 之上计算类型的工作负载越来越丰富,我们可以通过合理的编排调度,充分利用负载之间的削峰填谷效应,让工作负载以更稳定、更高效、更低成本的方式去使用资源。这也就是业界时常提及的 “混部”概念。
阿里巴巴在 2011 年开始探索容器技术,并在 2016 年启动混部技术研发,至今经过了多轮技术架构升级,最终演进到今天的云原生混部系统架构,实现了全业务规模超千万核的云原生混部,混部天平均 CPU 利用率超 50%,帮助阿里巴巴节省了大量的资源成本。
混部是在互联网企业内部重金打造的成本控制内核,凝聚了众多的业务抽象和资源管理的思考优化经验,因此混部通常都需要数年的打磨实践才能逐渐稳定并产生生产价值。但是,每家企业是否都需要很高的门槛才能使用混部,都需要大量的投入才能产生价值?
基于阿里集团内部超大规模生产实践经验,阿里云近期开源了云原生混部项目 Koordinator,旨在为用户打造云原生场景下接入成本最低、混部效率最佳的解决方案,帮助用户企业实现云原生后持续的红利释放。它在 K8s 之上提供了对编排调度能力的增强,包含三大核心能力:
- 差异化 SLO保障:在 Kubernetes 之上抽象一套面向 QoS 的资源调度机制,比如延迟敏感型的在线类任务,和 Best effort 类型可抢占的计算任务。在提升资源利用率的通俗,让低优先级的任务,对延迟敏感型任务的影响 < 5%;
- 资源精细化调度:包括 CPU、GPU 拓扑感知、资源预留、交互式抢占、碎片整理、资源画像、热点打散等精细调度能力;
- 任务调度:大数据与 AI 相关的任务调度,比如 Gang、批量、优先级抢占以及弹性 Quota(队列间借用)等,从而更好地去应用整个集群资源。
Koordinator 项目完全兼容上游标准的 K8s,无需做任何侵入式修改。阿里云容器服务提供了产品化支持,用户也可以基于开源项目应用在自己的场景中。可以说,Koordinator 的开源,可以让更多的企业看见并用上云原生混部的能力,帮助企业加速云原生化的过程。在技术上,Koordinator 能够帮助企业实现更多的负载接入到 Kubernetes 平台,丰富容器调度的工作负载类型,继而发挥出工作负载错峰分时的特征,从而实现效率、成本上的收益,保持长期可持续发展的健康形态。Koordinator 项目还在快速发展的过程中,欢迎大家一起共建。