Transcript
Page 1: Architecting Scalable Applications in the Cloud

Architecting Scalable Web ApplicationsClint EdmonsonMicrosoft [email protected]

Page 2: Architecting Scalable Applications in the Cloud

Let’s get started…

Page 3: Architecting Scalable Applications in the Cloud

So you have a scalability problem?

Congratulations!

Page 4: Architecting Scalable Applications in the Cloud

Scalability <> Performance

Page 5: Architecting Scalable Applications in the Cloud

Scalability is how your application behaves as the number of users increases

Page 6: Architecting Scalable Applications in the Cloud

Performance is how your application behaves for each user

Page 7: Architecting Scalable Applications in the Cloud

Transactions /second

CPU

U

tiliza

tion

Page 8: Architecting Scalable Applications in the Cloud

Number of Requests

Cost

per

Req

uest

Page 9: Architecting Scalable Applications in the Cloud

Load <> Stress

Page 10: Architecting Scalable Applications in the Cloud

Load is how many simultaneous users your application can serve

Page 11: Architecting Scalable Applications in the Cloud

Stress is how well your application behaves when resources become limited

Page 12: Architecting Scalable Applications in the Cloud

Where are the scalability limits?

NetworkDatabaseWeb serverCode

Page 13: Architecting Scalable Applications in the Cloud

Pattern: Nickel Defense

Page 14: Architecting Scalable Applications in the Cloud

Pattern: Scale Up

Page 15: Architecting Scalable Applications in the Cloud

PATTERN: Scale Out Load Balancer

Page 16: Architecting Scalable Applications in the Cloud

PATTERN: Specialize

Web Services Image ServerWeb Application

Page 17: Architecting Scalable Applications in the Cloud

PATTERN: Partition the database 1

Reference Transaction

Page 18: Architecting Scalable Applications in the Cloud

PATTERN: Partition the database 2

Write Copy

Read CopyRead Copy

Page 19: Architecting Scalable Applications in the Cloud

PATTERN: Partition the application

msdn.microsoft.com technet.microsoft.commicrosoft.com

Page 20: Architecting Scalable Applications in the Cloud

Balance the computing load

Page 21: Architecting Scalable Applications in the Cloud

Offload the work

Page 22: Architecting Scalable Applications in the Cloud

Web

Worker

Page 23: Architecting Scalable Applications in the Cloud

NoSQL

Page 24: Architecting Scalable Applications in the Cloud

Distribute globally

Page 25: Architecting Scalable Applications in the Cloud

Cache responsibly

Page 26: Architecting Scalable Applications in the Cloud

Plan for concurrency

Page 27: Architecting Scalable Applications in the Cloud

Anti-patterns

• Blaming another department• “It works great on my machine!”• Attempting to maintain state• Spending all your time looking at the code• Caching everything (twice!)• Services calling services– especially across the network or networks

Page 28: Architecting Scalable Applications in the Cloud

Question: “Scale Later”?

Page 29: Architecting Scalable Applications in the Cloud

Worker(Compute)

Worker(Compute)

Web(Compute)

Web(Compute)

Web(Compute)

Azure Storage(Queues)

(Blobs)(Tables)

SQL Azure(DB)

Worker(Compute)

Azure: Core Services

Page 30: Architecting Scalable Applications in the Cloud

Your Next Step

http://aka.ms/TryAzurehttp://aka.ms/AzureBenefitshttp://aka.ms/WindowsAzureSDK

Page 31: Architecting Scalable Applications in the Cloud

Thank You!

Clint EdmonsonMicrosoft [email protected]


Top Related