architectural patterns for the cloud

48
5/28/22 | SLIDE 1

Upload: maarten-balliauw

Post on 19-May-2015

1.980 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 1

Page 2: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 2

Architectural Patterns for the CloudMaarten Balliauw@maartenballiauw

Page 3: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 4

Who am I? Maarten Balliauw Antwerp, Belgium www.realdolmen.com Focus on web

ASP.NET MVC, Windows Azure, SignalR, ... MVP Windows Azure & ASPInsider

http://blog.maartenballiauw.be @maartenballiauw Author: Pro NuGet - http://amzn.to/pronuget

Page 4: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 5

Agenda Quick recap: Windows Azure What’s different in the cloud? Rethinking apps Conclusion

Maarten Balliauw
Indeling agenda kan nog beter
Page 5: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 6

Quick recapWindows Azure

Page 6: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 7

Windows Azure is a cloud platform

On-demand Self-service Pay per use Highly automated

Page 7: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 8

Windows Azure Components

Application Services Storage Services Foundation Services

Compute

BI Marketplace

Storage SQL Azure

CDN

Service Bus

Connect

Caching ACS

Page 8: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 9

What’s differentin the cloud?

Page 9: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 10

Differences with your infrastructure

Uniform Automated Designed for failure Designed for scale It’s not in your datacenter

Page 10: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 11

Uniform Every machine +/- the same No specialized hardware No specialized OS*

Page 11: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 12

DemoCustomizing the Windows Azure virtual machine

Page 12: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 13

Automated Makes decisions on provisioning &

updating Monitors health The platform knows what’s best

Not necessarily for your app…

Page 13: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 14

Designed for failure

ROLE

VM1 VM3

VM5 VM8

VM2 VM4

VM6 VM9

VM6 VM9UD 1

UD 2

Page 14: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 15

Designed for scale Scale out Stateless

ROLE

VM1 VM2 VM3 VM4

Page 15: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 16

It’s not in your datacenter Integration Authentication

Page 16: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 17

Rethinking appsWhat do I have to think about?

Page 17: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 18

Scenario: Newspaper website National & International Sudden spikes in usage Dynamic content Static content

Page 18: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 19

Current architecture Will work on the cloud! Will fail on the cloud!

WEB FARM

Page 19: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 20

Design for failure

Page 20: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 21

Assume everything will fail Automated service maintenance Compute node crash Storage throttling SQL Azure throttling Connectivity Your code

Page 21: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 22

Retry everythingSQL Azure Error 40501The service is currently busy. Retry the request after 10 seconds.

Retry against anything that might be externalSQL Azure, Windows Azure Storage, Service Bus, …

http://windowsazurecat.com/2011/02/transient-fault-handling-framework/

Page 22: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 23

The entire datacenter fails! Run in 2+ datacenters Keep data synchronized

All data or limit scope

Page 23: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 24

Refactoring the architecture

WEB FARM WEB FARM

SQL Azure Data Sync

Page 24: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 25

Windows Azure Data CentersNorth America Region Europe Region Asia Pacific Region

North Central US

South Central US

Northern Europe

Western Europe East Asia

South East Asia

50ms

100ms

Page 25: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 26

Windows Azure Traffic Manager

Page 26: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 27

Windows Azure Traffic Manager Strategies

Round-robin Fail-over Performance (geo)

Solves datacenter outage

Page 27: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 28

Are we there yet?

WEB FARM WEB FARM

Page 28: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 29

Solutions to a SPOF being down

Set a monitoring endpoint for TM Take the entire datacenter out of the loop

Take the SPOF out of the story Degrade gracefully

Page 29: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 30

Refactoring our architecture

WEB FARM WEB FARM

Page 30: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 31

Design for scale*and failure

Page 31: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 32

Belgians are not used to snow

What will happen to our architecture?

Page 32: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 33

Here’s what will happen…

WEB FARM WEB FARM

Page 33: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 34

Solution: scale out! Add more VM’s! Autoscaling (WASABi)

Windows Azure Autoscaling Application Block Enterprise Library http

://entlib.codeplex.com/wikipage?title=WASABiBetaReleaseNotes&referringTitle=EntLib5Azure

Page 34: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 35

Solution: scale out! Add more VM’s! Autoscaling (as-a-Service)

www.opstera.com

Page 35: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 36

Here’s what will happen…

WEB FARM WEB FARM

Page 36: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 37

SQL Azure Monitored by the platform The platform does not like high DB traffic

Throttling & retries

Page 37: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 38

Caching Most of our users are doing reads Cache content near where it’s needed

Windows Azure Caching Blob Storage

Page 38: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 39

Refactoring our architecture

WEB FARM WEB FARM

Page 39: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 40

Caching How do you populate it? When do you populate it? When do you invalidate it?

Page 40: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 41

Work asynchrounously Read from cache Present? Use cache Not present? Ask to cache it & read from

DB

Page 41: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 42

Refactoring our architecture

WEB FARM WEB FARM WORKER FARM

Page 42: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 43

A typical web request… 1 request is dynamic 493 requests are static*

Get that static content out of your servers! Cache content near where it’s needed

Page 43: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 44

Windows Azure CDN

Page 44: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 45

Refactoring our architecture

WEB FARM WEB FARM WORKER FARM

Page 45: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 46

Conclusion

Page 46: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 47

Key takeaways Cloud is different Design for failure Design for scale Work asynchronously Cache close to where it’s needed Also think price vs. Allowed outage

Page 47: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 48

One more… Learn from others! Amazon - http://slidesha.re/AlaHIG Trello - http://bit.ly/xO5G9e YouPorn - http://bit.ly/yUSanQ StackOverflow - http://bit.ly/xkLvH9 InstaGram - http://bit.ly/xbWuzx … (highscalability.com)

Page 48: Architectural Patterns for the Cloud

APRIL 12, 2023 | SLIDE 49

THANK YOU!

http://blog.maartenballiauw.be@maartenballiauw

http://amzn.to/pronugetor Install-Package ProNuGet