Skip to main content
QUICK REVIEW

[论文解读] An Evolutionary Study of Configuration Design and Implementation in Cloud Systems (with Replication Package)

Yuanliang Zhang, Haochen He|arXiv (Cornell University)|Feb 14, 2021
Software System Performance and Reliability被引用 2
一句话总结

本文对四个大规模云系统(HDFS、HBase、Spark 和 Cassandra)在 2.5 年内共 1,178 个与配置相关的提交进行了源代码级别的分析,以理解开发人员如何演进配置设计与实现。研究揭示了由错误配置后果驱动的重复性配置修订模式,从而推动配置工程实践的主动改进,以减少昂贵的故障。

ABSTRACT

Many techniques were proposed for detecting software misconfigurations in cloud systems and for diagnosing unintended behavior caused by such misconfigurations. Detection and diagnosis are steps in the right direction: misconfigurations cause many costly failures and severe performance issues. But, we argue that continued focus on detection and diagnosis is symptomatic of a more serious problem: configuration design and implementation are not yet first-class software engineering endeavors in cloud systems. Little is known about how and why developers evolve configuration design and implementation, and the challenges that they face in doing so. This paper presents a source-code level study of the evolution of configuration design and implementation in cloud systems. Our goal is to understand the rationale and developer practices for revising initial configuration design/implementation decisions, especially in response to consequences of misconfigurations. To this end, we studied 1178 configuration-related commits from a 2.5 year version-control history of four large-scale, actively-maintained open-source cloud systems (HDFS, HBase, Spark, and Cassandra). We derive new insights into the software configuration engineering process. Our results motivate new techniques for proactively reducing misconfigurations by improving the configuration design and implementation process in cloud systems. We highlight a number of future research directions.

研究动机与目标

  • 调查开发人员在云系统中如何根据错误配置的后果来修订配置设计与实现决策。
  • 识别在软件演化过程中配置工程面临的常见挑战与实践。
  • 理解大规模开源云系统中配置变更背后的原因。
  • 通过改进配置设计与实现流程,为新方法提供支持,以主动减少错误配置。
  • 指出云系统配置工程未来的研究方向。

提出的方法

  • 对四个大规模云系统的版本控制历史中与配置相关的提交进行了纵向的、基于源代码的分析。
  • 收集并分析了跨越 2.5 年开发活动的 1,178 个与配置相关的提交。
  • 根据变更动机对配置更改进行分类,例如修复错误配置、提升性能或增强可靠性。
  • 识别出配置决策随时间推移的重复性模式,特别是在应对故障事件时的修订方式。
  • 结合定性与定量分析,提取关于开发人员实践与配置工程挑战的洞察。
  • 从观察到的配置演化模式中推导出设计原则与研究方向。

实验结果

研究问题

  • RQ1开发人员如何根据由错误配置引发的故障来修订配置设计与实现决策?
  • RQ2大规模云系统中配置变更的主要动机是什么?
  • RQ3配置设计与实现的演化过程中出现了哪些重复性模式?
  • RQ4配置变更与观察到的系统故障或性能问题之间有何关联?
  • RQ5哪些洞察可以用于推动配置工程实践的主动改进?

主要发现

  • 相当大比例的配置变更直接由错误配置引发的故障触发,表明当前做法多为被动响应而非主动设计。
  • 开发人员经常在运行时问题出现后修改配置参数,表明初始配置建模缺乏鲁棒性。
  • 许多配置变更具有迭代性和渐进性,反映出持续调优而非前期设计决策。
  • 配置变更通常由运行时反馈(如性能下降或系统崩溃)驱动,而非正式规范或分析。
  • 研究发现配置设计缺乏标准化实践,开发人员在配置管理方面的做法差异显著。
  • 迫切需要支持主动配置设计的工具与方法论,以减少对部署后调试的依赖。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。