Transcript of "A Pluggable Autoscaling System @ UCC"
A Pluggable AutoscalingService for Open Cloud PaaS Systems Chris Bunch Vaibhav Arora Navraj ChohanChandra Krintz Shashank Hedge Ankit Srivastava UCC 2012 @ Chicago, IL November 8, 2012
Cloud Computing• Three tiers of abstraction: • Infrastructure: Scalable hardware • Platform: Scalable APIs • Software: Scalable applications
Autoscaling Cloud Services• Easy access to vast resources• Hard to automatically conﬁgure and deploy applications• Requires in-depth knowledge about the app• Lots of existing research on autoscaling• Most solutions scale on coarsely-deﬁned metrics
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
Cloud Computing• Infrastructure: Completely self-service• Platform: Automated access to certain APIs• Software: Optimized for one piece of software
AppScale• An open source implementation of the Google App Engine APIs• Can run over Amazon EC2 or Eucalyptus• Conﬁgures and deploys automatically• Users need only specify the number of nodes to run over
Role System• Represent each component in the AppScale stack as a “role”, which requires: • Startup scripts • Shutdown scripts • Metric collection / storage
AppController + Roles• AppController controls all other roles• Automatically places roles on nodes• Handles ordering dependencies• Can scale based on role or node state
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
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
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
Cost Awareness• Amazon EC2 meters on a per-hour basis• Scaling down => hot spares• Scaling up => use hot spares ﬁrst• Reap VMs near the hour boundary• Use Spot Instances to save money
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 ﬁve runs
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@example.com
A particular slide catching your eye?
Clipping is a handy way to collect important slides you want to go back to later.