【论文】略读笔记3-前沿-拓扑感知部署

【论文】略读笔记3-前沿-拓扑感知部署

Fre5h1nd Lv5

📖《Topology-Aware Scheduling Framework for Microservice Applications in Cloud》

🎯需求

  • 【在容器中运行的松散耦合和高度内聚的微服务正在成为应用程序开发的新范例。】云服务最近开始在架构上从单体到数百或数千个松散耦合的微服务进行重大转变。每个微服务都可以独立实现、部署和更新,而不会影响整个应用程序的完整性。因此,越来越多的团队正在采用微服务架构来提高其应用程序的可扩展性、可移植性、可维护性和可用性。
  • 【与单体式应用程序相比,基于微服务架构构建的应用程序可以独立部署和扩展,这有望简化软件开发和操作。】微服务体系结构是一种设计方法,用于使用一组小型服务构建 Web 服务。每个服务都使用轻量级机制与其他服务通信,例如HTTP资源API或远程过程调用(RPC),这完全改变了传统云系统设计的假设。这也意味着微服务在提高利用率和优化服务质量 (QoS) 方面既带来了机遇,也带来了挑战。
  • 然而,数据中心微服务规模和东西向网络流量的急剧增加使集群管理变得更加复杂。微服务的规模不仅会给群集管理带来巨大压力,而且级联 QoS 违规也会给 SLO(服务级别目标)带来巨大风险。
    • 基于微服务架构的应用与传统单体应用的主要区别在于,数据中心的单体应用只产生南北向流量,而云服务提供商更关心用户请求流量的负载均衡。基于微服务架构的应用程序往往会在数据中心生成更多的东西向流量,这是由微服务之间的相互调用引起的。对于此方案,数据中心中存在进一步优化的空间。微服务应用程序中的调用依赖关系可以描述为树状拓扑,为微服务应用程序的最佳部署提供了很好的机会。

🚧现状

  • 大多数云数据中心使用简单的方案来做出资源分配决策。他们经常忽略分配的资源与每个微服务的整体性能之间的关系。因此,它可能会导致在某些关键微服务上浪费宝贵的资源。
  • 在大规模集群中,有一些方法(例如,过度配置,重复配置)倾向于使用性能模型,启发式方法或机器学习算法为微服务分配更多的CPU和内存。但是,这种方法有两个局限性。
    • 首先,它们忽略了微服务应用之间的特征,表明微服务的拓扑依赖关系无法利用。
    • 其次,它们忽略了微服务和集群的高度动态特性。
  • 这些方法不仅无法处理动态服务级别目标(SLO)违规问题,而且当微服务更改时,它们的性能可能会降低。
  • 由于微服务应用中东西向流量较大,调度优化的一个直截了当的思路是考虑微服务应用的拓扑结构。即把构成应用的微服务一起放置,降低微服务之间的通信成本和来自其他服务的网络干扰。但是,这种解决方案往往会导致微服务在主机上的聚合,数据中心的资源管理器受限于合理分配资源以提高资源利用率。

🛩创新

  • 如何有效利用微服务应用中嵌入的拓扑信息来降低服务通信开销,提高部署中的资源利用率,处理动态SLO违规是一个难题,本文主要针对这一问题进行解决。
  • 本文提出一种面向微服务的拓扑感知调度框架(MOTAS),该框架通过启发式图映射算法有效地利用微服务和集群的拓扑结构来优化微服务应用程序的网络开销。所提出的框架还可以保证集群资源利用率。针对微服务的动态环境,我们提出一种基于分布式跟踪分析的机制来检测和处理微服务应用中的QoS违规行为。
  • 本文的主要贡献可以概括如下:
    • 拓扑感知调度算法:我们分析微服务的特征并定义微服务应用程序的配置文件。我们确定了影响微服务应用程序部署的关键参数,并定义了集群的配置文件。基于此,我们使用部署模型来描述微服务应用程序的部署,并进一步提出了一种新的算法(MOTAS),旨在通过减少资源碎片来提高资源利用率,并通过减少通信干扰来提高应用程序稳定性。
    • 调度框架:为了解决影响微服务应用程序SLO的两个主要动态问题,我们提出了一个拓扑感知调度框架。在框架中,我们将静态拓扑感知调度算法扩展到动态级别。我们提出了一种重新调度机制来支持微服务的结构更改,并最大限度地减少重新部署对应用程序的影响。我们引入了分布式跟踪系统来分析微服务请求响应的关键路径。基于对关键路径的监控和分析,可以实现受影响微服务的自动对账,保证微服务应用的性能。
    • 评估:我们在真实的群集环境中进行评估,以验证调度框架在资源利用率和服务 SLO 方面的有效性。通过与 First Fit 调度策略和 Kubernetes 默认调度策略的对比,证明了我们的拓扑感知调度策略在缩短服务响应时间、提高吞吐量和提高集群资源利用率方面具有更好的性能。此外,通过手动注入SLO违规,证明了我们的调度框架可以针对集群的动态异常有效优化微服务的部署,保证应用的服务质量。

📊效果

  • 通过实际实验,该框架在保证集群资源利用率、降低应用端到端延迟、提高吞吐量、处理QoS违规等方面是有效的。

🧠疑问

  1. 南北向流量东西向流量这种称呼的来源是什么?

    解释:
    南北流量(NORTH-SOURTH-TRAFFIC):客户端到服务器之间通信的流量。
    东西流量(EAST-WEST-TRAFFIC):指的是服务器和服务器之间的流量。
    来源:
    该命名来自于绘制典型network diagrams的习惯。在图表中(网络拓扑图),通常核心网络组件绘制在顶部(NORTH),客户端绘制在底部(SOUTH),而数据中心内的不同服务器水平(EAST-WEST)绘制。
    简单理解即前者是跨层级的通信,后者是同层级的通信。
    南北东西向流量示意图

  2. 文中所提的应用并非是从请求的角度看待的工作流(DAG),而是从应用角度看待的应用网络?前者是微观的瞬时的,需要根据每次运行情况调整;后者是宏观的长期的,需要根据长期运行情况调整。
  3. 本文是否界定“调度”与“部署”的区别?还是默认二者含义是等价的?

🗺参考文献

[1] X. Li et al., “Topology-Aware Scheduling Framework for Microservice Applications in Cloud,” in IEEE Transactions on Parallel and Distributed Systems, vol. 34, no. 5, pp. 1635-1649, May 2023, doi: 10.1109/TPDS.2023.3238751.

  • 标题: 【论文】略读笔记3-前沿-拓扑感知部署
  • 作者: Fre5h1nd
  • 创建于 : 2023-05-18 20:48:54
  • 更新于 : 2024-03-08 15:34:46
  • 链接: https://freshwlnd.github.io/2023/05/18/literature/literatureNotes3/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论