5 research outputs found
Rehearsal: A Configuration Verification Tool for Puppet
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.Comment: In proceedings of ACM SIGPLAN Conference on Programming Language
Design and Implementation (PLDI) 201
Building a collaborative culture
Background. DevOps is a set of practices and cultural values that aims to
reduce the barriers between development and operations teams. Due to its
increasing interest and imprecise definitions, existing research works have
tried to characterize DevOps---mainly using a set of concepts and related
practices. Aims. Nevertheless, little is known about thepractitioners
practitioners' understanding about successful paths for DevOps adoption. The
lack of such understanding might hinder institutions to adopt DevOps practices.
Therefore, our goal here is to present a theory about DevOps adoption,
highlighting the main related concepts that contribute to its adoption in
industry. Method. Our work builds upon Classic Grounded Theory. We interviewed
practitioners that contributed to DevOps adoption in 15 companies from
different domains and across 5 countries. We empirically evaluate our model
through a case study, whose goal is to increase the maturity level of DevOps
adoption at the Brazilian Federal Court of Accounts, a Brazilian Government
institution.Results. This paper presents a model to improve both the
understanding and guidance of DevOps adoption. The model increments the
existing view of DevOps by explaining the role and motivation of each category
(and their relationships) in the DevOps adoption process. We organize this
model in terms of DevOps enabler categories and DevOps outcome categories. We
provide evidence that collaboration is the core DevOps concern, contrasting
with an existing wisdom that implanting specific tools to automate building,
deployment, and infrastructure provisioning and management is enough to achieve
DevOps. Conclusions. Altogether, our results contribute to (a) generating an
adequate understanding of DevOps, from the perspective of practitioners; and
(b) assisting other institutions in the migration path towards DevOps adoption.Comment: 11 page
