Towards a Description of Elastic Cloud-native Applications for Transferable Multi-Cloud-Deployments

Elastic container platforms (ECP) like Docker Swarm, Kubernetes (k8s) and Apache Mesos have gotten more and more attention by practitioners in recent years [1]. Elastic container platforms fit very well with existing cloud-native application (CNA) architecture approaches [6]. Corresponding system designs often follow a microservice-based architecture [8, 5]. Nevertheless, the reader should be aware that the effective and elastic operation of such kind of elastic container platforms is still a question in research – although there are interesting approaches making use of bare metal [1] as well as public and private cloud infrastructures [6]. What is more, there are even more severe open issues like how to design, define and operate cloud applications on top of such container platforms. This is especially true for multi-cloud contexts. Such open issues in scheduling microservices to the cloud come along with questions regarding interoperability, application topology and composition aspects [7] as well as elastic runtime adaption aspects of that kind of cloud-native applications [2]. The combination of these three aspects (multi-cloud interoperability, application topology definition/composition and elastic runtime adaption) is – to the best of the authors’ knowledge – not solved satisfactorily so far. These three problems are often seen in isolation. In consequence topology based multi-cloud approaches often do not consider elastic runtime adaption of deployments (see [7] as research type representative). But to be honest, elastic runtime adaptive solutions focusing multi-cloud capability do not make use of topology based approaches as well (take [6] as an example). And finally, (topology-based) cloud-native applications making use of elastic runtime adaption are often inherently bound to specific cloud infrastructure services (like cloud provider specific monitoring, scaling and messaging services) making it hard to transfer these cloud applications easily to another cloud provider or even operate them across providers at the same time [5]. Furthermore, Heinrich et al. mention several research challenges and directions that come along with microservice focused monitoring and runtime adaption approaches [3]. All in all, it seems like cloud engineers (and researchers as well) just trust in picking only two out of three options.