19
Delivering Elastic Containerized Cloud Applications to Enable DevOps Cornel Barna, Hamzeh Khazaei, Marios Fokaefs, Marin Litoiu York University [email protected]

Delivering Elastic Containerized Cloud Applications to

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Delivering Elastic Containerized Cloud Applications to

Delivering Elastic Containerized Cloud Applicationsto Enable DevOps

Cornel Barna, Hamzeh Khazaei, Marios Fokaefs, Marin Litoiu

York University

[email protected]

Page 2: Delivering Elastic Containerized Cloud Applications to

Where are we now and what do we know?➢ State-of-the-practice and new trends

➢ Infrastructure, software, performance management

2019-10-21 Marios Fokaefs - SEAMS 2017 2

Page 3: Delivering Elastic Containerized Cloud Applications to

Performance management… ex post facto!

Web Cluster

DB Server

Load Balancer

32019-10-21 Marios Fokaefs - SEAMS 2017

Monitoring Analysis

Planning

ExecutionKnowledge?

CPU

Page 4: Delivering Elastic Containerized Cloud Applications to

Boxes and…not so boxes!

Virtual Machines

• Servers!

• Pre-packaged computation boxes (flavours)

• Isolation between VMs, dependent on physical machine

• Comes with an OS

• One runtime environment per VM

Containers

• Not Servers! Processes!

• Flexible, ad-hoc resource slicing

• Isolation between containers, dependent on host

• No OS! (inherited from host)

• Multiple runtime environments per host.

2019-10-21 Marios Fokaefs - SEAMS 2017 4

Page 5: Delivering Elastic Containerized Cloud Applications to

Data, data, data…

• Multiple tiers to manage.

• Different utilization metrics to consider.

• Possibility for multi-layer deployment (software-container-VM-physical)

• Can we design a single AMS for a multi-tier, multi-layer application? (RQ2)

2019-10-21 Marios Fokaefs - SEAMS 2017 5

Page 6: Delivering Elastic Containerized Cloud Applications to

Where do we go from here?➢ Performance model for containers

➢ Model-based autonomic manager

2019-10-21 Marios Fokaefs - SEAMS 2017 6

Page 7: Delivering Elastic Containerized Cloud Applications to

Performance Model

• K in MAPE-K

• Layered Queuing Networks

• Contribution during planning phase

• “Predict” the effect of scaling actions on performance

• Dynamic planning for scaling actions.

LQN for Containers

Model estimation

Model-based AMS

2019-10-21 Marios Fokaefs - SEAMS 2017 7

Page 8: Delivering Elastic Containerized Cloud Applications to

2019-10-21 Marios Fokaefs - SEAMS 2017 8

Page 9: Delivering Elastic Containerized Cloud Applications to

Scaling Heat Algorithm

• Allow violations to occur a few times before taking action.

• Current practice: account only for consecutive violations; if sequence is interrupted, counter resets.

• BUT! This can hide “lurking” violations.

2019-10-21 Marios Fokaefs - SEAMS 2017 9

Page 10: Delivering Elastic Containerized Cloud Applications to

LQN for Containers

• Function tiers and infrastructure layers introduce delays.

• Delays are captured as demands for resources in the hardware layer.

• Delays are summed up to determine the total utilization and responsiveness of the system.

• Uncertainties are captured through a virtual delay center.

2019-10-21 Marios Fokaefs - SEAMS 2017 10

Page 11: Delivering Elastic Containerized Cloud Applications to

Model estimator/corrector

• Model is constructed for given infrastructure and workload level.

• As these change, the model has to be adapted.

• Kalman filter corrects the demands (model coefficients) according to current metrics.

2019-10-21 Marios Fokaefs - SEAMS 2017 11

Page 12: Delivering Elastic Containerized Cloud Applications to

Model-based Autonomic Management System

2019-10-21 Marios Fokaefs - SEAMS 2017 12

Heat Scaling Algorithm

Knowledge!

Page 13: Delivering Elastic Containerized Cloud Applications to

Planning for Spark Scaling

• Every Spark job needs one driver process and at least one executorprocess.

• [limited resources, multiple jobs] => only drivers with no executors => driver starvation

• Add Spark containers for everynew Tomcat => artificiallyincrease the probabilityto bind with free executorprocesses

2019-10-21 Marios Fokaefs - SEAMS 2017 13

Page 14: Delivering Elastic Containerized Cloud Applications to

Model-based AMS => DevOps

Web Cluster

DB Server

Load Balancer

142019-10-21 Marios Fokaefs - SEAMS 2017

Monitoring Analysis

Planning

ExecutionKnowledge!

(Automation)(Integration)

DevOps

Page 15: Delivering Elastic Containerized Cloud Applications to

How well did we perform?➢ Evaluate AMS

➢ Evaluate model

2019-10-21 Marios Fokaefs - SEAMS 2017 15

Page 16: Delivering Elastic Containerized Cloud Applications to

AMS Experiments (simple workload)

2019-10-21 Marios Fokaefs - SEAMS 2017 16

Co

up

led

Deco

up

led

Page 17: Delivering Elastic Containerized Cloud Applications to

AMS Experiments (complex workload)

2019-10-21 Marios Fokaefs - SEAMS 2017 17

Page 18: Delivering Elastic Containerized Cloud Applications to

Model Experiments

Calibration 1 2 10

CPUW Error ~0 4.8 7.8

CPUS Error ~0 4.5 7.8

RT Error ~0 4.0 8.9

T/P Error ~0 4.5 5.9

P (CPUW) 99 86 65

R (CPUW) 99 75 67

F (CPUW) 99 80 66

P (CPUS) 100 83 65

R (CPUS) 98 84 80

F (CPUS) 99 84 72

2019-10-21 Marios Fokaefs - SEAMS 2017 18

Page 19: Delivering Elastic Containerized Cloud Applications to

Contributions/Conclusions

• DevOps in practice: Automation (AMS) and Integration (model) to achieve efficient management for software systems in production.

• One of the first works to achieve autoscaling in containerizedtopologies.

• Extension of performance model to handle more layers and more tiers assisting in complex scaling decisions.

• Cutting-edge technologies, including containers (Docker), big data analytics (Spark and Cassandra), validated on an actual cloud environment (OpenStack)

2019-10-21 Marios Fokaefs - SEAMS 2017 19