260 likes | 577 Views
Autoscaling in Windows Azure. aka.ms/autoscaling. Achieving Elasticity (prior to 11-2011). Manually via Windows Azure Management Portal Autoscaling Service (third-party only) Writing your own plumbing using Azure Management REST API. Making Apps More Elastic. Types:
E N D
Autoscaling in Windows Azure aka.ms/autoscaling
Achieving Elasticity (prior to 11-2011) • Manually via Windows Azure Management Portal • Autoscaling Service (third-party only) • Writing your own plumbing using Azure Management REST API
Making Apps More Elastic Types: • instance autoscaling • application throttling • hybrid Triggered by: • schedules • metrics => Autoscaling Application Block (“Wasabi”) Other features • Scale groups • Notifications • Optimizing stabilizer • PowerShell cmdlets
Rule Types • Constraint rules • Use timetables (with recurrences) to proactively set limits on #instances • Have a rank to determine precedence if there are multiple overlapping rules • Upper bound guards your budget • Lower bound guards your SLA • Reactive rules • Use conditions to reactively adjust #instances or perform some other action • Based on • perf counters • queue length (Azure queue) • current instance count • custom-defined business metrics • Help respond to unexpected bursts or collapses in your application’s workload • Guard both your budget and SLA
Wasabi in Action DEMO
Important Remark • Wasabi makes your app elastic but doesn’t make your app scalable • Design-for-scalability!
Customizing Wasabi to your business • Custom actions • Custom operands/data collectors
Stabilizer • Dealing with the high-frequency oscillation (the "yo-yo" problem) • Supports hysteresis • Enable "cool-down" period after a scaling action during which no other scaling action can take place • Granularity: global or at the role level • Direction: up or down • On by default • The user can opt-out
Optimizing Stabilizer • Making sure that scale actions correspond to the most optimal compute hour pricing charges. • Specifying intervals of time in which to execute an action E.g. only run reactive scaling up rules during the first 15 mins of the hour <stabilizer scaleUpCooldown="00:20:00"scaleDownCooldown="00:30:00" scaleUpOnlyInFirstMinutesOfHour="15" scaleDownOnlyInLastMinutesOfHour=“20" > <roles>… </roles> </stabilizer> • Supports for scale groups • User-configurable cool down on notifications too
How to Get All This Goodness? Via NuGet (search key “Wasabi”) or MS Download Center
Learning Resources • Developer’s Guide • Reference Documentation • Tailspin Reference Implementation • 14 Comprehensive Hands-on Labs • 2 case studies • 4 videos on Channel 9 • Codeplex forum
Case Study: MSDN/TechNet • Objectives • to maximize resources utilization (from 20% to 67%) • to reduce infrastructure and running costs • to "green" the MSDN and TechNet services. • while: • No code or architecture changes • Equivalent or better performance • Ease of operation • Reduced on-premises requirements According to the IT Energy Efficiency Imperative(http://aka.ms/ITEEI), the biggest potential for improving the IT energy efficiency in a data center lies withincreasing server utilization.
Resources • Windows Azure Dev Center windowsazure.com/develop/net/how-to-guides/autoscaling • Wasabi home page aka.ms/wasabi • Comprehensive hands-on labs microsoft.com/download/en/details.aspx?id=28785 • CloudCover Episode on Autoscalinghttp://bit.ly/cloudcover_wasabi • Case studieshttp://aka.ms/msdntechnetstudy and http://aka.ms/sagestudy • IT Energy Efficiency Imperative http://aka.ms/ITEEI • Grigori’s blog: blogs.msdn.com/agile
Wasabi Recap: Supported Scenarios • Autoscaling web and worker roles in Windows Azure by dynamically changinginstance counts or performing application throttling. • Autoscaling roles based on timetables. • Autoscaling based on metrics collected from the application and/or Windows Azure. • Constraining the instance count per role by upper and lower bounds. • Preventing fast oscillations in the number of role instances with the stabilizer. • Optimizing costs by limiting scaling operations acknowledging billing hours. • Monitoringand tracing autoscaling activity. • Sending notifications to preview any scaling operations before they take place. • Encryptingthe rules and other configuration in Windows Azure blobstorage or in local file storage. • Managing the autoscaler operation by using Windows PowerShell. • All blocks and guidance are 100% MS IP, free and available under MS-PL.
Thank you • Questions & Answers