This project represents my thesis to achieve the Master of Science title and is part of my studies of Information Technology at the University of Applied sciences in Constance, Germany.
The main concern of the thesis is to find a viable method for creating application containers with the help of a package manager for source-based packages.
The choice for this topic is due to my personal experience with currently available methods for creating application containers, which doesn't include a single one that I felt completely comfortable with and that could provide all the features that I have expected.
My personal experience has been collected in many different fields which allowed me to create a very broad view of use-cases and their respective requirements, in which containers can be used to improve the overall situation.
The most recent project that I want to name is called [embEDUx][embEDUx], and it aims to provide a flexible solution for creating and deploying a customized Linux distribution for embedded systems in an educational context.
My main part within that project was to design the overall architecture of the build system and to develop the specification for the system archive and the method of processing it to a complete system archive.
Additional experience in this area comes from my work on projects for customers that consulted me to advise and administer their IT small-business infrastructure.
Altogether, I've had the chance to gather requirements and form certain expectations from the perspective of three major IT roles: the system administrator, the system architect and the application developer.
Typically the system administrator doesn't necessarily think about work-flow of an application developer and vise versa.
The system architect unfortunately isn't oftentimes involved in the decision making of the administrator and application developer.
This circumstance can and eventually will lead to applications running on systems that have undergone severe workarounds to make it work at all.
The DevOps movement, which is a modern term and attempt to combine the three aforementioned three roles, has been trying to solve the described problem with tools for automatic system configuration.
* Intention: evaluate the existing build systems, their design choices and resulting features and methodologies.
The intention for customizing and adapting each one of them to make them suitable for two types of users, system administrators and application developers.