Building Big: Lessons learned from Windows Azure customers * Part

Download Report

Transcript Building Big: Lessons learned from Windows Azure customers * Part

design and
architecture
•
•
Scale
Availability
Room
Level
Title
Presenter
Nexus/Normandy
300
Advanced Windows Azure Infrastructure as a Service
(IaaS)
Michael Washam
Trident/Thunder
200
What’s new in VS2012
Orville McDonald
Odyssey
300
Apps for Office and SharePoint development using
the all new browser-based “Napa” and Visual Studio
2012
Saurabh Bhatia
Jim Nakashima
Magellan
200
WP8: Making Money with Your Application on
Windows Phone
Todd Brix
James Hamilton, https://www.usenix.org/events/lisa07/tech/full_papers/hamilton/hamilton.pdf
Redundancy and Fault Recovery
Commodity hardware slice
Single version software
Multi-tenancy
Support geo-distribution
Automatic provisioning and installation
Configuration and code as a unit
Manage roles, not servers
Deal with multi-system failures
Recover at the service level
James Hamilton, https://www.usenix.org/events/lisa07/tech/full_papers/hamilton/hamilton.pdf
Partition the service
Optimize for density
Design for Failure
• Do not trust underlying components
• Decouple components
• Avoid single points of failure
• Support geo-distribution
Instrument everything
• Implement inter-service monitoring and
alerting
• Instrument for production testing
• Configurable logging
http://www.microsoft.com/en-us/news/features/2012/jun12/06-06Pottermore.aspx
Pottermore
Load Balancer
Windows
Azure SQL
Database
Web
Role
Worker
Role
Azure Cloud Service
Aspect
Partitioning
Capacity
Web role
Low state
Automatic (via load
balancer)
Round-robin
Add more
instances (easy)
SQL Database High state
Manual (via app code)
Choose partitioning
function
Add more
databases
1
2
3
4
• Select the partition key
• Convert partition key to a partition value
(optional)
• Map partition value to a logical partition
• Map logical partition to physical resource
1
• The user (user ID) is a natural partitioning
key; all workloads are user-centric
2
• Use a non-cryptographic hash to convert
the user ID to an integer value
3
4
• Map a range of integers to a logical “shard”
• Map logical “shard” to physical resource
(database)
639837447
639837447))
-789794523
Shard: 1
-1288490190:-429496730
-789794523
Shard: 27
-789794523
Shard: 2
Press
Association
HTTP GET
Azure Load Balancer
WebRole Instance
WebRole Instance
WebRole Instance
Cache Role
Instance
Cache Role
Instance
PUT
PUT
Worker Role
Instance
HTTP GET
Source Data Service
moved
upgrade domain
rebalanced
NOT
Best Practices for the Design of Large-Scale Services on Windows Azure Cloud Services
www.windowsazure.com/build
Please submit session evals on the Build Windows 8 App
or at http://aka.ms/BuildSessions