Towards a Lightweight Multi-Cloud DSL for Elastic and Transferable Cloud-native Applications

Cloud-native applications are intentionally designed for the cloud in order to leverage cloud platform features like horizontal scaling and elasticity - benefits coming along with cloud platforms. In addition to classical (and very often static) multi-tier deployment scenarios, cloud-native applications are typically operated on much more complex but elastic infrastructures. Furthermore, there is a trend to use elastic container platforms like Kubernetes, Docker Swarm or Apache Mesos. However, especially multi-cloud use cases are astonishingly complex to handle. In consequence, cloud-native applications are prone to vendor lock-in. Very often TOSCA-based approaches are used to tackle this aspect. But, these application topology defining approaches are limited in supporting multi-cloud adaption of a cloud-native application at runtime. In this paper, we analyzed several approaches to define cloud-native applications being multi-cloud transferable at runtime. We have not found an approach that fully satisfies all of our requirements. Therefore we introduce a solution proposal that separates elastic platform definition from cloud application definition. We present first considerations for a domain specific language for application definition and demonstrate evaluation results on the platform level showing that a cloud-native application can be transferred between different cloud service providers like Azure and Google within minutes and without downtime. The evaluation covers public and private cloud service infrastructures provided by Amazon Web Services, Microsoft Azure, Google Compute Engine and OpenStack.

[1]  Rajkumar Buyya,et al.  Dynamically scaling applications in the cloud , 2011, CCRV.

[2]  Mark Strembeck,et al.  An approach for the systematic development of domain‐specific languages , 2009, Softw. Pract. Exp..

[3]  Gerti Kappel,et al.  Cloud Modeling Languages by Example , 2014, 2014 IEEE 7th International Conference on Service-Oriented Computing and Applications.

[4]  Arie van Deursen,et al.  Domain-specific languages , 2000 .

[5]  Alessandro Rossini SINTEF Cloud Application Modelling and Execution Language ( CAMEL ) and the PaaSage Workflow , 2015 .

[6]  Abhishek Verma,et al.  Large-scale cluster management at Google with Borg , 2015, EuroSys.

[7]  Brice Morin,et al.  Models@Runtime to Support the Iterative and Continuous Design of Autonomic Reasoners , 2013, Models@run.time.

[8]  Parastoo Mohagheghi,et al.  Towards CloudML, a Model-based Approach to Provision Resources in the Clouds , 2012 .

[9]  Hui Song,et al.  Using Adaptation Plans to Control the Behavior of Models@runtime , 2015, Models@run.time.

[10]  Randy H. Katz,et al.  Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center , 2011, NSDI.

[11]  Oliver Kopp,et al.  Topology Splitting and Matching for Multi-Cloud Deployments. , 2017, CLOSER 2017.

[12]  Marty Humphrey,et al.  Auto-scaling to minimize cost and meet application deadlines in cloud workflows , 2011, 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC).

[13]  M Mernik,et al.  When and how to develop domain-specific languages , 2005, CSUR.

[14]  Rajiv Ranjan,et al.  Open Issues in Scheduling Microservices in the Cloud , 2016, IEEE Cloud Computing.

[15]  Nane Kratzke Smuggling Multi-cloud Support into Cloud-native Applications using Elastic Container Platforms , 2017, CLOSER.

[16]  Frank Leymann,et al.  Cloud Computing Patterns: Fundamentals to Design, Build, and Manage Cloud Applications , 2014 .

[17]  Alan Sill,et al.  The Design and Architecture of Microservices , 2016, IEEE Cloud Computing.

[18]  Elisabetta Di Nitto,et al.  Model-driven continuous deployment for quality DevOps , 2016, QUDOS@ISSTA.

[19]  Claus Pahl,et al.  Performance Engineering for Microservices: Research Challenges and Directions , 2017, ICPE Companion.

[20]  Oliver Kopp,et al.  TOSCA: Portable Automated Deployment and Management of Cloud Applications , 2014, Advanced Web Services.

[21]  Nitin Naik Building a virtual system of systems using docker swarm in multiple clouds , 2016, 2016 IEEE International Symposium on Systems Engineering (ISSE).

[22]  Nane Kratzke,et al.  Understanding cloud-native applications after 10 years of cloud computing - A systematic mapping study , 2017, J. Syst. Softw..

[23]  Claus Pahl,et al.  Benchmark Requirements for Microservices Architecture Research , 2017, 2017 IEEE/ACM 1st International Workshop on Establishing the Community-Wide Infrastructure for Architecture-Based Software Engineering (ECASE).

[24]  René Peinl,et al.  ClouNS - a Cloud-Native Application Reference Model for Enterprise Architects , 2016, 2016 IEEE 20th International Enterprise Distributed Object Computing Workshop (EDOCW).

[25]  Carlos de Alfonso,et al.  Container-based virtual elastic clusters , 2017, J. Syst. Softw..