Architecture design of a configuration management system
Rintala, Lassi (2021)
Rintala, Lassi
2021
Konetekniikan DI-ohjelma - Master's Programme in Mechanical Engineering
Tekniikan ja luonnontieteiden tiedekunta - Faculty of Engineering and Natural Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2021-02-03
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202012118739
https://urn.fi/URN:NBN:fi:tuni-202012118739
Tiivistelmä
In this thesis, the main goal is to answer the following question: How to design an architecture for a software configuration management system that aims to easily distribute various files to multiple hosts, control software execution remotely on multiple hosts, validate various configuration items, provide access for the documentation of each configuration item, and be maintainable by software developers?
Software architecture has become increasingly relevant in the modern society where software can be found almost everywhere, and architectural decisions in the software design can have huge impacts on the quality attributes of the software. Designing architecture can be facilitated by utilizing existing patterns, and architectures can be evaluated using different methods.
Configuration management can be defined in many ways, mainly depending on the scale of the context. This thesis discusses configuration management being similar to system administration: modifying software configurations of computer systems. There are also various approaches to how configuring remote systems can be implemented: agentless or with a designated remote agent, imperative or declarative.
Configuration errors still remain as a major source of outages in computer systems. Configuration validation is a way to proactively prevent such errors from happening. Validations are usually implemented using various schemata to describe valid structures and values for configurations.
Based on the collected requirements and user stories of Visy Oy employees, a software configuration management system was designed to facilitate commissioning and maintenance of Visy systems.
The designed architecture of the application was evaluated using a lightweight version of decision-centric architecture review method. As the result of the evaluation, it was concluded that the majority of the architectural decisions were suitable for the purpose of the designed application.
An implementation of the software configuration management system was developed based on the designed architecture using C++ programming language with various open-source libraries and software components that already existed in Visy codebase.
The goal of this thesis was met, but the designed configuration management system still left some space for improvement in the future.
Software architecture has become increasingly relevant in the modern society where software can be found almost everywhere, and architectural decisions in the software design can have huge impacts on the quality attributes of the software. Designing architecture can be facilitated by utilizing existing patterns, and architectures can be evaluated using different methods.
Configuration management can be defined in many ways, mainly depending on the scale of the context. This thesis discusses configuration management being similar to system administration: modifying software configurations of computer systems. There are also various approaches to how configuring remote systems can be implemented: agentless or with a designated remote agent, imperative or declarative.
Configuration errors still remain as a major source of outages in computer systems. Configuration validation is a way to proactively prevent such errors from happening. Validations are usually implemented using various schemata to describe valid structures and values for configurations.
Based on the collected requirements and user stories of Visy Oy employees, a software configuration management system was designed to facilitate commissioning and maintenance of Visy systems.
The designed architecture of the application was evaluated using a lightweight version of decision-centric architecture review method. As the result of the evaluation, it was concluded that the majority of the architectural decisions were suitable for the purpose of the designed application.
An implementation of the software configuration management system was developed based on the designed architecture using C++ programming language with various open-source libraries and software components that already existed in Visy codebase.
The goal of this thesis was met, but the designed configuration management system still left some space for improvement in the future.