Sander van der Burg
Delft University of Technology
June 3, 2013
Nowadays, software systems are bigger and more complicated than people may think. Apart from the fact that a system has to be correctly constructed and should meet the client's wishes, they also have to be made ready for use to end-users or in an isolated test environment. This process is known as the software deployment process.
Due to various developments, e.g. increasing complexity of requirements to a system and new techniques that have been developed to support these, the software deployment process has become increasingly more complicated and error prone. Especially for modern generation systems, often exposed as services through the Internet, such as Facebook and Twitter, an automated solution is required supporting important quality attributes, such as reliability, reproducibility, genericity, and efficiency as manual deployment is typically too time consuming and error prone.
This dissertation describes a reference architecture that contains various components to automate software deployment processes of modern generation systems. These components strive to perform deployment steps in a way that is reliable, reproducible, generic, extensible and efficient. Components from the reference architecture can be used to construct an architecture for a deployment tool that can be used in a specific domain.
The tools used as a basis and new tools that have been developed as part of this thesis are part of the Nix project and available as free and open-source software.