2/4 Webinar: How to Automate Deployment and Orchestration of Application (MiCADO introduction)
This part of the webinar provides information on how to develop cloud-native applications in MiCADO. It was presented by Jay DesLauriers (University of Westminster). The webinar took place on the 26th of September 2019. If you would like to have more information visit: https://micado-scale.eu
MiCADO is open-source and a highly customisable multi-cloud orchestration and auto-scaling framework for Docker containers, orchestrated by Kubernetes.
Developed by Project COLA funded by the European Commission (grant agreement no: 731574). https://project-cola.eu
4. Cloud Native
CNCF Cloud Native Definition v1.0
github.com/cncf/toc/blob/master/DEFINITION.md
Cloud native technologies empower
organizations to build and run scalable
applications in modern, dynamic environments
such as public, private, and hybrid clouds.
Containers, service meshes, microservices,
immutable infrastructure, and declarative APIs
exemplify this approach.
9/29/2019 www.project-cola.eu 4
6. Cloud
• Directly provision
• with Occopus
• Indirectly
• CloudBroker via Occopus
• Future extension
• with Terraform
• & with Occopus
9/29/2019 www.project-cola.eu 6
7. Microservices
• Resilient
• Independent of other services
• Declarative APIs
• Inter-container communication
• Stateless
• Less persistent data
9/29/2019 www.project-cola.eu 7
8. Containers
• Docker containers & Docker images
• In DockerHub & private/custom registries
• Orchestrates with Kubernetes
• Future support for CRI-O
• OCI compliant runtimes (Kata) & OCI images
9/29/2019 www.project-cola.eu 8
9. Scalable
• Scales based on load
• Default metrics
• CPU / Memory / Network
• Scales to meet performance
• Custom metrics via exporters
• Requests per minute, latency
• Jobs in queue, experiment deadline
9/29/2019 www.project-cola.eu 9
11. MiCADO ADTs
• Application Description Templates
• Written in Oasis Standard TOSCA
• A cloud language in YAML
• www.oasis-open.org/committees/tosca/
• Authored by developers
• Understand application, metrics and scalable components
• Finalised by MiCADO operators
• Provide Compute details for a Cloud Service Provider
9/29/2019 www.project-cola.eu 11
13. Sample App: stressng
• Deliberate load testing of system resources
• launchpad.net/stress-ng
• In container at DockerHub
• lorel/docker-stress-ng
• 2GHz/2GB instance from CloudSigma
• www.cloudsigma.com
• Default metric collectors report CPU usage
• Google cAdvisor (container) / Prometheus Node Exporter (instance)
• Load-based scaling
• Scale up above an upper threshold / scale down below a low threshold
9/29/2019 www.project-cola.eu 13
14. Container Infrastructure
Describe the container
• Name
• Type (Kubernetes Deployment)
• Properties
• Image (in DockerHub)
• Arguments (options / params)
• Resources (containers per VM)
9/29/2019 www.project-cola.eu 14
15. Cloud Infrastructure
Describe the cloud instance
• Name
• Type (CloudSigma, Occopus, Small)
• Properties
• Drive Image (VM base image)
• Public SSH Key
• Firewall Policy (open ports)
9/29/2019 www.project-cola.eu 15
16. Policies
Describe the monitoring policy
• Type
• Properties
Describe the scaling policy
• Type
• Targets (in the ADT)
• Properties
• Constants
• Limits
9/29/2019 www.project-cola.eu 16
17. Policy Type Definitions
• Referenced in the ADT
• Authored by
policy developers
• Defines
• Alerts (AlertManager)
• Queries (Prometheus)
• Rules (Python)
9/29/2019 www.project-cola.eu 17
18. Project Director: Dr. Tamas Kiss, University of Westminster, UK
The COLA Project – Cloud Orchestration at the Level of Application (COLA) - receives funding from
the European Union´s Horizon 2020 research and innovation programme under grant agreement No 731574
Questions after the second talk!
https://micado-scale.eu/
Jay DesLauriers
Developer of MiCADO
University of Westminster
9/29/2019 www.project-cola.eu 18