Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Container Platforms

28 Apr 2017 own picture

How to transfer elastic container platforms like Docker Swarm, Kubernetes across different cloud service providers like AWS, GCE, Azure, OpenStack at runtime?

I presented a proof-of-concept solution (accepted as an full paper) to do this on the 7th International Conference on Cloud Computing and Services Science (CLOSER 2017) in Porto, Portugal.

Currently the proof-of-concept system supports the following infrastructures and elastic platforms.

  • Infrastructures: AWS (using Ruby aws-sdk), GCE (using CLI interface), Azure (using, OpenStack (using
  • Platforms: Kubernetes (1.6 and above), Docker Swarm (1.12 and above)

However, due to its extendable design arbitrary cloud infrastructures (IaaS) and elastic container platforms can be supported by providing addtional drivers.

A full text version of the paper is provided via ResearchGate. Informations how to cite the paper can be found here.

The conference presentation slides are embedded in this post. However, they can be accessed directly via SlideShare as well.


Elastic container platforms (like Kubernetes, Docker Swarm, Apache Mesos) fit very well with existing cloud-native application architecture approaches. So it is more than astonishing, that these already existing and open source available elastic platforms are not considered more consequently in multi-cloud research. Elastic container platforms provide inherent multi-cloud support that can be easily accessed. We present a solution proposal of a control process which is able to scale (and migrate as a side effect) elastic container platforms across different public and private cloud-service providers. This control loop can be used in an execution phase of self-adaptive auto-scaling MAPE loops (monitoring, analysis, planning, execution). Additionally, we present several lessons learned from our prototype implementation which might be of general interest for researchers and practitioners. For instance, to describe only the intended state of an elastic platform and let a single control process take care to reach this intended state is far less complex than to define plenty of specific and necessary multi-cloud aware workflows to deploy, migrate, terminate, scale up and scale down elastic platforms or applications.


Proof-of-Concept Implementation

The proof-of-concept implementation can be found in the following bitbucket repository. You will find the last progress in the working branch.