+ All Categories
Home > Documents > Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup...

Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup...

Date post: 20-May-2020
Category:
Upload: others
View: 9 times
Download: 0 times
Share this document with a friend
46
Transcript
Page 1: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 2: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

Designing for scalability and

high availability on Microsoft

AzureVaggelis Kappas

Premier Field Engineer - Microsoft

http://autoexec.gr | vaggeliskappas

Page 3: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

Session objective(s):

Page 4: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 5: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

Resiliency

Backup Disaster recovery High availability

RPO/RTO

RTO >> 0 RTO > 0 RTO = 0

Cost / Complexity

Best For:Data deletion

Data corruption

Legal, governance & compliance

Protection for unplanned failures

Don’t want to re-architect for HA

Don’t want the cost of HA

Large scale failures

Mission critical apps

New apps

Localized failures

Page 6: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 7: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

No single point of failure

State stays at the edges of your app stack

Loosely couple your components

Build for scale

Process centrally, deliver locally

Automate

Trust and verify

Scale out, not up

Page 8: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 9: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 10: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

Compute

Networking

Storage

All 3

Page 11: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 12: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 13: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

Fault Domain is single point of failure

Upgrade domain used for patching

VM Update Domain Fault Domain

VM1 0 0

VM2 1 1

VM3 2 2

VM4 3 0

VM5 4 1

VM6 5 2

VM Update Domain Fault Domain

VM1 0 0

VM2 1 1

VM3 2 0

VM4 3 1

VM5 4 0

ASM (2 FDs) ARM (3 FDs)

Page 14: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

Availability Set

Page 15: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 16: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 17: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 18: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 19: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

Region 1

Page 20: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

Region 1 Region 2

Page 21: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 22: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

Type Azure Load Balancer Application Gateway

Protocols UDP/TCP HTTP, HTTPS, and WebSockets

Load balancing mode 5-tuple(source IP, source port, destination

IP, destination port, protocol type)

Round Robin

Routing based on URL

SSL offloading Not supported Supported

Availability Set

Page 23: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 24: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 25: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

X

Page 26: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

DNS-based load balancing and failover

Health probe of endpoints to determine availability

Impact of Time To Live (TTL)

Multiple performance policies

Page 27: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 28: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 29: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

Primary Secondary

North Central US South Central US

South Central US North Central US

East US West US

West US East US

West US 2 West Central US

West Central US West US 2

US East 2 Central US

Central US US East 2

North Europe West Europe

West Europe North Europe

South East Asia East Asia

Germany Northeast Germany Central

Germany Central Germany Northeast

https://docs.microsoft.com/en-us/azure/best-practices-availability-paired-regions

Primary Secondary

East Asia South East Asia

East China North China

North China East China

Japan East Japan West

Japan West Japan East

Brazil South South Central US

Australia East Australia Southeast

Australia Southeast

Australia East

Canada Central Canada East

Canada East Canada Central

UK South UK West

UK West UK South

Page 30: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

!

Page 31: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 32: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

http://aka.ms/StorageAccountInfo

https://storageinfo.azurewebsites.net/api/StorageInfo

{"storageUrl" : "storagetestblob1.blob.core.windows.net"}

{

"Region":"West US",

"Datacenter":"4",

"Stage":"Production",

"Type":"Standard",

"Stamp":"07",

"Version":"Primary"

}

Page 33: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 34: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

Strong consistency

Session consistency

Eventual consistency

Page 35: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

Storage

(LRS)

App

Availability

Set

Front End

Availability

Set…

Database

Page 36: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 37: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

Storage

(RA-GRS)

App

Availability

Set

Front End

Availability

Set …

Database

Storage

(RA-GRS)

App

Availability

Set

Front End

Availability

Set …

Database

Page 38: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

Storage

(RA-GRS)

App

Availability

Set

Front End

Availability

Set…

Database

Storage

(RA-GRS)

App

Availability

Set

Front End

Availability

Set

Database

Page 39: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

Other benefits:

Page 40: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 41: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity
Page 42: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

Session objective(s):

Page 43: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

https://aka.ms/AzureHaChecklist

https://azure.microsoft.com/en-us/documentation/articles/resiliency-high-availability-azure-applications/

https://azure.microsoft.com/en-us/documentation/articles/resiliency-disaster-recovery-high-availability-azure-applications/

Page 44: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

Use Traffic ManagerAvoid single VMsUse load balancers in front of web-facing VMsPut your stateless servers in Availability SetsUse VMSS for your stateless server scalingUse Premium Storage for your production VMsUse internal load balancers (or queues) between tiersDistribute your databaseUse cachesContact support before a high scale eventStore static assets in Blob StorageUse a CDN in front of your static assets

aaa

aaa

aa

aaaa

Page 45: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

https://aka.ms/cc9cf1

Page 46: Design for scalability and high availability on Microsoft Azure · 2017-04-26 · Resiliency Backup Disaster recovery High availability RPO/RTO RTO >> 0 RTO > 0 RTO = 0 Cost / Complexity

Thank You


Recommended