![【论文】略读笔记42-前沿-微服务依赖强度预测](https://d3i71xaburhd42.cloudfront.net/fb6b0477130e3a6a09d283edc41bb9cdc7f1c0bf/3-Figure1-1.png)
【论文】略读笔记42-前沿-微服务依赖强度预测
![](/images/MessAround.jpeg)
📖《AID: Efficient Prediction of Aggregated Intensity of Dependency in Large-scale Cloud Systems》
🎯需求
- 服务可靠性是云提供商必须应对的关键挑战之一。在云系统中,计划外的服务故障可能会对其附属服务造成严重的连锁影响,从而降低客户满意度。
- 服务可靠性是云提供商必须应对的关键挑战之一。
- 目前的普遍做法是开发和部署小型、独立、松散耦合的云微服务,这些微服务共同满足用户的请求。服务于相同目的的微服务被称为云服务。微服务之间通过定义明确的 API 进行通信。这种架构被称为微服务架构。微服务架构因其可靠性和灵活性而被云系统广泛采用。在这种架构下,Kubernetes 等微服务管理框架将负责管理微服务的生命周期。开发人员可以专注于应用逻辑,而不是资源管理和故障恢复等烦人的任务。
- 尽管微服务管理框架提供了自动故障恢复机制,但计划外的服务故障仍可能造成严重的连带影响。例如,提供基本请求路由功能的关键服务发生故障时,会影响云服务的调用、减缓请求处理速度并降低客户满意度。因此,快速准确地评估服务故障的影响对云系统的运行和维护至关重要。了解了影响范围,可靠性工程师就能更加重视对其他服务影响更大的服务。
- 准确有效地预测连锁影响对云系统的运行和维护至关重要。
🚧现状
- 现有方法可通过分布式跟踪来确定一项服务是否依赖于另一项服务,但之前没有任何工作侧重于判别云服务之间的依赖程度。
- 失败的服务只会影响调用它的服务。换句话说,服务调用会导致服务间的依赖关系。最近的许多方法建议使用服务的依赖关系来近似估算其故障影响。云系统中的所有服务和依赖关系共同构建了一个有向服务图,也称为依赖关系图。
- Dapper 和 Jaeger 等工业跟踪框架可以很好地解决云系统中一个服务是否依赖于另一个服务的问题。
- 通过使用这些框架,调用者和被调用者服务之间的所有调用都可以被记录为由跨度组成的跟踪。每次调用的属性(如持续时间、状态、调用服务名称、时间戳等)都记录在每个跨度中。根据跨度,当前的依赖关系检测方法将依赖关系视为二进制值,表示一个服务是否调用了另一个服务。
- 然而,仅用二元依赖关系来模拟服务关系是不够精确的。
- 为了说明现有方法的不足,我们首先对亚马逊网络服务和华为云的故障进行了实证研究。
- 我们指出,基于二元依赖关系进行故障诊断和恢复是低效的。
- 这是因为云服务的不同依赖关系会对云服务产生不同的影响。在没有任何优先级的情况下手动检查不同的依赖关系是低效的,尤其是在依赖关系数量可能很大的云系统中。
- 基于这一观点,我们认为,如果能以连续值的形式来衡量依赖性,并以此来表示这种依赖性的强度,则会有所帮助。
- 具体来说,通过检查依赖于故障服务且依赖强度值较大的服务,值班工程师(OCE)可以更有可能找到系统故障的根本原因。通过恢复对故障服务依赖性强的服务,可以更快地恢复整个系统。
- 失败的服务只会影响调用它的服务。换句话说,服务调用会导致服务间的依赖关系。最近的许多方法建议使用服务的依赖关系来近似估算其故障影响。云系统中的所有服务和依赖关系共同构建了一个有向服务图,也称为依赖关系图。
🛩创新
- 在本文中,我们调查了两个云提供商的中断情况和故障诊断程序,从而提出了依赖强度的定义。我们将两个服务之间的依赖强度定义为被调用服务的状态对调用服务的影响程度。
- 然后,我们提出了端到端的方法 AID,这是第一种预测云服务间依赖强度的方法,以进行级联故障预测。
- 1)AID 首先从跨度中生成一组候选依赖对。
- 2)然后,AID 用从跨度中汇总的多变量时间序列来表示每个云服务的状态。利用服务表示法,AID 计算每个候选配对的调用方和被调用方状态之间的相似性。
- 根据时间戳和服务名称将每个跨度分配到不同的固定长度箱中。我们计算每个分段中所有跨度的统计数据,作为该分段的关键性能指标(KPI)。一项服务的关键性能指标构成一个多变量时间序列,将被视为服务状态的代表。对于每个候选依赖对,我们会计算该依赖对中两个服务状态之间的相似度。
- 3)最后,AID 对相似度进行汇总,得出一个统一值,作为依赖关系的强度。
📊效果
- 为了展示 AID 的有效性,我们在两个数据集上对 AID 进行了评估。一个是模拟数据集,另一个是工业数据集。
- 在模拟数据集上,我们部署了开源微服务基准系统 trainticket,模拟用户请求并收集跟踪数据。
- 对于工业数据集,我们从生产云系统中收集跟踪数据。
- 然后,我们在数据集上对 AID 进行评估,并将其性能与几种基线进行比较。
- 实验结果表明,我们提出的方法可以准确测量依赖关系的强度,其性能优于基线方法。
- 此外,我们还展示了我们的方法在大型生产云系统中的成功应用。
- 此外,我们还发布了两个数据集,以促进未来的研究。
- 这项工作的主要贡献如下:
- a. 我们提出了 AID,这是第一种量化不同服务之间依赖强度的方法。
- b. 评估结果表明了所提方法的有效性和效率。
- c. 我们发布了一个模拟数据集和一个来自生产云系统的工业数据集,以促进未来的研究。
🧠疑问
- 以往微服务划分工作中,所关注“逻辑独立性”难道不属于“判别云服务之间的依赖程度”吗?
- 本文的侧重点应该是动态依赖关系的预测,而传统研究更多是静态的。
- 希望这篇博客对你有帮助!如果你有任何问题或需要进一步的帮助,请随时提问。
- 如果你喜欢这篇文章,欢迎动动小手 给我一个follow或star。
🗺参考文献
- 标题: 【论文】略读笔记42-前沿-微服务依赖强度预测
- 作者: Fre5h1nd
- 创建于 : 2024-07-02 13:15:32
- 更新于 : 2024-07-02 14:25:30
- 链接: https://freshwlnd.github.io/2024/07/02/literature/literatureNotes42/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论