a pluggable autoscaling system @ ucc

17
A Pluggable Autoscaling Service for Open Cloud PaaS Systems Chris Bunch Vaibhav Arora Navraj Chohan Chandra Krintz Shashank Hedge Ankit Srivastava UCC 2012 @ Chicago, IL November 8, 2012

Upload: chris-bunch

Post on 11-Nov-2014

6.684 views

Category:

Technology


0 download

DESCRIPTION

These slides are from my talk at UCC 2012, and discuss how we extend the AppScale cloud platform to provide a pluggable autoscaling system.

TRANSCRIPT

Page 1: A Pluggable Autoscaling System @ UCC

A Pluggable Autoscaling Service for Open Cloud

PaaS SystemsChris Bunch Vaibhav Arora Navraj Chohan

Chandra Krintz Shashank Hedge Ankit Srivastava

UCC 2012 @ Chicago, ILNovember 8, 2012

Page 2: A Pluggable Autoscaling System @ UCC

Cloud Computing

• Three tiers of abstraction:

• Infrastructure: Scalable hardware

• Platform: Scalable APIs

• Software: Scalable applications

Page 3: A Pluggable Autoscaling System @ UCC

Autoscaling Cloud Services

• Easy access to vast resources

• Hard to automatically configure and deploy applications

• Requires in-depth knowledge about the app

• Lots of existing research on autoscaling

• Most solutions scale on coarsely-defined metrics

Page 4: A Pluggable Autoscaling System @ UCC

Solving these Problems

• No one solution works for all applications

• Need a “pluggable” system that users can experiment with, via existing or new autoscaling algorithms

• Need to automate scaling up and down for distributed software stacks

Page 5: A Pluggable Autoscaling System @ UCC

Cloud Computing

• Infrastructure: Completely self-service

• Platform: Automated access to certain APIs

• Software: Optimized for one piece of software

Page 6: A Pluggable Autoscaling System @ UCC

AppScale

• An open source implementation of the Google App Engine APIs

• Can run over Amazon EC2 or Eucalyptus

• Configures and deploys automatically

• Users need only specify the number of nodes to run over

Page 7: A Pluggable Autoscaling System @ UCC

Role System

• Represent each component in the AppScale stack as a “role”, which requires:

• Startup scripts

• Shutdown scripts

• Metric collection / storage

Page 8: A Pluggable Autoscaling System @ UCC

AppScale Roles

Page 9: A Pluggable Autoscaling System @ UCC

AppController + Roles

• AppController controls all other roles

• Automatically places roles on nodes

• Handles ordering dependencies

• Can scale based on role or node state

Page 10: A Pluggable Autoscaling System @ UCC

Scaling in a PaaS

• Can scale based on SaaS or PaaS-level info:

• SaaS-level: Application statistics

• API usage, request latency

• PaaS-level: Role or node statistics

• # of roles/nodes alive, failure history

Page 11: A Pluggable Autoscaling System @ UCC

High Availability

• AppControllers periodically check in w/Metadata service

• Any AppController missing their check in has failed

• Next AppController spawns a new node with roles of the failed node

Page 12: A Pluggable Autoscaling System @ UCC

Quality of Service

• Load Balancer checks in with Metadata service with:

• # of requests per app

• # of queued requests per app

• Estimate these values for next check in

• Scale up or down if predictions exceed customizable thresholds

Page 13: A Pluggable Autoscaling System @ UCC

Cost Awareness

• Amazon EC2 meters on a per-hour basis

• Scaling down => hot spares

• Scaling up => use hot spares first

• Reap VMs near the hour boundary

• Use Spot Instances to save money

Page 14: A Pluggable Autoscaling System @ UCC

Evaluation Methodology

• Python / Java Guestbook apps from Google

• Three-tier web deployment model

• Three virtual machines

• 40,000 web requests (70 concurrently)

• All values are the average of five runs

Page 15: A Pluggable Autoscaling System @ UCC

Python Guestbook

Page 16: A Pluggable Autoscaling System @ UCC

Java Guestbook

Page 17: A Pluggable Autoscaling System @ UCC

Wrapping it up

• Thanks to the AppScale team, especially co-lead Navraj Chohan and advisor Chandra Krintz

• AppScale 1.6.3 released on October 30

• Visit us at http://appscale.cs.ucsb.edu

• E-mail: [email protected]