The rise of elastically scaling applications that frequently deploy new machines has led to the adoption of DevOps practices across the cloud engineering stack. So-called configuration management tools utilize scripts that are based on declarative resource descriptions and make the system converge to the desired state. It is crucial for convergent configurations to be able to gracefully handle transient faults, e.g., network outages when downloading and installing software packages. In this paper we introduce a conceptual framework for asserting reliable convergence in configuration management. Based on a formal definition of configuration scripts and their resources, we utilize state transition graphs to test whether a script makes the system converge to the desired state under different conditions. In our generalized model, configuration actions are partially ordered, often resulting in prohibitively many possible execution orders. To reduce this problem space, we define and analyze a property called preservation, and we show that if preservation holds for all pairs of resources, then convergence holds for the entire configuration. Our implementation builds on Puppet, but the approach is equally applicable to other frameworks like Chef, Ansible, etc. We perform a comprehensive evaluation based on real world Puppet scripts and show the effectiveness of the approach. Our tool is able to detect all idempotence and convergence related issues in a set of existing Puppet scripts with known issues as well as some hitherto undiscovered bugs in a large random sample of scripts.
Wed 2 Nov Times are displayed in time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
15:40 - 17:20: Programming Frameworks, Tools, and MethodologiesOOPSLA at Matterhorn 2 Chair(s): Emerson Murphy-HillGoogle | |||
15:40 - 16:05 Talk | Purposes, Concepts, Misfits, and a Redesign of Git OOPSLA DOI Pre-print Media Attached | ||
16:05 - 16:30 Talk | Apex: Automatic Programming Assignment Error Explanation OOPSLA Dohyeong KimPurdue University, Yonghwi KwonPurdue University, Peng LiuPurdue University, I Luk KimPurdue University, David Mitchel PerryPurdue University, Xiangyu ZhangPurdue University, Gustavo Rodriguez-RiveraPurdue University DOI Media Attached | ||
16:30 - 16:55 Talk | Asserting Reliable Convergence for Configuration Management Scripts OOPSLA Oliver HanappiVienna University of Technology, Waldemar HummerVienna University of Technology, Schahram DustdarTU Wien DOI | ||
16:55 - 17:20 Talk | Dependent Partitioning OOPSLA Sean TreichlerStanford University, Michael BauerNVIDIA Research, Rahul SharmaMicrosoft Research, Elliott Slaughter, Alex AikenStanford University DOI Media Attached |