联合作者:志敏,冬岛,戒空,邓隽,佳旭,谢乘胜,元毅,溪洋
在 2022 年的双 11 大促季中,阿里云容器服务(简称 ACK)、容器镜像服务(简称 ACR)除了支撑集团核心系统容器化以及为云上产品提供支撑外,也将内部多年大规模容器技术以产品化的能力输出给众多围绕双 11 的生态公司和 ISV 公司。ACK 和 ACR 每年持续迭代、发布新的产品功能,同时将管理数万个容器集群的规模化能力和最佳实践也透出给客户,通过技术红利支撑来自全球各行各业的容器云。本文会介绍 ACK 和 ACR 的新产品能力和实践助力双 11 场景下的客户和业务。
近年来,降本增效成为了众多企业 IT 管理者关注的重要问题,企业已经到了精益用云的时代。以容器为基础的云原生技术正在深刻地改变企业上云和用云的方式,如何利用云原生技术帮助企业实现降本增效是很多 IT 负责人关注的话题。
每年的阿里巴巴双 11 都是考验各种前沿技术的最佳“实战场”。2021 年双 11,阿里集团就已经实现 100% 应用云原生化,电商微服务、中间件等应用,以及搜索、大数据、 AI 业务全部运行在统一的容器平台基础之上。发展到今年,容器服务在双 11 期间又实现了哪些技术和应用的新突破呢?
本文将介绍 ACK 和 ACR 新产品能力在云原生实践的探索和经验、带来的价值,及其在双 11 中的应用,希望为更多企业提供基于 ACK 和 ACR 实现云原生化演进、实现云上 IT 架构高质量发展的可参考案例。
01
阿里云容器服务为双11
多领域提供深度支持
Aliware
阿里云容器服务 ACK(Alibaba Cloud Container Service for Kubernetes)是全球首批通过 Kubernetes 一致性认证的服务平台,提供高性能的容器应用管理服务,支持企业级 Kubernetes 容器化应用的生命周期管理。ACK 在阿里巴巴集团内作为核心的容器化基础设施,有丰富的应用场景和经验积累,包括电商、实时音视频、数据库、消息中间件、人工智能等场景,从 2015 年上线起一直在双 11 期间为内外部客户提供广泛的技术支持;同时,容器服务将阿里巴巴内部各种大规模场景的经验和能力融入产品,向公有云客户开放,提升了更加丰富的功能和更加突出的稳定性,容器服务连续多年保持国内容器市场份额第一。
在过去的一年,ACK 进行了积极的技术升级,持续提升产品性能和服务能力,通过这些升级带来的云原生红利也直接运用到双 11 中。ACK 在今年双 11 期间稳如磐石,深度参与了众多领域的支撑,包括在阿里巴巴电商核心系统在零售云支撑聚石塔,在物流云支撑菜鸟 CPAAS,在中间件云原生支撑 MSE 和 MQ,在边缘云支持支撑 CDN 和边缘计算,同时支持数据库云原生化等。
阿里云容器镜像服务 ACR 作为云原生领域中统一的应用资产管理及分发平台,从双 11 大促准备期开始就需要应对云原生应用大规模、大批量高效及安全分发问题。当前 ACR 面向企业级场景提供承载云原生应用制品安全托管与高效分发能力的企业级产品形态 (简称 ACR EE) ,在双 11 期间助力企业大促的应用业务发布及扩容准备,同时也服务了集团内部多方业务。
02
今年双11容器服务技术
和应用新突破
Aliware
下面将从极致弹性、智能运维、DevSecOps、全链路加速几个方面来讲解 ACK/ACR 的技术创新和产品功能如何在双 11 场景下,与业务方密切结合,提供了弹性、速度、运维、安全、效率等全面综合的体验。
01
极致弹性 AHPA
关于 AHPA
弹性本质要做的事情是在保证业务稳定性的前提下,提升资源使用率。
当前由于应用本身存在冷启动,应用启动耗时长。而通用的弹性方案也面临一些问题,如直接使用固定实例数,资源浪费明显;使用 K8s 提供的 HPA,在业务请求到达之后才触发弹性,导致弹性滞后。而使用定时弹性策略, 需要评估每个时间段扩容多少,缩容多少,并且随着业务的变化需要随时进行调整,带来配置繁琐的问题。
那么面对弹性滞后问题我们如何来解呢?容器服务 ACK 推出了基于机器学习算法的弹性实现方案:AHPA。
AHPA(Advanced Horizontal Pod Autoscaler)是基于应用历史指标预测未来 Pod 实例数量,解决弹性滞后的问题。通过主动预测和被动预测相结合,实时调整资源实例数。被动预测基于应用实时指标计算 Pod 数量,可以很好的应对突发流量; 主动预测基于历史指标通过达摩院机器学习算法提前预测出未来 24 小时应用的实例数量。此外,AHPA 还增加了兜底保护策略,可以设置时间区间的实例数上下界值实现弹性兜底。
通过 AHPA 可以实现毫秒级预测,秒级弹性生效,在复杂多周期情况下依然保持较高的识别率,周期识别准确率高达 95% ,同时将主动预测和被动预测相结合让弹性更准。对于噪音,缺失值,异常值都具有不错的鲁棒性。
AHPA 助力达摩院智能语音
达摩院智能语音交互产品是基于语音识别、语音合成、自然语言理解等技术,为企业在多种实际应用场景下,赋予产品“能听、会说、懂你”式的智能人机交互体验。客户业务自身有峰谷波动特征,期望使用弹性降低资源使用成本。但直接使用 HPA 存在如下 2 个问题:
1. 弹性滞后。由于资源调度、应用启动也需要一定时间,在扩容的过程中,业务稳定性可能会受到影响。
2. 配置复杂。配置过于激进可能导致应用稳定性受影响,配置过于保守,成本优化的效果就大打折扣。需要反复尝试才能达到一个合理的水平。而且随着业务的变化,也会需要重新调整弹性策略
针对上述客户的业务痛点,结合智能语音业务应用具有周期性的特征分析,达摩院智能语音落地了容器服务 AHPA 弹性预测方案,通过主/被动预测相结合,解决弹性滞后问题。
ASR(语音识别)业务应用在双 11 期间可以做到 90% 的 Pod 在业务到来之前 Ready,CPU 使用率提升 10%, 资源成本节省 20%。此外能够根据业务量变化趋势,自动进行弹性规划,无需人工干预,大大节省了运维成本。
AHPA 提升菜鸟 CPaaS 弹性能力
菜鸟 CPaaS 业务涉及菜鸟乡村、申通物流链路,特别是仓库作业的,潮汐很明显。但直接使用 HPA 需要面对弹性滞后的问题,而使用定时弹性需要随业务变化随时人工调整,运维成本高。
菜鸟 CPaaS 通过将 AHPA 弹性预测与自身弹性平台相结合,真正实现了按需使用的弹性能力。双 11 期间,为菜鸟业务环境提供智能客服服务以及菜鸟经营服务工单平台提供弹性预测能力,实现了低峰时将容器数降下去省钱,高峰时扩出来保障日常业务,非常规流量时可以资源应急,满足了用户极致弹性能力的诉求。
02
智能运维
对于绝大多数用户来说,使用 Kubernetes 的还是非常复杂的,很少有用户具备解决 Kubernetes 使用中遇到的问题的能力,遇到问题只能提工单。对于一线技术支持的同学来说,排查 Kubernetes 问题同样不容易,一方面是由于 Kubernetes 非常复杂,需要付出巨大的学习成本,另一方面排查问题不是会用就够了,还需要专门的经验积累,而且排查流程也费时费力,定位无法快速定位,用户业务持续受影响,这些都是我们不希望看到的。
如何才能帮助用户更好的使用 Kubernetes?如何降低 Kubernetes 运维门槛?如何在客户遇到问题的时候能够快速帮助定位?针对这些问题,ACK 将自身多年的 Kubernetes 管理经验结合 AI 技术打造了智能运维 AIOps 套件,目前套件中包含了自动化诊断、智能巡检和 OS 透视三大块功能。
智能运维中的诊断功能覆盖了绝大多数用户经常遇到的 Kubernetes 问题,可以直接给出故障的根因,并给出修复建议,告诉用户诊断修复。在支持客户的过程中我们就遇到了一个典型的诊断案例,客户反馈有些节点突然 NotReady 了,影响了线上业务,我们建议用户先通过智能运维自助诊断一次,用户发起诊断操作后,很快看到了结果,在异常原因中报告因为安全组规则拦截了 Kubelet 到 APIServer 心跳的上报,导致节点 NotReady。基于这个结果,用户很快的修复了安全组规则,放开了 Kubelet 到 APIServer 的访问,业务恢复,整个过程从上报到修复只用了几分钟。
除了出现问题时可以帮助用户快速定位,AIOps 套件的另一个重要能力是防患于未然,在用户的 Kubernetes 集群出问题之前提前预测可能出现的问题,提前解决,提供这个能力的就是 AIOps 套件的智能巡检功能。智能巡检功能在用户集群业务低峰期运行,基于内置的数据分析引擎,推测集群中的潜在风险,联动 SLS 告警,主动通知到用户。智能巡检现在已经成为客户应对诸如双 11 重保需求的必备手段,在活动开始前客户都会确认智能巡检中的风险都已经处理完毕。在这个双 11 当中,智能巡检功能帮助中间件团队的发现了 CoreDNS 部署风险、SLB 配额风险等多个问题,及时优化了 CoreDNS 部署模式,提升 SLB 配额,提前规避了潜在的故障。
03
DevSecOps
ACR EE 围绕传统软件交付环节在云原生场景下的新特性,提供了符合业务实践的软件供应链安全产品能力。2022 年信通院组织的相关评审中,Salesforce 基于 ACR EE 的 DevSecOps 实践案例获评“安全守卫者计划优秀案例”,通过 ACR EE 提供的云原生 DevSecOps 能力,半年内实现万次镜像扫描,千次风险镜像拦截阻断,千次加签/验签安全交付。基于全自动化软件安全交付链流程,实现快速一键自动修复漏洞风险,云原生应用安全交付效率提升 3 倍。
在双 11 大促业务备战期间,除应用制品交付效率外,应用制品安全交付也是需要重要关注的一环。如何在云原生场景下为容器化应用交付的 DevOps 流程融入高效且自动化的安全环节,降低安全措施实施成本是 ACR EE 提供的一系列 DevSecOps 产品能力目标所在:
在开发阶段,提供不可变 Tag 能力预防生产环境容器镜像被非预期覆盖,保障应用版本在生产环境部署过程中的一致性。特别是在大促扩容场景中,避免出现新扩容的应用版本和通过生产验收的版本不一致导致扩容失败等问题。
在交付阶段,提供云原生应用交付链能力,支持镜像风险漏洞扫描检测、部署阻断、事件通知、漏洞修复治理,相关人员在接到漏洞通知后可在第一时间主动修复漏洞,实现安全左移;同时,借助 ACR EE 支持的云安全扫描引擎,支持从系统漏洞、应用漏洞、基线检查、恶意样本多个维度进行安全风险检测及策略阻断。
在部署和运行阶段,提供容器镜像加签、验签等能力,防止镜像被攻击者恶意篡改,可在 ACK 集群中启用验签组件,禁止在集群中部署未受信任验签不通过的应用制品或版本。客户可以通过使用上述产品能力,为容器应用交付场景实施 DevSecOps ,提升软件迭代生命周期安全性。
04
全链路加速
此外在大促期间,如何保障应用制品交付效率也是非常重要的一环。容器化应用的部署、扩容、重启等动作都存在容器镜像访问过程,该过程的快慢会直接影响到应用的部署体验,因此应用制品交付效率决定了大促业务发版、扩容、快恢效率。ACR EE 提供了构建加速、全球化同步加速、分发加速等全链路端到端加速方案,带来日常和大促期间云原生应用更新迭代、扩容、快恢的顺滑体验。
在构建加速方面,ACR EE 通过独享构建资源、远程缓存、海外源智能加速缩短构建任务构建过程耗时,同时结合实例内置的上传优化能力,缩短构建任务上传耗时。整体构建任务耗时相较于普通构建方案可缩短 30%,在支持公有云客户提速构建任务的同时,ACR EE 构建能力也作为阿里云 Serverless 产品标配构建能力,支持大促期间 Serverless 应用构建及发布提速。
在全球同步加速方面,随着越来越多的国际化业务加入到双 11 中,ACR EE 提供了全球化同步加速能力支持实现应用全球化不同地区版本同发,提升了客户应用发版效率。在双 11 大促期间,ACR EE 同步加速能力为内外部客户带来了全球化视角下的应用发布提速体验,支持大促业务服务于全球客户。
在分发加速方面,随大促业务的峰谷波动,在业务高峰期来临快速完成应用扩容是客户的核心诉求,同时随着更多客户使用 Serverless 产品构建业务应用,频繁地冷启动对容器镜像拉取效率也提出了更高的要求。在容器应用大规模分发场景,ACR EE 提供了 P2P 分发加速能力,利用集群节点间的带宽资源,大幅提升容器镜像拉取整体带宽。在大体积容器镜像或者冷启动场景,为降低应用启动延时,ACR EE 提供了按需加载加速能力,支持自动化生成按需加速镜像,基于按需能力启动容器应用时,可实现秒级启动 GB 级应用镜像容器。此外 ACR EE 提供了加速套件,支持在在线、Serverless、边缘等差异化场景下应用负载透明启用加速能力,在双 11 期间为内外部客户带来了容器化应用制品分发加速支持。
03
总结
Aliware
随着云原生技术的快速发展,ACK 和 ACR 提供了安全稳定、高性能的容器服务产品已经成为云上实施容器化业务的最佳载体。在本次双 11,容器服务 ACK 在各个场景为双 11 作出贡献,支撑了阿里巴巴内部核心系统容器化上云,支撑了阿里云微服务引擎 MSE、视频云、CDN 等云产品,也支撑了双 11 的生态公司和 ISV 公司,包括聚石塔电商云、菜鸟物流云等等。ACK 和 ACR 会持续前行,持续提供更高更好的云原生容器网络、存储、调度和弹性能力,端到端的全链路加速和安全能力。
点击阅读原文,前往容器服务 ACK 官网查看更多相关资讯!