microservices and distributed monoliths - ilm...microservices and distributed monoliths @davidboike....

62
https://refractingreflections.wordpress.com/tag/2001-a-space-odyssey/ Microservices and Distributed Monoliths @DavidBoike

Upload: others

Post on 28-May-2020

27 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

https://refractingreflections.wordpress.com/tag/2001-a-space-odyssey/

Microservices and Distributed Monoliths

@DavidBoike

Page 2: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 3: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 4: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 5: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 6: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

HTTP/JSON/“REST”

It’s the microservices way®™©MMXVII David Boike, All Rights Reserved

Comic Sans totally used on purpose

Page 7: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 8: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 9: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

http://montages.no/2009/09/begrepet-grafisk-likhet/

Page 10: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 11: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 12: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Hops 1 2 3 4 10

Uptime 99.999% 99.998% 99.997% 99.996% 99.990%

Downtime/Year 5.3m 10.5m 15.8m 21m 52.6m

Five Nines (99.999% Uptime)

Page 13: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Hops 1 2 3 4 10

Uptime 99.990% 99.980% 99.970% 99.960% 99.900%

Downtime/Year 52.6m 1h 45m 2h 37m 3h 30m 8h 45m

Four Nines (99.99% Uptime)

Page 14: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Hops 1 2 3 4 10

Uptime 99.950% 99.900% 99.850% 99.800% 99.501%

Downtime/Year 4h 22m 8h 45m 13h 8m 17h 30m 43h 42m

Azure Multi-Instance VM (99.95% Uptime)

Page 15: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Hops 1 2 3 4 10

Uptime 99.900% 99.800% 99.700% 99.601% 99.004%

Downtime/Year 8h 45m 17h 30m 1d 2h 15m 1d 10h 59m 3d 15h 4m

Azure Single-Instance VM (99.9% Uptime)

Page 16: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Hops 1 2 3 4 10

Uptime 99.000% 98.010% 97.030% 96.060% 90.438%

Downtime/Year 3.65 days 7.26 days 10.84 days 14.38 days 34.9 days

Azure 25% Refund (99% Uptime)

Page 17: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Series & Parallel (with 99.99% nodes)

3 (99.97%)

3…

3

x30(.99993) 30 = .999990 = .99104

3.27 days downtime

(99.95%)90 = 16.06 days

Page 18: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Hops 1 2 3 4 10

Latency 100ms 200ms 300ms 400ms 1 second

Latency

Does not count any processing time!

Page 19: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Latency Matters

http://highscalability.com/blog/2009/7/25/latency-is-everywhere-and-it-costs-you-sales-how-to-crush-it.html

Amazon found every 100ms of latency cost them 1% in sales. Google found an extra .5 seconds in search page generation time dropped traffic by 20%. A broker could lose $4 million in revenues per millisecond if their electronic trading platform is 5 milliseconds behind the competition.

Page 20: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 21: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 22: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 23: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Types of Coupling

•Afferent/Efferent

•Platform

•Spatial

•Temporal

Page 24: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

API

DAL

BL

Follow the Coupling

DB

UI

Page 25: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 26: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

DAL

BL

Follow the Coupling

UI

DB

API

ServiceBus

Page 27: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 28: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Sea ofService BusGoodness

Page 29: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 30: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

PERFORMANCE – RPC vs MESSAGING

With RPC, threads are allocated with load

With messaging, threads are independent

Difference due to synchronous blocking calls

Memory, DB locks, held longer with RPC

Throughput

Load

RPC

Messaging

Page 31: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

async/await

NOT A FIX!

Page 32: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Quick Review

Page 33: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

DAL

BL

Layers/API not the answer

UI

DB

API

ServiceBus

Page 34: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Sea ofService BusGoodness

Page 35: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 36: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 37: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 38: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 39: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Which service owns this page?

NONE!

Page 40: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Divide it up

Product Catalog

Pricing

Inventory

Cross Sell

Product

Catalog

Product Ratings

Pricing

Product

Catalog

Shipping

Product Ratings

Pricing

Product Catalog

Page 41: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Page Composition

Server

Product Catalog

Pricing

Inventory

Cross Sell

Product Ratings

Shipping

Page 42: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 43: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Building a view

• Microservice components deployed in web tier

• Microservices register interest in routes

• Fetch data based on routes

• Populate dynamic view model

• HTML/CSS owned by Branding service

Page 44: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Composed ViewModel

View

model

Component fromproduct-catalog

Component from finance

Component from marketing

{“products”: [{

{“productName”,“productPrice”,“productRating”

},{ ... }

}]}

Page 45: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

How to make a grid?

Microservice SELECT N+1

Page 46: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 47: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

How to make a grid

client-side message broker

Component fromproduct-catalog

Component from finance

Component from marketing

View

model

Component fromproduct-catalog

Component from finance

http://mydomain.com/products/123

Component from marketing

ProductNameA

€ 20.00

cover image

A

AuthorNameA

ProductNameB

€ 20.00

cover image

B

AuthorNameB

ProductNameC

€ 20.00

cover image

C

AuthorNameC

ProductNameD

€ 20.00

cover image

D

AuthorNameD

load relatedproducts

Page 48: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

How to make a grid

client-side message broker

Component fromproduct-catalog

Component from finance

Component from marketing

View

model

Component fromproduct-catalog

Component from finance

http://mydomain.com/products/123

Component from marketing

ProductNameA

€ 20.00

cover image

A

AuthorNameA

ProductNameB

€ 20.00

cover image

B

AuthorNameB

ProductNameC

€ 20.00

cover image

C

AuthorNameC

ProductNameD

€ 20.00

cover image

D

AuthorNameD

publish `RelatedProductsFound`

load relatedproducts

receive event

Page 49: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

How to make a grid

Component fromproduct-catalog

Component from finance

Component from marketing

View

model

Component fromproduct-catalog

Component from finance

http://mydomain.com/products/123

Component from marketing

ProductNameA

€ 20.00

cover image

A

AuthorNameA

ProductNameB

€ 20.00

cover image

B

AuthorNameB

ProductNameC

€ 20.00

cover image

C

AuthorNameC

ProductNameD

€ 20.00

cover image

D

AuthorNameD

load relatedproducts

Page 50: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 51: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 52: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 53: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 54: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 55: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

DAL

BL

Vertical Slices, not Horizontal Layers

UI

DB

API

ServiceBus

Page 56: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Sea ofService BusGoodness

Page 57: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Divide it up

Product Catalog

Pricing

Inventory

Cross Sell

Product

Catalog

Product Ratings

Pricing

Product

Catalog

Shipping

Product Ratings

Pricing

Product Catalog

Page 58: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 59: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 60: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest
Page 61: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Thank you!

Page 62: Microservices and Distributed Monoliths - Ilm...Microservices and Distributed Monoliths @DavidBoike. ... Azure Multi-Instance VM (99.95% Uptime) ... •Microservices register interest

Apply systems design with

microservices

Get free access to the Advanced Distributed Systems Design course

go.particular.net/mdc17

make-awesome.com @DavidBoike [email protected]