a pluggable autoscaling system @ ucc
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](https://reader034.vdocuments.site/reader034/viewer/2022050807/54620e72b1af9f936c8b4d3b/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050807/54620e72b1af9f936c8b4d3b/html5/thumbnails/2.jpg)
Cloud Computing
• Three tiers of abstraction:
• Infrastructure: Scalable hardware
• Platform: Scalable APIs
• Software: Scalable applications
![Page 3: A Pluggable Autoscaling System @ UCC](https://reader034.vdocuments.site/reader034/viewer/2022050807/54620e72b1af9f936c8b4d3b/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050807/54620e72b1af9f936c8b4d3b/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050807/54620e72b1af9f936c8b4d3b/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050807/54620e72b1af9f936c8b4d3b/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050807/54620e72b1af9f936c8b4d3b/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050807/54620e72b1af9f936c8b4d3b/html5/thumbnails/8.jpg)
AppScale Roles
![Page 9: A Pluggable Autoscaling System @ UCC](https://reader034.vdocuments.site/reader034/viewer/2022050807/54620e72b1af9f936c8b4d3b/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050807/54620e72b1af9f936c8b4d3b/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050807/54620e72b1af9f936c8b4d3b/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050807/54620e72b1af9f936c8b4d3b/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050807/54620e72b1af9f936c8b4d3b/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050807/54620e72b1af9f936c8b4d3b/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022050807/54620e72b1af9f936c8b4d3b/html5/thumbnails/15.jpg)
Python Guestbook
![Page 16: A Pluggable Autoscaling System @ UCC](https://reader034.vdocuments.site/reader034/viewer/2022050807/54620e72b1af9f936c8b4d3b/html5/thumbnails/16.jpg)
Java Guestbook
![Page 17: A Pluggable Autoscaling System @ UCC](https://reader034.vdocuments.site/reader034/viewer/2022050807/54620e72b1af9f936c8b4d3b/html5/thumbnails/17.jpg)
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]