Semantics and provenance of configuration programming language μPuppet
dc.contributor.advisor
Cheney, James
en
dc.contributor.advisor
Anderson, Paul
en
dc.contributor.author
Fu, Weili
en
dc.date.accessioned
2019-11-18T12:21:55Z
dc.date.available
2019-11-18T12:21:55Z
dc.date.issued
2019-11-23
dc.description.abstract
Nowadays computing infrastructures have grown bigger in scale and more complex.
Automated configuration management tools have taken the place of traditional
approaches of configuration tasks, such as manual configuration and writing
simple scripts, which become tedious, inefficient and error-prone to human mistakes.
These tools typically contain their own specific configuration languages. In
general, users write configuration specifications of the system and the tools compile
them to configuration files that are deployed on each machine to change its
configuration. Configuration specifications tend to be large and involve thousands
of parameters and the relations between them. However automating configuration
management does not prevent configuration errors that might cause system
failures that are costly and time-consuming to remedy. Configuration languages
normally support separation of concerns of different users, but there is limited
work on access control and work flow to guarantee the correctness of the configurations
when there are changes in the specifications, or the analysis tools for root
causes for configuration errors. Configuration errors remains one of the dominant
reasons for system failures (Oppenheimer et al., 2003).
In this thesis, we argue that provenance techniques, a dynamic technique of
tracking data history developed in the database field, is a natural solution to providing
configuration management tools with the ability of analysing configuration
errors and identifying their root causes in the configuration specifications. For
this purpose, we first choose a popular configuration management tool Puppet
and present μPuppet which models the operational semantics of a core subset
of Puppet language. In addition, we prototype an interpreter and a parser for
μPuppet and compare their validation results by using more 50 Puppet manifests
against the real Puppet language. Based on the formal semantics of μPuppet, we
formalise where-, expression- and dependency-provenance which track the original
inputs of an output data value, the primitive operation procedure that derives
an output data value and all the inputs on which a generated output depended
respectively in the process of compiling the configuration specifications. Further
more, we establish the static correctness properties of three forms of provenance.
We prove that where- and expression-provenance satisfy these properties. We
find the limitation of dependency-provenance we define that does not record the
full dependency information for some unusual value-overriding semantics, which
reveals the complexity of the Puppet language. We prove the partial correctness
of dependency-provenance confined to a subset of μPuppet that excludes the
unusual cases and propose possible solutions to deal with these unusual cases.
en
dc.identifier.uri
https://hdl.handle.net/1842/36242
dc.language.iso
en
dc.publisher
The University of Edinburgh
en
dc.relation.hasversion
Fu, W., Perera, R., Anderson, P., and Cheney, J. (2017). mupuppet: A declarative subset of the puppet configuration language. In 31st European Conference on Object-Oriented Programming, ECOOP 2017, June 19-23, 2017, Barcelona, Spain, pages 12:1–12:27.
en
dc.subject
automated configuration management tools
en
dc.subject
configuration errors
en
dc.subject
provenance techniques
en
dc.subject
μPuppet
en
dc.subject
Puppet language
en
dc.subject
programming languages
en
dc.subject
configuration languages
en
dc.title
Semantics and provenance of configuration programming language μPuppet
en
dc.type
Thesis or Dissertation
en
dc.type.qualificationlevel
Doctoral
en
dc.type.qualificationname
PhD Doctor of Philosophy
en
Files
Original bundle
1 - 1 of 1
- Name:
- Fu2019.pdf
- Size:
- 1.88 MB
- Format:
- Adobe Portable Document Format
- Description:
This item appears in the following Collection(s)

