Upload
edward-morrison
View
226
Download
0
Tags:
Embed Size (px)
Citation preview
Grigori Melnik,Fernando Simonazzi
Microsoft patterns & practices
patterns & practices symposium 2013
Autoscaling in Windows Azure
aka.ms/autoscaling
13
Achieving Elasticity (prior to 11-2011)1. Manually via Windows Azure Management
Portal
2. Autoscaling Service (third-party only)
3. Writing your own plumbing using Azure
Management REST API
13
Making Apps More ElasticTypes: instance autoscaling application throttling hybrid
Triggered by: schedules metrics
=> Autoscaling Application Block (“Wasabi”)
Other featuresScale groupsNotificationsOptimizing stabilizerPowerShell cmdlets
Symposium 201313
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
DEMOWasabi in Action
13
Important Remark Wasabi makes your app elastic but doesn’t make
your app scalable Design-for-scalability!
13
Customizing Wasabi to your business Custom actions Custom operands/data collectors
DEMOCustomizing Wasabi to your business
13
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
13
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
13
How to Get All This Goodness?
Via NuGet (search key “Wasabi”) or MS Download Center
13
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
13
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
requirementsAccording 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.
13
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 Autoscaling
http://bit.ly/cloudcover_wasabi Case studies
http://aka.ms/msdntechnetstudy and http://aka.ms/sagestudy IT Energy Efficiency Imperative http://aka.ms/ITEEI Grigori’s blog: blogs.msdn.com/agile
13
Wasabi Recap: Supported Scenarios1. Autoscaling web and worker roles in Windows Azure by dynamically changing instance counts or performing application throttling.
2. Autoscaling roles based on timetables.3. Autoscaling based on metrics collected from the application and/or Windows
Azure. 4. Constraining the instance count per role by upper and lower bounds.5. Preventing fast oscillations in the number of role instances with the stabilizer.6. Optimizing costs by limiting scaling operations acknowledging billing hours.7. Monitoring and tracing autoscaling activity.8. Sending notifications to preview any scaling operations before they take place.9. Encrypting the rules and other configuration in Windows Azure blob storage or
in local file storage.10. Managing the autoscaler operation by using Windows PowerShell.11. All blocks and guidance are 100% MS IP, free and available under MS-PL.
13
Thank you Questions & Answers