240 likes | 408 Views
Building Scalable Cloud Applications. David Aiken Windows Azure Technical Specialist Microsoft Corporation. If the number of users/tasks in increases, can your application handle that?. 1. Scale out. Load Balancer. Web Server. Web Server. Capability: 1000 requests/sec.
E N D
Building Scalable Cloud Applications David Aiken Windows Azure Technical Specialist Microsoft Corporation
If the number of users/tasks in increases, can your application handle that?
1 Scale out
LoadBalancer Web Server Web Server Capability: 1000 requests/sec Capability: 1000 requests/sec State
LoadBalancer Web Server Web Server Capability: 1000 requests/sec Capability: 1000 requests/sec State
Load Test 1000 Users 1 Instance 5 Instances Max User Load 600 Tests/Sec 13.9 Tests Failed 0 Avg. Test Time (sec) 21.1 Pages/Sec 43.5 Avg. Page Time (sec) 1.61 Requests/Sec 246 Requests Failed 0 Avg. Response Time (sec) 0.32 • Max User Load 600 • Tests/Sec 1.69 • Tests Failed 371 • Avg. Test Time (sec) 90.9 • Pages/Sec 5.43 • Avg. Page Time (sec) 34.3 • Requests/Sec 33.8 • Requests Failed 583 • Avg. Response Time (sec) 5.57
1 Scale out Decouple tasks 2
Web Role Blob Storage
Web Role Worker Role Q Blob Storage
Web Role Worker Role Q Blob Storage
1 Scale out Decouple tasks 2 3 Cache static content
Serve Content from the Edge 24 global locations with 99.95% availability CDN now works for web apps, not just for public blobs Possibly many hops or poor links Few hops CDN Blob Storage Closest Point of Presence Public container X X Blob header determines time-to-live at the edge DNS name resolves to closest POP
1 Scale out Decouple tasks 2 3 Cache static content 4 Scale across data centers
Windows Azure Traffic Manager Traffic Manager foo-us.cloudapp.net www.foo.net foo-europe.cloudapp.net Policies Monitoring DNS response 1.2.3.4 foo-asia.cloudapp.net
Summary 1 Scale out – Tell us how many, we do the rest! Use Workers and Queues to decouple expensive tasks 2 3 Use the CDN to cache static content 4 Use Traffic Manager to scale out across datacenters 5 Use Data Sync to synchronize data between datacenters