面向云微服务的协同自动扩缩容
分布式、并行与集群计算
2022-08-09 v3 系统与控制
系统与控制
摘要
随着云应用从单体架构转向松耦合的微服务,应用开发者必须决定为应用内每个微服务分配多少计算资源(例如,副本容器数量)。这一决策同时影响(1)应用开发者的美元成本与(2)应用用户感知的端到端延迟。如今,各个微服务通过独立自动扩缩容,在每微服务CPU或内存利用率越过可配置阈值时添加虚拟机。然而,应用用户的端到端延迟包含多个微服务上的耗时,且每个微服务可能需要不同数量的虚拟机来实现整体端到端延迟。我们提出COLA,一种面向微服务应用的自动扩缩容器,它以最小化美元成本为全局目标,同时将端到端应用延迟保持在给定目标之下,协同地为微服务分配虚拟机。利用5个开源应用,我们将COLA与若干基于利用率和机器学习的自动扩缩容器进行比较。我们在Google Kubernetes Engine (GKE) 的不同计算设置下评估COLA:用户管理计算资源的GKE standard,以及云提供商管理计算基础设施的新运行模式GKE Autopilot。在63个工作负载中的53个上,COLA达到了所需的中位或尾部延迟目标,并在其中相比次便宜的自动扩缩容器平均降低成本19.3%。COLA在这53个工作负载中的48个上是最具成本效益的自动扩缩容策略。使用COLA管理集群带来的成本节约使其在几天内即可收回其训练成本。在较小的应用上,我们得以穷举搜索微服务配置,发现COLA在90%的情况下是最优的,其余情况接近最优。
关键词
引用
@article{arxiv.2112.14845,
title = {Collective Autoscaling for Cloud Microservices},
author = {Vighnesh Sachidananda and Anirudh Sivaraman},
journal= {arXiv preprint arXiv:2112.14845},
year = {2022}
}