|
1 | 1 | # MiCADO - autoscaling framework for Docker services on Cloud |
2 | 2 |
|
3 | | -This software was developed as part of the now completed [COLA project](https://project-cola.eu/). The University of Westminster (U.K.) and MTA SZTAKI (Hungary) will continue its open-source development as part of other research projects. |
4 | | - |
5 | | -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). |
6 | | - |
7 | | -The MiCADO manual is hosted at https://micado-scale.readthedocs.io . |
8 | | - |
9 | | -Manuals for MiCADO versions are as follows, and there is a very basic quick start guide below: |
10 | | - - [MiCADO v0.9.2](https://micado-scale.readthedocs.io/en/0.9.2) |
11 | | - - [MiCADO v0.9.1-rev1](https://micado-scale.readthedocs.io/en/0.9.1-rev1) |
12 | | - - [MiCADO v0.9.1](https://micado-scale.readthedocs.io/en/0.9.1) |
13 | | - - [MiCADO v0.9.0](https://micado-scale.readthedocs.io/en/0.9.0) |
14 | | - - [MiCADO v0.8.0](https://micado-scale.readthedocs.io/en/0.8.0) |
15 | | - - [MiCADO v0.7.3](https://micado-scale.readthedocs.io/en/0.7.3) |
16 | | - - [MiCADO v0.7.2-rev1](https://micado-scale.readthedocs.io/en/0.7.2-rev1) |
17 | | - - [MiCADO v0.7.2](https://micado-scale.readthedocs.io/en/0.7.2) |
18 | | - - [MiCADO v0.7.1](https://micado-scale.readthedocs.io/en/0.7.1) |
19 | | - - [MiCADO v0.7.0](https://micado-scale.readthedocs.io/en/0.7.0) |
20 | | - - [MiCADO v0.6.1](https://micado-scale.readthedocs.io/en/0.6.1) |
21 | | - - [MiCADO v0.6.0](https://micado-scale.readthedocs.io/en/0.6.0) |
22 | | - - [MiCADO v0.5.0](https://micado-scale.readthedocs.io/en/0.5.0) |
23 | | - |
24 | | -# Quick Start Guide |
25 | | - |
26 | | -## Requirements |
27 | | - |
28 | | -### 1x MiCADO Master |
29 | | - |
30 | | -* 2 CPU / 4GB RAM / 20GB DISK |
31 | | -* Ubuntu 18.04 or 20.04 |
32 | | -* On a supported cloud |
33 | | - * AWS EC2 |
34 | | - * CloudSigma |
35 | | - * CloudBroker |
36 | | - * OpenStack |
37 | | - * Microsoft Azure |
38 | | - * Google Cloud |
39 | | - * Oracle Cloud Infrastructure |
40 | | - |
41 | | -### 1x Ansible machine (could be your laptop, or a VM instance) |
42 | | - |
43 | | -* Ansible >= v2.9 |
44 | | -* curl |
45 | | -* jq (for demos) |
46 | | -* wrk (for demos) |
47 | | - |
48 | | -## Set-up |
49 | | - |
50 | | -Clone the repository & fill in connection details and credentials. In the *hosts* file, |
51 | | -complete values for *ansible_host (Master IP)* and *ansible_user (SSH user)*. In the |
52 | | -*credentials-* files provide usernames & passwords according to cloud, desired MiCADO |
53 | | -WebUI access and/or private container registry: |
54 | | - |
55 | | -```bash |
56 | | -MICADO_PATH=/home/ubuntu/micado |
57 | | -git clone https://github.com/micado-scale/ansible-micado $MICADO_PATH |
58 | | -PLAYBOOK_PATH=$MICADO_PATH/getmicado/playbook |
59 | | - |
60 | | -cd $PLAYBOOK_PATH |
61 | | -git checkout v0.9.2 |
62 | | - |
63 | | -cd $PLAYBOOK_PATH/inventory |
64 | | -cp sample-hosts.yml hosts.yml |
65 | | -edit hosts.yml |
66 | | - |
67 | | -cd $PLAYBOOK_PATH/project/credentials |
68 | | -cp sample-credentials-cloud-api.yml credentials-cloud-api.yml |
69 | | -cp sample-credentials-micado.yml credentials-micado.yml |
70 | | -edit credentials-cloud-api.yml |
71 | | -edit credentials-micado.yml |
72 | | - |
73 | | -#optional for private registry login# |
74 | | -cp sample-credentials-docker-registry.yml credentials-docker-registry.yml |
75 | | -edit credentials-docker-registry.yml |
76 | | -``` |
77 | | - |
78 | | -Run the **micado.yml** playbook to completion: |
79 | | - |
80 | | -```bash |
81 | | -cd $PLAYBOOK_PATH |
82 | | -ansible-playbook project/micado.yml |
83 | | -``` |
84 | | - |
85 | | -#### Now view the MiCADO Dashboard at https://<MiCADO_Master_IP> |
86 | | - |
87 | | -## Testing |
88 | | - |
89 | | -Prepare a demo by filling *_settings* with your MiCADO Master IP and user/pass: |
90 | | - |
91 | | -```bash |
92 | | -cd $MICADO_PATH/demos/stressng |
93 | | -edit _settings |
94 | | -``` |
95 | | - |
96 | | -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: |
97 | | - |
98 | | -```bash |
99 | | -cp stressng_<yourcloud>.yaml stressng.yaml |
100 | | -edit stressng.yaml |
101 | | -./1-submit-tosca-stressng.sh |
102 | | -./2-list-apps.sh |
103 | | -./3-stress-cpu-stressng.sh 85 |
104 | | -``` |
105 | | - |
106 | | -Check out the Dashboard to see the test scale up, and undeploy when done: |
107 | | - |
108 | | -```bash |
109 | | -./4-undeploy-stressng.sh |
110 | | -``` |
111 | | - |
112 | | -## Edges |
113 | | - |
114 | | -Using the *sample-hosts-with-edges* file as a reference, fill values under the `micado` key as before, pointing at the MiCADO master. Under the `edgenodes` key, add as many **uniquely** named edge devices as desired, specifying their IPs as *ansible_host* and SSH username as *ansible_user* |
115 | | - |
116 | | -```bash |
117 | | -cd $PLAYBOOK_PATH/inventory |
118 | | -cp sample-hosts-with-edges.yml hosts.yml |
119 | | -edit hosts.yml |
120 | | -``` |
121 | | - |
122 | | -Run the **edge.yml** playbook to completion: |
123 | | - |
124 | | -```bash |
125 | | -cd $PLAYBOOK_PATH |
126 | | -ansible-playbook project/edge.yml |
127 | | -``` |
128 | | - |
129 | | -**When viewing the MiCADO Dashboard, check `Nodes` under** |
130 | | -**the Kubernetes Dashboard to confirm your Edge device(s) are connected** |
| 3 | +This software was developed as part of the now completed [COLA project](https://project-cola.eu/). The University of Westminster (U.K.) and MTA SZTAKI (Hungary) are continuing its open-source development as part of other research projects, like ASCLEPIOS, DIGITbrain, HARPOCRATES, and PITHIA-NRF. |
| 4 | + |
| 5 | +MiCADO is an auto-scaling framework for OCI-containers in the cloud. 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 is automatically increased/decreased. The application detailing the services, links and scaling rules must be specified by a TOSCA-based Application Description Template (ADT). |
| 6 | + |
| 7 | +The MiCADO manual is hosted at https://micado-scale.github.io . |
| 8 | + |
| 9 | +Manuals for different MiCADO versions are below, and you can find a [quick start guide here](https://micado-scale.github.io/install/quick-start/). |
| 10 | + - [MiCADO Latest Docs](https://micado-scale.github.io) |
| 11 | + |
| 12 | + - Older MiCADO versions: |
| 13 | + - [MiCADO v0.10.0](https://micado-scale.readthedocs.io/en/0.10.0) |
| 14 | + - [MiCADO v0.9.1-rev1](https://micado-scale.readthedocs.io/en/0.9.1-rev1) |
| 15 | + - [MiCADO v0.9.1](https://micado-scale.readthedocs.io/en/0.9.1) |
| 16 | + - [MiCADO v0.9.0](https://micado-scale.readthedocs.io/en/0.9.0) |
| 17 | + - [MiCADO v0.8.0](https://micado-scale.readthedocs.io/en/0.8.0) |
| 18 | + - [MiCADO v0.7.3](https://micado-scale.readthedocs.io/en/0.7.3) |
| 19 | + - [MiCADO v0.7.2-rev1](https://micado-scale.readthedocs.io/en/0.7.2-rev1) |
| 20 | + - [MiCADO v0.7.2](https://micado-scale.readthedocs.io/en/0.7.2) |
| 21 | + - [MiCADO v0.7.1](https://micado-scale.readthedocs.io/en/0.7.1) |
| 22 | + - [MiCADO v0.7.0](https://micado-scale.readthedocs.io/en/0.7.0) |
| 23 | + - [MiCADO v0.6.1](https://micado-scale.readthedocs.io/en/0.6.1) |
| 24 | + - [MiCADO v0.6.0](https://micado-scale.readthedocs.io/en/0.6.0) |
| 25 | + - [MiCADO v0.5.0](https://micado-scale.readthedocs.io/en/0.5.0) |
0 commit comments