devlink - architecting scalable web applications

32
Architecting Scalable Web Applications Clint Edmonson Architect Evangelis Microsoft @clinted

Upload: clint-edmonson

Post on 09-May-2015

1.822 views

Category:

Technology


2 download

DESCRIPTION

There is an increasing importance to architect these applications for both growth and for the optimal user experience. Modern development tools allow you to develop fantastic applications, but there are pitfalls with architecting the applications in the wrong way. This talk will discuss industry proven best practices for building highly scalable web sites and applications.

TRANSCRIPT

Page 1: DevLink - Architecting Scalable Web Applications

Architecting ScalableWeb Applications

Clint EdmonsonArchitect EvangelistMicrosoft@clinted

Page 2: DevLink - Architecting Scalable Web Applications

Thank you!

• Thank you for being here!

• Thank you for inviting me!

• Thank you for the BAS!

Page 3: DevLink - Architecting Scalable Web Applications

Architect Audience Questionnaire

• Do you like bullet points?

• Do you like pictures?

• Do you like code?

• Do you like Star Wars?

Page 4: DevLink - Architecting Scalable Web Applications

Let’s get started…

Page 5: DevLink - Architecting Scalable Web Applications

So you have a scalability problem?

Congratulations!

Page 6: DevLink - Architecting Scalable Web Applications

Scalability <> Performance

Page 7: DevLink - Architecting Scalable Web Applications

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

Page 8: DevLink - Architecting Scalable Web Applications

Performance is how your application behaves for each user

Page 9: DevLink - Architecting Scalable Web Applications

Transactions /second

CPU

U

tiliza

tion

Page 10: DevLink - Architecting Scalable Web Applications

Number of Requests

Cost

per

Req

uest

Page 11: DevLink - Architecting Scalable Web Applications

Load <> Stress

Page 12: DevLink - Architecting Scalable Web Applications

Load is how many simultaneous users your application can serve

Page 13: DevLink - Architecting Scalable Web Applications

Stress is how well your application behaves when resources become limited

Page 14: DevLink - Architecting Scalable Web Applications

Where are the scalability limits?

NetworkDatabaseWeb serverCode

Page 15: DevLink - Architecting Scalable Web Applications

Pattern: Nickel Defense

Page 16: DevLink - Architecting Scalable Web Applications

Pattern: Scale Up

Page 17: DevLink - Architecting Scalable Web Applications

PATTERN: Scale Out

Page 18: DevLink - Architecting Scalable Web Applications

PATTERN: Specialize

Web Services Image ServerWeb Application

Page 19: DevLink - Architecting Scalable Web Applications

PATTERN: Partition the application

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

Page 20: DevLink - Architecting Scalable Web Applications

PATTERN: Partition the database 1

Reference Transaction

Page 21: DevLink - Architecting Scalable Web Applications

PATTERN: Partition the database 2

Write Copy

Read CopyRead Copy

Page 22: DevLink - Architecting Scalable Web Applications

Balance the computing load

Page 23: DevLink - Architecting Scalable Web Applications

Offload the work

Page 24: DevLink - Architecting Scalable Web Applications

Distribute globally

Page 25: DevLink - Architecting Scalable Web Applications

Cache responsibly

Page 26: DevLink - Architecting Scalable Web Applications

Plan for concurrency

Page 27: DevLink - Architecting Scalable Web Applications

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: DevLink - Architecting Scalable Web Applications

Discussion: “Scale Later”

Page 29: DevLink - Architecting Scalable Web Applications

Your Next Step

http://highscalability.com/

Page 30: DevLink - Architecting Scalable Web Applications

BONUS:

Alleged photo of an actual Stormtrooper Conference

Page 31: DevLink - Architecting Scalable Web Applications

Stormtrooper Convention(StormLink)

Page 32: DevLink - Architecting Scalable Web Applications

Thank you!Clint EdmonsonArchitect [email protected]://www.notsotrivial.netTwitter: @clinted