building global and highly available services using windows azure

32
Building Global and Highly Available Services Using Windows Azure Name Title Microsoft Corporation

Upload: yuval

Post on 21-Mar-2016

49 views

Category:

Documents


2 download

DESCRIPTION

Building Global and Highly Available Services Using Windows Azure. Name Title Microsoft Corporation. Agenda. As the load increases, are you still available? If platform fails are you still available? How do you upgrade your service? Thinking Globally - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Building Global and Highly Available Services Using Windows Azure

Building Global and Highly Available Services Using Windows AzureNameTitleMicrosoft Corporation

Page 2: Building Global and Highly Available Services Using Windows Azure

AgendaAs the load increases, are you still available?If platform fails are you still available?How do you upgrade your service?Thinking Globally If the compute is closer to the user, what about the dependencies?

Page 3: Building Global and Highly Available Services Using Windows Azure

AssumptionsYou know the basicsWeb/Worker RolesSQL AzureWindows Azure StorageAsynchronous ProgrammingWindows Azure diagnostics

You have deployed a service to Windows AzureEverything can and will (eventually) break

Page 4: Building Global and Highly Available Services Using Windows Azure

Why do services fail?Increased workloadFailureHardwareNetwork Platform ServiceTransient conditions

HumanUpgrades

Page 5: Building Global and Highly Available Services Using Windows Azure

What do we mean by available?Same functionalityDegraded functionalityFailsafe

Page 6: Building Global and Highly Available Services Using Windows Azure

As the load increases, are you still available?

Page 7: Building Global and Highly Available Services Using Windows Azure

It is better to have 50 x 1GB database than 1 x 50GB database

What is wrong with this?

Scale me out too

Page 8: Building Global and Highly Available Services Using Windows Azure

Everything needs to scale

What about this?

Page 9: Building Global and Highly Available Services Using Windows Azure

As the load increases, are you still available?Scale everything OUTPartition data (for size AND performance)

TestTest at scaleSecurity Test

FeedbackEnable Windows Azure Diagnostics*Setup external monitoring

*May increase problem – scale that too

Page 10: Building Global and Highly Available Services Using Windows Azure

If platform fails are you still available?

Page 11: Building Global and Highly Available Services Using Windows Azure

Basics – what you get for freeElasticityEasily deploy compute resources and scale up and down

Automated Service ManagementWindows Azure will (automatically) recover bad nodes

Fault DomainsWindows Azure deploys services across fault boundaries

Storage Resilience3 copies of storage maintained

Page 12: Building Global and Highly Available Services Using Windows Azure

Fault ToleranceWhen Windows Azure breaks, it fixes itself!Can your service?

Codifying OperationsUpgrade DomainsConfigure in ServiceDefinition.csdef<ServiceDefinition name="RedDir"xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" upgradeDomainCount="3">

Transient Datacenter ConditionsDo you have Retry Logic?

Page 13: Building Global and Highly Available Services Using Windows Azure

What did you mean, retry logic?Transient conditions in the datacenter/network/serviceExample:SQL Azure Error 40501The service is currently busy. Retry the request after 10 seconds.

Transient Fault Handling Frameworkhttp://windowsazurecat.com/2011/02/transient-fault-handling-framework/ Retry against anything that might be external and have transient conditions*:SQL AzureWindows Azure StorageService Bus3rd Party Services

Page 14: Building Global and Highly Available Services Using Windows Azure

RetryChange this to a code snippet on a slide.

demo

Page 15: Building Global and Highly Available Services Using Windows Azure

How do you upgrade your service?

Page 16: Building Global and Highly Available Services Using Windows Azure

Upgrade Strategies: VIP Swap

Page 17: Building Global and Highly Available Services Using Windows Azure

Upgrade Strategies: Upgrade

WEB WORKER WEB WORKER

Page 18: Building Global and Highly Available Services Using Windows Azure

Upgrade StrategiesNew Service & Swap DNS

Page 19: Building Global and Highly Available Services Using Windows Azure

Thinking Globally

Page 20: Building Global and Highly Available Services Using Windows Azure

Thinking GloballyNetwork latencyPut compute closer to user.Put data closer to user.

Global availabilityDatacenter outages.Synchronizing data.

Page 21: Building Global and Highly Available Services Using Windows Azure

Network Latency

Page 22: Building Global and Highly Available Services Using Windows Azure

Serve Blobs from the Edge24 global locations with 99.95% availabilityCDN now works for web apps, not just for public blobs

CDN Blob StorageClosest Point of Presence

Possibly many hops or poor links

Few hops

Page 23: Building Global and Highly Available Services Using Windows Azure

Windows Azure Traffic ManagerDirect users to the service in the closest region with the Windows Azure Traffic Manager

Policies Monitoring

foo.cloudapp.net

DNS response1.2.3.4

Page 24: Building Global and Highly Available Services Using Windows Azure

Traffic Manager

demo

Page 25: Building Global and Highly Available Services Using Windows Azure

If the compute is closer to the user, what about the dependencies?

Page 26: Building Global and Highly Available Services Using Windows Azure

Windows Azure Platform Services

Windows Azure Compute Create multiple deployments – user traffic manager to route traffic

Traffic Manager should update DNS to clients

Windows Azure Storage Role your own synchronization Service Specific implementation

SQL Azure Use SQL Azure Data Sync Service Service Specific implementation

Reporting Services Deploy reports to different locations Service Specific implementation

Service Bus Create multiple namespaces Service Specific implementation

Access Control Service Future Service Specific implementation

Cache Create deployment specific cache(s) Default programming model will handle cache failure

Page 27: Building Global and Highly Available Services Using Windows Azure

Service Specific ImplementationsDoes your service fail without that platform service?Can your service use the same platform services from another data center?Can your service not use that platform service temporarily?

Page 28: Building Global and Highly Available Services Using Windows Azure

Site FailoverIf a site specific dependency is out, fail over to another siteEasy: Use Traffic ManagerHard: Code your own

Page 29: Building Global and Highly Available Services Using Windows Azure

Site Failover

demo

Page 30: Building Global and Highly Available Services Using Windows Azure

Synchronizing Data

demo

Page 31: Building Global and Highly Available Services Using Windows Azure

SummaryWindows Azure gives you high availability capabilities for freeThink about scaling outHandle transient conditions

Codify operationsAutomate redeployments etc.

Use Global Features for maximum availability & reachWindows Azure Traffic ManagerSQL Data Sync

Page 32: Building Global and Highly Available Services Using Windows Azure

© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to

be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION

IN THIS PRESENTATION.