中文

Tortoise:交互式系统配置修复

软件工程 2021-03-12 v1

摘要

系统配置语言提供了强大的抽象,简化了大规模网络化系统的管理。如今已有数千个组织在使用诸如 Puppet 之类的配置语言。然而,用配置语言编写的规范可能存在缺陷,而 shell 仍然是调试配置错误系统的最简单方法。遗憾的是,当系统配置语言正在使用时,使用 shell 来修复问题是不安全的:从 shell 应用的修复可能会导致系统偏离配置语言所指定的状态。因此,尽管配置语言具有诸多优势,它们却迫使系统管理员放弃了 shell 的简单性与熟悉度。本文提出了一种基于综合的技术,允许管理员和谐地使用配置语言和 shell。管理员可以使用 shell 修复错误,而该技术会自动修复用配置语言编写的上层规范。该方法 (1) 产生与使用 shell 所做修复相一致的修复;(2) 通过最小化对原始规范的编辑,产生可维护的修复;(3) 在相关时对多个修复进行排序和呈现;(4) 支持管理员可能希望使用的所有 shell。我们针对广泛使用的系统配置语言 Puppet 实现了该技术,并在 42 个修复场景下的一套基准测试上对其进行了评估。排名最高的修复在 76% 的情况下被人类选中,且与人类等价的修复平均排名为 1.31。

关键词

引用

@article{arxiv.1709.05366,
  title  = {Tortoise: Interactive System Configuration Repair},
  author = {Aaron Weiss and Arjun Guha and Yuriy Brun},
  journal= {arXiv preprint arXiv:1709.05366},
  year   = {2021}
}

备注

Published version in proceedings of IEEE/ACM International Conference on Automated Software Engineering (ASE) 2017