|
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