Skip to content
Go to file

MiCADO - autoscaling framework for Docker services on Cloud

This software was developed as part of the now completed COLA project. The University of Westminster (U.K.) and MTA SZTAKI (Hungary) will continue its open-source development as part of other research projects.

MiCADO is an auto-scaling framework for Docker applications. It supports autoscaling at two levels. At virtual machine (VM) level, a built-in Kubernetes cluster is dynamically extended or reduced by adding/removing Nodes hosted on cloud virtual machines. At container level, the number of replicas implementing a Docker Service is automatically increased/decreased. The application detailing the services, links and scaling rules must be specified by a TOSCA-based Application Description Template (ADT).

The MiCADO manual is hosted at .

Manuals for MiCADO versions are as follows, and there is a very basic quick start guide below:

Quick Start Guide


1x MiCADO Master

  • 2 CPU / 4GB RAM / 20GB DISK
  • Ubuntu 16.04, 18.04 or 20.04
  • On a supported cloud
    • AWS EC2
    • CloudSigma
    • CloudBroker
    • OpenStack
    • Microsoft Azure
    • Google Cloud

1x Ansible Remote (or locally on Master)

  • Ansible >= v2.8
  • curl
  • jq (for demos)
  • wrk (for demos)


Clone the repository & prepare the credentials:

git clone micado
cd micado
git checkout v0.9.0
cp sample-hosts.yml hosts.yml
cp sample-credentials-cloud-api.yml credentials-cloud-api.yml
cp sample-credentials-micado.yml credentials-micado.yml
#option to login to private registry# cp sample-credentials-docker-registry.yml credentials-docker-registry.yml

Fill the hosts file with values for ansible_host (Master IP) and ansible_user (SSH user) and fill the credentials- files with usernames & passwords:

vim hosts.yml
vim credentials-cloud-api.yml
vim credentials-micado.yml
#option to login to private registry# vim credentials-docker-registry.yml

Run the playbook to completion:

ansible-playbook -i hosts.yml micado-master.yml

Now view the MiCADO Dashboard at https://<MiCADO_Master_IP>


Prepare a demo by filling _settings with your MiCADO Master IP and user/pass:

cd demos/stressng
vim _settings

Fill the required fields (ADD_YOUR_ID ...) under the worker-node virtual machine with IDs from your cloud service provider, then run the test scripts:

cp stressng_<yourcloud>.yaml stressng.yaml
vim stressng.yaml
./ 85

Check out the Dashboard to see the test scale up, and undeploy when done:



MiCADO: auto-scaling framework for Docker applications on Cloud




No packages published