一句话:通过分析四个云系统1178个配置相关提交,揭示配置设计/实现演化实践,倡导将配置工程提升为一等公民。
论文指出,云系统配置错误会导致大量昂贵故障和严重性能问题,但现有研究多聚焦检测与诊断;作者认为更深层问题是配置设计与实现尚未成为一等软件工程活动,且开发者如何及为何演化配置设计/实现尚不清楚。为此,作者对HDFS、HBase、Spark、Cassandra四个大型开源云系统2.5年版本历史中的1178个配置相关提交进行源码级演化研究,分析修订初始配置设计/实现决策的动因与实践,尤其是应对错误配置后果的方式。研究提炼出配置工程过程的新见解,并据此提出通过改进配置设计与实现过程来主动减少错误配置的技术方向,最后指出若干未来研究方向。
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.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@inproceedings{ZhangHLL0X21,
title = {An Evolutionary Study of Configuration Design and Implementation in Cloud Systems},
author = {Yuanliang Zhang and Haochen He and Owolabi Legunsen and Shanshan Li and Wei Dong and Tianyin Xu},
booktitle = {ICSE},
year = {2021},
doi = {10.1109/icse43902.2021.00029}
}