Abstract
Cloud-native applications are often designed for only one specific cloud infrastructure or platform. The effort to port such kind of applications into a different cloud is usually a laborious one time exercise. Modern Cloud-native application architecture approaches make use of popular elastic container platforms (Apache Mesos, Kubernetes, Docker Swarm). These kind of platforms contribute to a lot of existing cloud engineering requirements. This given, it astonishes that these kind of platforms (already existing and open source available) are not considered more consequently for multi-cloud solutions. These platforms provide inherent multi-cloud support but this is often overlooked. This paper presents a software prototype and shows how Kubernetes and Docker Swarm clusters could be successfully transfered at runtime across public cloud infrastructures of Google (Google Compute Engine), Microsoft (Azure) and Amazon (EC2) and further cloud infrastructures like OpenStack. Additionally, software engineering lessons learned are derived and some astonishing performance data of the mentioned cloud infrastructures is presented that could be used for further optimizations of IaaS transfers of Cloud-native applications.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
To the best of the author’s knowledge there are no research papers analyzing this interesting case study. So, the reader is referred to an Wired magazine article: https://www.wired.com/2014/06/facebook-instagram/.
- 2.
See https://docs.docker.com/v1.11/swarm/scheduler/filter/ (last access 15th Feb. 2017).
- 3.
See https://kubernetes.io/docs/user-guide/node-selection/ (last access 15th Feb. 2017).
- 4.
See https://mesosphere.github.io/marathon/docs/constraints.html (last access 15th Feb. 2017).
- 5.
https://github.com/microservices-demo/microservices-demo (last access 3rd July 2017).
- 6.
To get Kubernetes running in a multi-cloud scenario it is necessary to assign an additional virtual network interface with the public IP address of the node. Kubernetes provides no config options for that mode of operation! However, even these kind of obstacles can be transparently handled by drivers.
- 7.
http://www.paasage.eu/ (visited 15th Feb. 2017).
- 8.
In this case node termination (Azure blocking, OpenStack non-blocking).
- 9.
According to the synergy 2016 Cloud Research Report http://bit.ly/2f2FsGK (visited 12th Jul. 2017).
References
Kratzke, N.: Smuggling multi-cloud support into cloud-native applications using elastic container platforms. In: Proceedings of the 7th International Conference on Cloud Computing and Services Science (CLOSER 2017), pp. 29–42 (2017)
Kratzke, N., Quint, P.C.: Understanding Cloud-native applications after 10 years of Cloud Computing - a systematic mapping study. J. Syst. Softw. 126, 1–16 (2017)
Quint, P.C., Kratzke, N.: Taming the complexity of elasticity, scalability and transferability in Cloud Computing - Cloud-Native applications for SMEs. Int. J. Adv. Netw. Serv. 9, 389–400 (2016)
Kratzke, N., Peinl, R.: ClouNS - a Cloud-native applications reference model for enterprise architects. In: 8th Workshop on Service oriented Enterprise Architecture for Enterprise Engineering (SoEA4EE 2016) in Conjunction with the EDOC 2016 Conference (2016)
Qu, C., Calheiros, R.N., Buyya, R.: Auto-scaling Web applications in Clouds: a taxonomy and survey. CoRR abs/1609.09224 (2016)
Pahl, C., Jamshidi, P.: Software architecture for the Cloud – a roadmap towards control-theoretic, model-based cloud architecture. In: Weyns, D., Mirandola, R., Crnkovic, I. (eds.) ECSA 2015. LNCS, vol. 9278, pp. 212–220. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-23727-5_17
Stine, M.: Migrating to Cloud-Native Application Architectures. O’Reilly, Sebastopol (2015)
Fehling, C., Leymann, F., Retter, R., Schupeck, W., Arbitter, P.: Cloud Computing Patterns: Fundamentals to Design, Build, and Manage Cloud Applications. Springer, Vienna (2014). https://doi.org/10.1007/978-3-7091-1568-8
Ashtikar, S., Barker, C., Clem, B., Fichadia, P., Krupin, V., Louie, K., Malhotra, G., Nielsen, D., Simpson, N., Spence, C.: Open data center alliance best practices: architecting Cloud-Aware applications Rev. 1.0 (2014)
Balalaie, A., Heydarnoori, A., Jamshidi, P.: Migrating to Cloud-Native architectures using microservices: an experience report. In: 1st International Workshop on Cloud Adoption and Migration (CloudWay), Taormina, Italy (2015)
Namiot, D., Sneps-Sneppe, M.: On micro-services architecture. Int. J. Open Inf. Technol. 2(9), 24–27 (2014)
Newman, S.: Building Microservices. O’Reilly Media, Incorporated, Sebastopol (2015)
Barker, A., Varghese, B., Thai, L.: Cloud services brokerage: a survey and research roadmap. In: 2015 IEEE 8th International Conference on Cloud Computing, pp. 1029–1032. IEEE (2015)
Petcu, D., Vasilakos, A.V.: Portability in Clouds: approaches and research opportunities. Scalable Comput. Pract. Experience 15, 251–270 (2014)
Toosi, A.N., Calheiros, R.N., Buyya, R.: Interconnected Cloud computing environments. ACM Comput. Surv. 47, 1–47 (2014)
Grozev, N., Buyya, R.: Inter-Cloud architectures and application brokering: taxonomy and survey. Softw. Pract. Experience 44, 369–390 (2014)
Hindman, B., Konwinski, A., Zaharia, M., Ghodsi, A., Joseph, A.D., Katz, R.H., Shenker, S., Stoica, I.: Mesos: a platform for fine-grained resource sharing in the data center. In: 8th USENIX Conference on Networked Systems Design and Implementation (NSDI 2011), vol. 11 (2011)
Peinl, R., Holzschuher, F.: The Docker ecosystem needs consolidation. In: 5th International Conference on Cloud Computing and Services Science (CLOSER 2015), pp. 535–542 (2015)
Kratzke, N., Quint, P.C.: How to operate container clusters more efficiently? Some insights concerning containers, software-defined-networks, and their sometimes counterintuitive impact on network performance. Int. J. Adv. Netw. Serv. 8, 203–214 (2015)
Kratzke, N., Quint, P.-C.: Investigation of impacts on network performance in the advance of a microservice design. In: Helfert, M., Ferguson, D., Méndez Muñoz, V., Cardoso, J. (eds.) CLOSER 2016. CCIS, vol. 740, pp. 187–208. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-62594-2_10
Aderaldo, C.M., Mendonça, N.C., Pahl, C., Jamshidi, P.: Benchmark requirements for microservices architecture research. In: Proceedings of the 1st International Workshop on Establishing the Community-Wide Infrastructure for Architecture-Based Software Engineering, ECASE 2017, Piscataway, NJ, USA, pp. 8–13. IEEE Press (2017)
Kratzke, N., Quint, P.C.: About automatic benchmarking of IaaS Cloud service providers for a world of container clusters. J. Cloud Comput. Res. 1, 16–34 (2015)
Karwowski, W., Rusek, M., Dwornicki, G., Orłowski, A.: Swarm based system for management of containerized microservices in a Cloud consisting of heterogeneous servers. In: Borzemski, L., Świątek, J., Wilimowska, Z. (eds.) ISAT 2017. AISC, vol. 655, pp. 262–271. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-67220-5_24
Ferrer, A.J., Hernandez, F., Tordsson, J., Elmroth, E., Ali-Eldin, A., Zsigri, C., Sirvent, R., Guitart, J., Badia, R.M., Djemame, K., Ziegler, W., Dimitrakos, T., Nair, S.K., Kousiouris, G., Konstanteli, K., Varvarigou, T., Hudzia, B., Kipp, A., Wesner, S., Corrales, M., Forgo, N., Sharif, T., Sheridan, C.: OPTIMIS: a holistic approach to Cloud service provisioning. Future Gener. Comput. Syst. 28, 66–77 (2012)
Carlini, E., Coppola, M., Dazzi, P., Ricci, L., Righetti, G.: Cloud Federations in Contrail, pp. 159–168. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-29737-3_19
Paraiso, F., Haderer, N., Merle, P., Rouvoy, R., Seinturier, L.: A federated multi-cloud PaaS infrastructure. In: 2012 IEEE Fifth International Conference on Cloud Computing, pp. 392–399. IEEE (2012)
Petcu, D., Craciun, C., Neagul, M., Lazcanotegui, I., Rak, M.: Building an interoperability API for Sky computing. In: 2011 International Conference on High Performance Computing & Simulation, pp. 405–411. IEEE (2011)
Kamateri, E., Loutas, N., Zeginis, D., Ahtes, J., D’Andria, F., Bocconi, S., Gouvas, P., Ledakis, G., Ravagli, F., Lobunets, O., Tarabanis, K.A.: Cloud4SOA: A Semantic-Interoperability PaaS Solution for Multi-cloud Platform Management and Portability, pp. 64–78. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-40651-5_6
Brogi, A., Soldani, J., Wang, P.W.: TOSCA in a Nutshell: promises and perspectives. In: Villari, M., Zimmermann, W., Lau, K.-K. (eds.) ESOCC 2014. LNCS, vol. 8745, pp. 171–186. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-44879-3_13
Rossini, A.: Cloud application modelling and execution language (CAMEL) and the PaaSage workflow. In: Advances in Service-Oriented and Cloud Computing - Workshops of ESOCC 2015, vol. 567, pp. 437–439 (2015)
Lushpenko, M., Ferry, N., Song, H., Chauvel, F., Solberg, A.: Using adaptation plans to control the behavior of Models@Runtime. In: Bencomo, N., Götz, S., Song, H. (eds.) MRT 2015: 10th International Workshop on Models@run.time, Co-located with MODELS 2015: 18th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems, vol. 1474 of CEUR Workshop Proceedings. CEUR (2015)
Baur, D., Domaschka, J.: Experiences from building a cross-cloud orchestration tool. In: Proceedings of the 3rd Workshop on CrossCloud Infrastructures & Platforms, CrossCloud 2016, New York, NY, USA, pp. 4:1–4:6. ACM (2016)
Giove, F., Longoni, D., Yancheshmeh, M.S., Ardagna, D., Di Nitto, E.: An approach for the development of portable applications on PaaS Clouds. In: Proceedings of the 3rd International Conference on Cloud Computing and Services Science, pp. 591–601. SciTePress - Science and and Technology Publications (2013)
Acknowledgements
This research is funded by German Federal Ministry of Education and Research (13FH021PX4). I would like to thank Peter Quint, Christian Stüben, and Arne Salveter for their hard work and their contributions to the Project Cloud TRANSIT. Additionally I would like to thank the practitioners Mario-Leander Reimer and Josef Adersberger from QAWare for inspiring discussions and contributions concerning cloud-native application stacks.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Appendices
Appendix
1.1 Cluster Definition File (Intended state)
This exemplary cluster definition file defines a Swarm cluster with the intended state to be deployed in two districts provided by two providers GCE and AWS. It defines three type of user defined node types (flavors): small, med, and large. 3 master and 3 worker nodes should be deployed on small virtual machine types in district gce-europe. 10 worker nodes should be deployed on small virtual machine types in district aws-europe. The flavors small, med, large are defined in Appendix 7.
1.2 Resources File (Current state)
This exemplary resources file describes provided resources for the operated cluster. This example describes a simple one node cluster (1 master) being operated in one district (OpenStack). A security group was requested. Some data is omitted for better readability.
1.3 District Definition File (JSON)
The following and exemplary district definition defines provider specific settings and mappings. The user defined district gce-europe should be realized using the provider specific GCE zones europe-west1-b and europe-west1-c. Necessary and provider specific access settings like project identifiers, regions, and credentials are provided as well. User defined flavors (see cluster definition format above) are mapped to concrete provider specific machine types.
Credentials File (JSON)
The following and exemplary credential file provides access credentials for customer specific GCE and AWS accounts as identified by the district definition file (gce_default and aws_default).
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG, part of Springer Nature
About this paper
Cite this paper
Kratzke, N. (2018). About the Complexity to Transfer Cloud Applications at Runtime and How Container Platforms Can Contribute?. In: Ferguson, D., Muñoz, V., Cardoso, J., Helfert, M., Pahl, C. (eds) Cloud Computing and Service Science. CLOSER 2017. Communications in Computer and Information Science, vol 864. Springer, Cham. https://doi.org/10.1007/978-3-319-94959-8_2
Download citation
DOI: https://doi.org/10.1007/978-3-319-94959-8_2
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-94958-1
Online ISBN: 978-3-319-94959-8
eBook Packages: Computer ScienceComputer Science (R0)