3/4 Webinar: How to Automate Deployment and Orchestration of Application (MiCADO introduction)
This part of the webinar covers the industrial demonstrator "Audience Analytics Solution", an auto-scalable WordPress use case by Project COLA, presented by Matt Kendon (Outlandish). 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
2. Webinar on MiCADO [26/09/2019]
Agenda
• Introduction
1. Jozsef Kovacs (SZTAKI): What is MiCADO (good for)? [15 mins]
2. James Deslauriers (WMIN): How to develop an application in MiCADO? [15 mins]
• Questions [5 mins]
• Use cases
3. Matt Kendon (Outlandish): Wordpress [10 mins]
4. Amjad Ullah (WMIN): JQueuer [10 mins]
• Questions [5 mins]
9/29/2019 www.project-cola.eu 2
3. Outlandish
● Worker Co-operative in the UK
● Based in London
● Specialising in data tools, prototyping and
campaign websites.
● Primary technologies are PHP & Node JS
● Commonly use WordPress when a client
requires CMS capabilities
4. WordPress at Scale
● When you can putting your website behind a cache service or
system, like Cloudflare or Varnish, will help to keep your website
working when place under load.
● When caching is not feasible, you need to increase your system
resources
● MiCADO can respond to the performance of your application to
increase the resources that you need when your website is
under load.
www.micado-scale.eu/demos
6. Architecture - NGINX
● No scaling policy
● Prometheus Exporter to export metrics on the
web-server
● Custom image with static files for the application
● Envsubst command to template in NGINX
configuration file for different environments
7. Architecture - WordPress/PHP-FPM
● Scaling policy based on PHP-FPM pool metrics
● Prometheus exporter to expose PHP-FPM metrics to
MiCADO
● Custom image with application files embedded inside.
● Envsubst command to customise FPM Pool and PHP
ini settings
● WordPress is configured using environment variables.
8. Architecture - Redis
● No scaling policy
● Used to provide storage for PHP session data to
be shared between WordPress containers.
9. Application Description Template
● Kubernetes NodePort to provide outside access to the
NGINX container.
● Expose Port 9432 as this is the port that the Prometheus
exporter is available on
● Environment Variables are set here to configure the
NGINX configuration using the envsubst command-,line
tool.
10. Application Description Template
● Environment variables used to configure the WordPress
application.
● Environment Variables used to configure the PHP-FPM
pool
11. Application Description Template
● The scaling policy as a query that queries the PHP-FPM metrics available in
Prometheus
● The scaling rule in this case states that if the number of active processes as a
percentage of the maximum number of processes is above 60%, then a new
container should be added.
12. 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
Thank you.
https://micado-scale.eu/
Matthew Kendon
Outlandish
9/29/2019www.project-cola.eu
12