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

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 transfered 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.

B48a291d7ef5137bb9e9a3cb2546d60e?s=128

Nane Kratzke

March 19, 2018
Tweet

Transcript

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

    Applications Peter-Christian Quint, Nane Kratzke (Speaker) 8th International Conference on Cloud Computing and Services Science (CLOSER 2018); Madeira, Funchal, Portugal, 2018
  2. The next 20 minutes are about ... • Context of

    our research • Cloud applications and vendor lock-in • Infrastructure-agnostic platform transferability • Platform-agnostic application definition • Resulting requirements for a „Cloud Programming Language“ • Language proposal and evalution • Conclusion Prof. Dr. rer. nat. Nane Kratzke Computer Science and Business Information Systems 2 Paper URL Presentation URL Speaker Deck
  3. Research Methodology Cloud TRANSIT 3 [KQ2017a] Kratzke, N., & Quint,

    P.-C. (2017). Understanding Cloud-native Applications after 10 Years of Cloud Computing - A Systematic Mapping Study. Journal of Systems and Software, 126 (April). [KP2016] Kratzke, N., & Peinl, R. (2016). ClouNS - a Cloud-Native Application Reference Model for Enterprise Architects. In 2016 IEEE 20th International Enterprise Distributed Object Computing Workshop (EDOCW) (pp. 1–10). [Kra2017a] Kratzke, N. (2017). Smuggling Multi- Cloud Support into Cloud- native Applications using Elastic Container Platforms. In Proceedings of the 7th Int. Conf. on Cloud Computing and Services Science (CLOSER 2017) (pp. 29–42). Understanding cloud-application engineering approaches and vendor lock-in drivers Reference Modeling Infrastructure- agnostic platform transferability concept This presentations focus Platform- agnostic cloud application definition
  4. Can we solve cloud orchestration problems differently? Prof. Dr. rer.

    nat. Nane Kratzke Computer Science and Business Information Systems 4 TOSCA [QK2018a] Quint, P.-C., & Kratzke, N. (2018). Towards a Lightweight Multi-Cloud DSL for Elastic and Transferable Cloud-native Applications. In Proceedings of the 8th Int. Conf. on Cloud Computing and Services Science (CLOSER 2018, Madeira, Portugal). UCAML [Kra2017a] Kratzke, N. (2017). Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Container Platforms. In Proceedings of the 7th Int. Conf. on Cloud Computing and Services Science (CLOSER 2017) (pp. 29–42). PLAIN Jolie (1st language for micro- services) Montesi F., Guidi C., Zavattaro G. (2014) Service-Oriented Programming with Jolie. In: Bouguettaya A., Sheng Q., Daniel F. (eds) Web Services Foundations. Springer, New York, NY
  5. Requirements for a Cloud Programming Language (practicitioner point of view)

    R1: Containerized Deployment The DSL must be designed to describe and label a containerized deployment of discoverable services. R2: Application Scaling The DSL must be designed to describe elastic services. R3: Compendiously The DSL must be designed to be lightweight and pragmatic. R4: Multi-Cloud Support The DSL must be designed to support multi-cloud operations (including multi-cloud scheduling constraints) R5: Infrastructure agnostic The DSL must be designed to be independent from a specifc ECP or cloud infrastructure. R6: Elastic runtime environment The DSL must be designed to define applications being able to be operated on arbitrary elastic runtime environments. Prof. Dr. rer. nat. Nane Kratzke Computer Science and Business Information Systems 5
  6. Core Language Model Requirements R1, R2, R3 Prof. Dr. rer.

    nat. Nane Kratzke Computer Science and Business Information Systems 6 exposes
  7. Infrastructure and platform agnostic Requirements R4, R5, R6 Prof. Dr.

    rer. nat. Nane Kratzke Computer Science and Business Information Systems 7 A model-to-model transformer transforms a universal CNA definition (UCAML) into a specific ECP format (Kubernetes manifests, Swarm compose files, etc.). • The runtime environment is a user decision (other like Jolie, platform agnostic). • But the runtime specifics must not be modeled on the application level (infrastructure agnostic).
  8. Example („Hello World“) Elastic webservice for primality checks Prof. Dr.

    rer. nat. Nane Kratzke Computer Science and Business Information Systems 8 Ucaml::application('prime-service-app', services: [ Ucaml::service('prime-service‘, expose: [8888 => 80], request: Ucaml::request(cpu: 100, memory: 256, ephemeral_storage: 2), scale: Ucaml::scalingrule(min: 1, max: 10, cpu: 66), scheduling: Ucaml::constraint( 'policiy': 'EU-US privacy shield', 'country': 'ge' ), ports: [8888], container: Ucaml::container('prime-unit', 'transit/primesvc:latest', cmd: 'ruby hw-service.rb', ports: [80] ) ) ] ) R1 : Containerized deployments (encapsules all the logic) R2 : Scalable services R3 : Pragmatic description R1 : Discoverable services R4 : Multi- Cloud contraints
  9. All together … 9 R1 : Containerized deployments R2: Scalable

    Applications R3: Compendiously and pragmatic R4 : Multi-Cloud Support R5: Infrastructure agnostic R6: Elastic runtime environment UCAML (this paper) PLAIN Kratzke, N. (2017). Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Container Platforms. In Proceedings of the 7th Int. Conf. on Cloud Computing and Services Science (CLOSER 2017)
  10. Evaluation E1 + E2 Prof. Dr. rer. nat. Nane Kratzke

    Computer Science and Business Information Systems 10 See: https://microservices-demo.github.io/ „Sock Shop simulates an e- commerce website that sells socks. It is intended to aid the demonstration and testing of microservice and cloud native technologies.“
  11. Evaluation E1 + E2 (Practicability) To evaluate the usability [R3]

    we described a Sock-Shop needing [R1, R2] deployed the Sock-Shop to Kubernetes, and Docker Swarm [R6] in AWS, Azure, GCE and OpenStack [R4] E3 (Transferability) For demonstrating IaaS independence [R4] we transfered the deployment at runtime between IaaS infrastructures of Amazon Web Services, Microsoft Azure, Google Compute Engine and a OpenStack installation. Prof. Dr. rer. nat. Nane Kratzke Computer Science and Business Information Systems 11
  12. How to measure language pragmaticism? Well, let‘s try it …

    Prof. Dr. rer. nat. Nane Kratzke Computer Science and Business Information Systems 12 * without autoscaling 650 500 300 170 60 K8S Nomad* Mesos/Marathon* Swarm* UCAML Lines of code (necessary to express the Sock-Shop) proposed approach LoCs taken from the official Sock-Shop repository. Platform-specific deployment files.
  13. Results of E3: Transfers between AWS, GCE, Azure and OpenStack

    Prof. Dr. rer. nat. Nane Kratzke Computer Science and Business Information Systems 13 Transfer of a 1+5 cluster (one master, five workers) Only Kubernetes data presented (Docker Swarm basically the same)
  14. Conclusion Prof. Dr. rer. nat. Nane Kratzke Computer Science and

    Business Information Systems 14 • Two independent but complementary engineering problems: platform transferability (PLAIN) and platform-agnostic application definition (UCAML). • For UCAML we rated DSL pragmatism and practitioner acceptance higher than richness of DSL expressions. • The DSL is intentionally designed for container and microservice architectures but has limitations outside this scope. This enables DSL simplicity but reduces possible use cases. • The DSL supports currently the following container platforms: • Kubernetes • Docker Swarm • Evaluation on the following IaaS infrastructes (approx. cloud marketshare): • AWS, GCE, Azure • OpenStack • Because it is infrastructure and platform agnostic further infrastructures and platforms can be extended. 70%
  15. Acknowledgement • Puzzle: Pixabay (CC0 Public Domain, PIRO4D) • Definition:

    Pixabay (CC0 Public Domain, PDPics) • Macro/Micro Architecture: isa-principles.org (CC-SA 3.0, innoQ GmbH) • Checklist: Pixabay (CC0 Public Domain, Tumiso) • Road Ahead: Pixabay (CC0 Public Domain, Nel_NZ) • Air Transport: Pixabay (CC0 Public Domain, WikiImages) • All cliparts: openclipart.com (CC0 Public Domain) Prof. Dr. rer. nat. Nane Kratzke Computer Science and Business Information Systems 15 Picture Reference Our research is funded by German Federal Ministry of Education and Research (13FH021PX4). Paper URL Presentation URL Speaker Deck
  16. About Prof. Dr. rer. nat. Nane Kratzke Computer Science and

    Business Information Systems 16 Nane Kratzke CoSA: http://cosa.fh-luebeck.de/en/contact/people/n-kratzke Blog: http://www.nkode.io Twitter: @NaneKratzke GooglePlus: +NaneKratzke LinkedIn: https://de.linkedin.com/in/nanekratzke GitHub: https://github.com/nkratzke ResearchGate: https://www.researchgate.net/profile/Nane_Kratzke SlideShare: http://de.slideshare.net/i21aneka