Theses and Dissertations
Permanent URI for this collection
Browse
Browsing Theses and Dissertations by Subject "Containerization"
Now showing 1 - 1 of 1
Results Per Page
Sort Options
Item Velo: A unifying domain-specific language to abstract containerization and orchestration in complex applications(Namibia University of Science and Technology, 2020-02) Ishuuwa, GervasiusApplication containerisation has been introduced to mitigate the discrepancies of the execution environment con guration and set up a complex application goes through from development to production, including other steps such as testing, staging, etc. Through an isolation mechanism, containers bundle into one package (binaries plus all their dependencies) the entire runtime environment required for an application or any of its components. Depending on the complexity of the adopted architectural style, container orchestration, the management and provisioning of containers, their loadbalancing, security, scaling, and their network con guration might be needed to smoothen the overall deployment and execution experience. In the peculiar case of cloud-native applications, containerisation and orchestration are even more crucial. Application containerisation and orchestration have risen as two interrelated technologies. However, they are handled with di erent toolset and formalisms. This increases the complexity of deploying such applications due to various moving parts. Moreover, for an independent team to try out some components of an existing application, they now have to stick to the prior deployment decisions made on their behalf. We argue that a better approach is to describe the desired state of both containerisation and orchestration and leave it to each team to decide on the actual tools and infrastructure they intend to use. In this research, we introduce velo, a unifying abstraction domainspeci c language (DSL) for application containerisation and orchestration. Intuitively, velo lets the user express the desired state of containerisation and orchestration for a complex application. It has two components: (1) an abstract speci cation language that describes the containerisation and orchestration for a complex application; and (2) a transpiler, a source-tosource compiler into both a container-speci c and an orchestration-speci c environments. In order to de ne the speci cation language, we studied various containerisation and orchestration tools, including docker, rocket, kubernetes, mesos marathon, docker compose and docker swarm. The resulting concepts are centred around a virtual bag, a space within the infrastructure where containers can be run, and a container, an isolated space in the cluster where various processes corresponding to services will run and access resources (CPU, network, I/O, etc.). Containers are instantiated within a virtual bag. Each of these concepts can be further re ned and represented in di erent ways. As well, several ne-grained descriptors are introduced to complete the speci cation of an application containerisation and orchestration. Furthermore, these descriptors can be provided during speci cation time or at compilation. The compiler in velo is implemented against the grammar de ned for 4 the speci cation language. It gives the user the possibility to generate both the container le and the orchestration description based on the same initial speci cation. Currently, we generate a Dockerfile for the containerisation, and kubernetes, mesos marathon and docker compose for orchestration. Following the grammar, the compiler can also automatically detect whether or not to prompt the user for missing descriptors. We conducted a theoretical and practical evaluation of velo. The theoretical evaluation focuses on the semantics of the speci cation language as well as the correctness of its compiler. As for the practical evaluation, we tested velo following various scenarios and discuss our ndings.