Rehearsal: a configuration verification tool for puppet

Rian Shambaugh, Aaron Weiss, Arjun Guha
{"title":"Rehearsal: a configuration verification tool for puppet","authors":"Rian Shambaugh, Aaron Weiss, Arjun Guha","doi":"10.1145/2908080.2908083","DOIUrl":null,"url":null,"abstract":"Large-scale data centers and cloud computing have turned system configuration into a challenging problem. Several widely-publicized outages have been blamed not on software bugs, but on configuration bugs. To cope, thousands of organizations use system configuration languages to manage their computing infrastructure. Of these, Puppet is the most widely used with thousands of paying customers and many more open-source users. The heart of Puppet is a domain-specific language that describes the state of a system. Puppet already performs some basic static checks, but they only prevent a narrow range of errors. Furthermore, testing is ineffective because many errors are only triggered under specific machine states that are difficult to predict and reproduce. With several examples, we show that a key problem with Puppet is that configurations can be non-deterministic. This paper presents Rehearsal, a verification tool for Puppet configurations. Rehearsal implements a sound, complete, and scalable determinacy analysis for Puppet. To develop it, we (1) present a formal semantics for Puppet, (2) use several analyses to shrink our models to a tractable size, and (3) frame determinism-checking as decidable formulas for an SMT solver. Rehearsal then leverages the determinacy analysis to check other important properties, such as idempotency. Finally, we apply Rehearsal to several real-world Puppet configurations.","PeriodicalId":178839,"journal":{"name":"Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation","volume":"55 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2015-09-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"61","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2908080.2908083","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 61

Abstract

Large-scale data centers and cloud computing have turned system configuration into a challenging problem. Several widely-publicized outages have been blamed not on software bugs, but on configuration bugs. To cope, thousands of organizations use system configuration languages to manage their computing infrastructure. Of these, Puppet is the most widely used with thousands of paying customers and many more open-source users. The heart of Puppet is a domain-specific language that describes the state of a system. Puppet already performs some basic static checks, but they only prevent a narrow range of errors. Furthermore, testing is ineffective because many errors are only triggered under specific machine states that are difficult to predict and reproduce. With several examples, we show that a key problem with Puppet is that configurations can be non-deterministic. This paper presents Rehearsal, a verification tool for Puppet configurations. Rehearsal implements a sound, complete, and scalable determinacy analysis for Puppet. To develop it, we (1) present a formal semantics for Puppet, (2) use several analyses to shrink our models to a tractable size, and (3) frame determinism-checking as decidable formulas for an SMT solver. Rehearsal then leverages the determinacy analysis to check other important properties, such as idempotency. Finally, we apply Rehearsal to several real-world Puppet configurations.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
预演:puppet配置验证工具
大规模数据中心和云计算使系统配置成为一个具有挑战性的问题。几次被广泛报道的中断并没有归咎于软件错误,而是归咎于配置错误。为了解决这个问题,成千上万的组织使用系统配置语言来管理他们的计算基础设施。其中,Puppet是使用最广泛的,有成千上万的付费客户和更多的开源用户。Puppet的核心是一种特定于领域的语言,用于描述系统的状态。Puppet已经执行了一些基本的静态检查,但它们只能防止很小范围的错误。此外,测试是无效的,因为许多错误仅在难以预测和重现的特定机器状态下触发。通过几个例子,我们展示了Puppet的一个关键问题是配置可能是不确定的。本文介绍了一个用于Puppet配置的验证工具——Rehearsal。Rehearsal为Puppet实现了一个健全的、完整的、可扩展的确定性分析。为了开发它,我们(1)为Puppet提供了一个形式化的语义,(2)使用几个分析将我们的模型缩小到一个可处理的大小,(3)将框架确定性检查作为SMT求解器的可确定公式。然后,排演利用确定性分析来检查其他重要的属性,比如幂等性。最后,我们将排练应用于几个真实世界的Puppet配置。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Assessing the limits of program-specific garbage collection performance Data-driven precondition inference with learned features SDNRacer: concurrency analysis for software-defined networks Exposing errors related to weak memory in GPU applications Effective padding of multidimensional arrays to avoid cache conflict misses
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1