$30 off During Our Annual Pro Sale. View Details »

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.

Nane Kratzke

March 19, 2018
Tweet

More Decks by Nane Kratzke

Other Decks in Programming

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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  6. Core Language Model
    Requirements R1, R2, R3
    Prof. Dr. rer. nat. Nane Kratzke
    Computer Science and Business Information Systems
    6
    exposes

    View Slide

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

    View Slide

  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

    View Slide

  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)

    View Slide

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

    View Slide

  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

    View Slide

  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.

    View Slide

  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)

    View Slide

  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%

    View Slide

  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

    View Slide

  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

    View Slide