Azure Architecture Center (aka.ms/mspnp) · Azure Architecture Center (aka.ms/mspnp) 3 Decision...

Post on 20-May-2020

4 views 0 download

Transcript of Azure Architecture Center (aka.ms/mspnp) · Azure Architecture Center (aka.ms/mspnp) 3 Decision...

2

Azure Architecture Center (aka.ms/mspnp)

3

Decision tree for Azure compute services

4

Reference architectures

5

Choosing architecture style

• Business domain (Functional, Non-functional)

• Prerequisites

• Benefits

• Challenges

6

Choosing architecture stylesDependency management Domain type/complexity

N-Tier Horizontal layers (open/close) Majority of business logic is CRUD

Web-Queue-Worker Front/Backend jobsDecoupled by async messaging

Relatively simple domain with some resource intensive tasks

Microservices Vertical (functional) decouplingService calls via API

Complicated domain logic that requires each service to encapsulate domain knowledge

CQRS R/W segregationSchema/Scale are optimized separately

Collaborative domain where lots of users access the same data

EDA(IoT) Data ingested into streaming Independent view per sub-system

Internet of things

Big data Divide huge dataset into small chunksParallel processing on local dataset

Batch and real-time data analysisPredictive analysis using ML

Big compute Data allocation to thousands of cores Compute intensive domain such as simulation, number crunching

7

N-Tier

8

N-Tier

9

N-Tier+DMZ

10

Web-Queue-Worker

11

Web-Queue-Worker

12

Throttling Circuit breakerCache asideFederated authentication

Sharding

Static content hosting

Competing consumersLoad leveling Valet key

Retry

13

Micoservices

14

When to choose Microservices?

Benefits- Independent deployment - Fault isolation- Diverse technology- Small focused team- Separate scalability/availability

Challenges- Complexity- Network congestion- Data integrity/consistency- Testing- Reliability

Business domain- Complex domain- Frequent update- Many independent teams

Prerequisites- Skill set for distributed system- Domain knowledge- DevOps culture- Monitoring capability

15

Microservices

DevOps

User

ApplicationGateway

Application Host

Master

Image Registry

Nginx HA proxyApp GW

Docker HubACR

Docker engine on Virtual Machines

KubernetesMarathon

SwarmService Fabric

Request

RepositoryValidation

Cluster statestore

EtcdConsul

ZookeeperService Fabric

Administor

Docker imageDocker

image

Node state trackingDiscoveryLeader election

DeploymentCluster management

RoutingLoad balancingOffloading

Run services

16

Process of designing microservices using DDD

Accounts

Dronemanagement

3rd partytransportation

Callcenter

Videosurveillance

Dronesharing

Dronemanagement

Dronesharing

3rd partytransportation

Shipping(Core)

Callcenter

Shipping

Surveillance

Accounts

Boundedcontext

Aggregate Aggregate

Aggregate DomainService

DomainServiceAggregate

ApplicationService

Aggregate

Event

Domain model Domain building blocks

Service mapping

Shipping

Drone Package

Delivery DeliveryScheduler

DeliverySupervisor

Account

3rd partytransportation

Authentication

ServiceinBC

ServiceinBC

ServiceInBC

ServiceInBC

Serviceoutside

Serviceoutside

Serviceoutside

Serviceoutside

Further refinement

Breakdown per BC

Service interaction design

DeliveryScheduler

Package

Drone

Delivery

Mobileapp

Query

DeliveryHistory

DeliveryEvents

RequestEvents

GW

Status

3rd partyService

AccountService

DroneMgmtService

AAD

AccountService

AuthService

3rd partytransportation

Account

RequestHandler

DeliveryAnalysis

Archive

Supervisor

Failedops

Droneevents

17

https://aka.ms/mspnp

© Copyright Microsoft Corporation. All rights reserved.