Transcript
Page 1: Grigori Melnik, Fernando Simonazzi Microsoft patterns & practices patterns & practices symposium 2013 Autoscaling in Windows Azure aka.ms/autoscaling

Grigori Melnik,Fernando Simonazzi

Microsoft patterns & practices

patterns & practices symposium 2013

Autoscaling in Windows Azure

aka.ms/autoscaling

Page 2: 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

Page 3: Grigori Melnik, Fernando Simonazzi Microsoft patterns & practices patterns & practices symposium 2013 Autoscaling in Windows Azure aka.ms/autoscaling

13

Making Apps More ElasticTypes: instance autoscaling application throttling hybrid

Triggered by: schedules metrics

=> Autoscaling Application Block (“Wasabi”)

Other featuresScale groupsNotificationsOptimizing stabilizerPowerShell cmdlets

Page 4: Grigori Melnik, Fernando Simonazzi Microsoft patterns & practices patterns & practices symposium 2013 Autoscaling in Windows Azure aka.ms/autoscaling

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

Page 5: Grigori Melnik, Fernando Simonazzi Microsoft patterns & practices patterns & practices symposium 2013 Autoscaling in Windows Azure aka.ms/autoscaling

DEMOWasabi in Action

Page 6: Grigori Melnik, Fernando Simonazzi Microsoft patterns & practices patterns & practices symposium 2013 Autoscaling in Windows Azure aka.ms/autoscaling

13

Important Remark Wasabi makes your app elastic but doesn’t make

your app scalable Design-for-scalability!

Page 7: Grigori Melnik, Fernando Simonazzi Microsoft patterns & practices patterns & practices symposium 2013 Autoscaling in Windows Azure aka.ms/autoscaling

13

Customizing Wasabi to your business Custom actions Custom operands/data collectors

Page 8: Grigori Melnik, Fernando Simonazzi Microsoft patterns & practices patterns & practices symposium 2013 Autoscaling in Windows Azure aka.ms/autoscaling

DEMOCustomizing Wasabi to your business

Page 9: Grigori Melnik, Fernando Simonazzi Microsoft patterns & practices patterns & practices symposium 2013 Autoscaling in Windows Azure aka.ms/autoscaling

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

Page 10: Grigori Melnik, Fernando Simonazzi Microsoft patterns & practices patterns & practices symposium 2013 Autoscaling in Windows Azure aka.ms/autoscaling

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

Page 11: Grigori Melnik, Fernando Simonazzi Microsoft patterns & practices patterns & practices symposium 2013 Autoscaling in Windows Azure aka.ms/autoscaling

13

How to Get All This Goodness?

Via NuGet (search key “Wasabi”) or MS Download Center

Page 12: Grigori Melnik, Fernando Simonazzi Microsoft patterns & practices patterns & practices symposium 2013 Autoscaling in Windows Azure aka.ms/autoscaling

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

Page 13: Grigori Melnik, Fernando Simonazzi Microsoft patterns & practices patterns & practices symposium 2013 Autoscaling in Windows Azure aka.ms/autoscaling

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.

Page 14: Grigori Melnik, Fernando Simonazzi Microsoft patterns & practices patterns & practices symposium 2013 Autoscaling in Windows Azure aka.ms/autoscaling

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

Page 15: Grigori Melnik, Fernando Simonazzi Microsoft patterns & practices patterns & practices symposium 2013 Autoscaling in Windows Azure aka.ms/autoscaling

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.

Page 16: Grigori Melnik, Fernando Simonazzi Microsoft patterns & practices patterns & practices symposium 2013 Autoscaling in Windows Azure aka.ms/autoscaling

13

Thank you Questions & Answers


Recommended