1. Elascale: A Comprehensive Autoscaling and Monitoring Solution
Rajsimman Ravichandiran, Hamzeh Khazaei, Byungchul Park, Hadi Bannazadeh and Alberto Leon-Garcia
Electrical and Computer Engineering Department, University of Toronto, Canada
Autoscalability: A required feature for today’s cloud
software systems
Both Virtual Machines (VMs) and containers are
leveraged to offer solutions as micro/macroservices
Scaling algorithms should support scalability for both
VMs and containers
Elascale adjusts both micro and macroservices [1]
Container: isolated process on host and shares kernel
space; does not contain full OS
Microservice: application components that provide
single service
Macroservice: worker nodes that host multiple
services
Docker Swarm: tool for clustering and scheduling
distributed microservices
Docker Machine: tool for provisioning and managing
macroservices across backend clouds
✧ Utilizes Docker Swarm for clustering and scheduling
services
✧ Uses Docker Machine to provision and manage
macroservices (Fig. 1)
✧ Beats (Metricbeat and Dockbeat) collect performance
metrics of micro/macroservices (Fig. 2)
✧ HTTPS encrypted communication channels to prevent
information leakage
✧ NGINX reverse proxy conceal Elasticsearch and
Kibana
✧ Elasticsearch consolidates statistics
✧ Informed insights from Kibana using adhoc queries
and visualizations
✧ UI to view dashboard and change configurations
✧ Source code on GitHub [2]
Architecture Views
1. Hamzeh Khazaei, Rajsimman Ravichandiran, Byungchul Park, Hadi Bannazadeh, Ali
Tizghadam and Alberto Leon-Garcia. Elascale: Autoscaling and Monitoring as a
Service. Accepted in the 27th Annual International Conference on Computer Science and
Software Engineering (CASCON), Sept 2017.
2. R. Ravichandiran, Elascale_scripts, (2017), GitHub repository,
https://github.com/RajsimmanRavi/Elascale_secure
Sample IoT Application
References:
Experimental Evaluation
Figure 1: Layered view
Figure 2: Component view
Figure 3: Sample IoT application deployed in SAVI Testbed
Elascale Architecture
Introduction Elascale Autoscaling Engine
✧ General-purpose, cloud and application agnostic monitoring and
autoscaling solution
✧ Autoscaling algorithms use statistics to scale up/down
micro/macroservices
✧ 𝒇 = 𝜶 ∙ 𝒄𝒑𝒖 𝒖𝒕𝒊𝒍 + 𝜷 ∙ 𝒎𝒆𝒎 𝒖𝒕𝒊𝒍 + 𝜸 ∙ 𝒏𝒆𝒕 𝒖𝒕𝒊𝒍 + 𝝀 ∙
𝒓𝒆𝒑 𝒇𝒂𝒄
𝒕
𝒓𝒆𝒑 𝒇𝒂𝒄
𝒄
✧ 𝒓𝒆𝒑 𝒇𝒂𝒄
𝒕
- target replication factor , 𝒓𝒆𝒑 𝒇𝒂𝒄
𝒄
- current replication factor
✧ 𝜶 + 𝜷 + 𝜸 + 𝝀 = 𝟏
Background
✧ Deployed as Docker services on swarm nodes
✧ Three layers containing different microservices (Fig. 3)
✧ Aggregate-sensor: virtual sensors and Kafka aggregator
✧ Edge-cloud: stream processor collects from aggregator, preprocesses and
sends to Core-cloud
✧ Core-cloud: Cassandra database stores data
✧ Experiment: If more sensors deployed, stream processor CPU
utilization increases
✧ Elascale automatically scales microservice to handle workload