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

Elascale Poster

  • 1.
    Elascale: A ComprehensiveAutoscaling 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