paperbot · PL 论文追踪

全部论文 待读 收藏

P2 When Your Infrastructure Is a Buggy Program: Understanding Faults in Infrastructure as Code Ecosystems

当你的基础设施是一个有缺陷的程序:理解基础设施即代码生态系统中的故障
OOPSLA 8(OOPSLA2)2024匹配度 2/10 · 该论文是对 IaC 领域 DSL 缺陷的实证研究,属于软件工程与 DSL 可靠性方向,与用户核心关注的 PL→AI、AI→PL、静态分析、浮点程序分析及贝叶斯程序分析均无直接交集;文中未涉及 LLM/Agent 或程序分析技术。引用 24 inbox
Georgios-Petros Drosos, Thodoris Sotiropoulos, Georgios Alexopoulos, Dimitris Mitropoulos, Zhendong Su
dblp: 2026-09-10crossref: 2026-09-10

AI 速览

一句话:首次系统分析 Ansible、Puppet、Chef 中 360 个 IaC 缺陷,总结其表现、根因、复现条件与修复方式。

现代应用日益复杂,手工安装与配置已不现实,IT 组织广泛依赖基础设施即代码(IaC)技术来自动化计算基础设施的供给、配置与维护。IaC 系统通常提供声明式领域特定语言(DSL),让管理员和开发者以可靠、可预测且可文档化的方式描述基础设施的期望状态。然而,IaC 软件如同传统程序一样会存在缺陷,从部署失败到严重影响生产系统的错误配置。本文首次对 Ansible、Puppet 和 Chef 等主流 IaC 生态中的 360 个缺陷进行深入分析,研究这些缺陷如何表现、其根本原因、复现所需的系统状态或输入特征,以及它们如何被修复。基于分析结果,作者评估了现有 IaC 可靠性技术,指出其局限,并为未来研究提出建议。

问题
当前对 IaC 软件缺陷的特征缺乏系统理解,而 IaC 在全球基础设施管理中的关键作用要求更可靠的工具与技术。
方法
从 Ansible、Puppet、Chef 等主流 IaC 生态中收集并分析 360 个缺陷,分类其表现、根因、复现条件和修复方式。
评估
基于缺陷分析结果评估现有 IaC 可靠性技术,识别其局限性,并提出面向未来研究的建议。
原文摘要(Abstract)

Modern applications have become increasingly complex and their manual installation and configuration is no longer practical. Instead, IT organizations heavily rely on Infrastructure as Code (IaC) technologies, to automate the provisioning, configuration, and maintenance of computing infrastructures and systems. IaC systems typically offer declarative, domain-specific languages (DSLs) that allow system administrators and developers to write high-level programs that specify the desired state of their infrastructure in a reliable, predictable, and documented fashion. Just like traditional programs, IaC software is not immune to faults, with issues ranging from deployment failures to critical misconfigurations that often impact production systems used by millions of end users. Surprisingly, despite its crucial role in global infrastructure management, the tooling and techniques for ensuring IaC reliability still have room for improvement. In this work, we conduct a comprehensive analysis of 360 bugs identified in IaC software within prominent IaC ecosystems including Ansible, Puppet, and Chef. Our work is the first in-depth exploration of bug characteristics in these widely-used IaC environments. Through our analysis we aim to understand: (1) how these bugs manifest, (2) their underlying root causes, (3) their reproduction requirements in terms of system state (e.g., operating system versions) or input characteristics, and (4) how these bugs are fixed. Based on our findings, we evaluate the state-of-the-art techniques for IaC reliability, identify their limitations, and provide a set of recommendations for future research. We believe that our study helps researchers to (1) better understand the complexity and peculiarities of IaC software, and (2) develop advanced tooling for more reliable and robust system configurations.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@article{DrososSAM024,
  title = {When Your Infrastructure Is a Buggy Program: Understanding Faults in Infrastructure as Code Ecosystems},
  author = {Georgios-Petros Drosos and Thodoris Sotiropoulos and Georgios Alexopoulos and Dimitris Mitropoulos and Zhendong Su},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {8},
  number = {OOPSLA2},
  year = {2024},
  doi = {10.1145/3689799}
}