Velo: A unifying domain-specific language to abstract containerization and orchestration in complex applications
Loading...
Date
2020-02
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Namibia University of Science and Technology
Abstract
Application 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.
Description
Keywords
Containerization, Orchestration, Virtualisation, Domain-specif Language, Source-to-Source Compiler
Citation
Ishuuwa, G. (2020). Velo: A unifying domain-specific language to abstract containerization and orchestration in complex applications. (Unpublished masters thesis). Windhoek: Namibia University of Science Technology.