背景与动机

微服务架构已成为云原生应用的主流软件架构。当面临规模未知的请求流量时,服务提供商通常会为微服务分配过量的副本以满足服务等级目标(SLO),存在不必要的资源浪费。弹性伸缩指根据工作负载的变化弹性分配副本的能力,用于缓解资源成本和服务等级目标之间的冲突。微服务系统弹性伸缩面临的关键挑战是:如何确定需要进行伸缩的微服务及需要伸缩的副本数量?本文发现,瓶颈微服务的性能降级可通过调用链路传播到其它微服务,而扩容非瓶颈服务可能无法有效缓解性能降级,反而会带来资源浪费,为此,在扩容时应该更加关注性能瓶颈;同时,本文发现频繁的伸缩尝试可能会产生性能震荡,为此,需要预测不同负载和资源下微服务系统的性能表现,在模拟环境下确定伸缩动作,进而将最终策略应用到真实环境。

论文链接:https://doi.org/10.1109/TSC.2024.3376202代码链接:https://github.com/WHU-AISE/PBScaler论文《PBScaler: A Bottleneck-Aware Autoscaling Framework for Microservice-Based Applications》发表在《IEEE Transactions on Services Computing》(TSC)上。IEEE TSC属于中国计算机学会(CCF)A类期刊,是服务计算领域最权威的学术期刊之一,最新影响因子为8.1,主要关注的范围涵盖了科学技术服务创新研究与开发的所有计算和软件方面。该期刊强调服务计算领域的算法、数学、统计和计算方法,以及新兴领域的面向服务的架构、Web服务、业务流程集成、解决方案性能管理、服务运营和管理。

方法

图1: PBScaler架构图

图1展示了PBScaler的总体架构。它由三个部分组成:指标收集、性能瓶颈分析和伸缩决策。各部分的流程描述如下:

1. 指标收集。为了保证对微服务系统的可观测性,基于服务网格(Service Mesh)技术监控微服务之间的交互流量,提取微服务间依赖关系和指标信息,如微服务的性能、承受的负载以及资源消耗等。2. 性能瓶颈分析。分为伸缩触发和瓶颈定位两个子模块: a) 伸缩触发。弹性伸缩的基本触发条件是性能降级或资源冗余。针对性能降级,通过设置SLO阈值检测发生SLO违背的异常微服务;针对资源冗余,通过对服务负载变化进行显著性分析确定存在资源冗余的微服务。 b) 瓶颈定位。当发生性能降级时,并非所有的异常微服务都是性能瓶颈。如图2所示,首先基于SLO违背次数衡量每个微服务的异常程度(Step1)。由于性能瓶颈微服务与异常微服务之间往往存在直接或间接的调用关系,基于拓扑势理论计算微服务的异常势(Step2)。考虑到微服务之间存在故障传播,基于随机游走算法(PageRank)模拟故障传播(Step3),给出瓶颈微服务的可能列表和异常得分(Step4)。

图2:性能瓶颈定位

3. 伸缩决策。如图3所示,仅对瓶颈微服务或冗余微服务进行弹性伸缩。首先需要基于历史观测数据(包括各微服务的负载以及副本数)对微服务系统进行SLO违背预测。控制器在SLO违背预测器的指导下对指定微服务进行伸缩策略优化,优化目标是最小化SLO违背和资源开销。

图3:基于瓶颈的伸缩优化

评价和结果

论文在两个流行的开源微服务系统上评估不同弹性伸缩控制器的性能。选取了业界常用的Kubernetes默认伸缩控制器以及两种先进方法进行对比,涵盖静态规则、控制理论和黑盒优化等方面的工作。表1展示了四种弹性伸缩控制器在两个系统上的SLO违背率和资源开销结果,涵盖了真实场景中六种典型的负载情况。具体而言,PBScaler总体上优于对比方法,尤其是在Train Ticket系统上,其SLO违背率比其他控制器平均降低4.96%,资源消耗平均降低$0.24。表1:不同控制器在两个微服务系统上的性能对比

实验对比了不同控制器的延时分布,其余控制器能将所有工作负载下延时的中位数(P50)减少到预定的SLO阈值以内,而PBScaler进一步将延时的第三个四分位数(P75)减少到预定的SLO阈值以内。图4说明了PBScaler在维持微服务系统性能上的有效性。

图4:不同负载下的延时分布对比

主要贡献

本文提出了一种性能瓶颈感知的弹性伸缩框架,旨在保障微服务系统的服务等级目标并减少资源开销。针对异常微服务的产生涉及故障传播或副本短缺等问题,采用基于拓扑势理论的随机游走算法识别性能瓶颈,并对性能瓶颈微服务进行副本分配,在SLO违规预测器的指导下进行优化。实验结果表明,所提方法可在大幅减少资源消耗的同时降低SLO违背率。这项研究为云原生环境下微服务系统的弹性伸缩提供了新的思路和解决方案,对微服务系统的资源管理优化具有重要意义。

详细内容参见

Shuaiyu Xie, Jian Wang, Bing Li, Zekun Zhang, Duantengchuan Li, Patrick C. K. Hung. PBScaler: A Bottleneck-Aware Autoscaling Framework for Microservice-Based Applications [J].IEEE Transactions on Services Computing, vol. 17, no. 2, pp. 604-616, 2024.

作者介绍

王健

武汉大学计算机学院副教授、博士生导师,中国计算机学会(CCF)高级会员、CCF服务计算专委执行委员、武汉计算机软件工程学会副秘书长。研究方向包括服务计算、软件工程,曾主持国家自然科学基金、国家重点研发计划子课题等项目,发表论文60余篇,主导制定ISO国际标准1项、参与制定国家标准8项。曾荣获ISO/IEC标准研制“特别贡献”奖、湖北省科技进步一等奖、中国计算机学会科技进步一等奖、湖北省优秀博士学位论文奖、ICSOC2023杰出论文奖、ICWS2021最佳学生论文奖等奖励。

李兵

武汉大学计算机学院二级教授、博士生导师。武汉大学学术委员会信息学部分委员会副主任,武汉大学复杂网络研究中心副主任。中国计算机学会(CCF)杰出会员、服务计算/软件工程/教育专委会执行委员,中国电子工业标准化技术协会信息技术应用创新工作委员会专家委员会委员,中国指挥与控制系统学会网络科学与工程专委会副主任,中国人工智能学会因果与不确定性人工智能专委会委员,武汉计算机软件工程学会理事长,武汉市市政协委员、科协常委。主要研究方向包括软件工程、服务计算、人工智能、复杂系统、云计算等。在国内外著名期刊与会议上发表论文170余篇,成果多次获得政府和学会的奖励。