micro service challenges - microxchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf ·...

38
Copyright © 2015 by Fred George. All rights reserved. F red G eorge f red g eorge @ acm.org @fg eorge 52 μ Service Challenges 1

Upload: truongcong

Post on 05-Feb-2018

236 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Fred George [email protected] @fgeorge52

µService Challenges

1

Page 2: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

✦ Confluence of technologies ✦ Cloud computing ✦ Bandwidth ✦ Languages (and supporting frameworks)

✦ Confluence of business needs ✦ Silicon Valley innovators as role models ✦ Accelerating business needs ✦ Reduction of entry barriers for niche competitors

Why MicroSerices Now?

2

Page 3: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Challenge 1

3

Synchronous or Asychronous

Page 4: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.Copyright © 2012-2013 by Fred George. All rights reserved. 5

Chad Fowler vs. Fred George✦ Chad: Use Synchronous as default

✦ Algorithms typically described serially ✦ Programmer understanding / productivity

✦ Fred: Use Asynchronous as default ✦ Robustness should be primary goal ✦ Supports better de-coupling ✦ Teach the programmers

Page 5: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Rapids, Rivers, and Ponds

6

Page 6: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Asynchronous Services

7

Service

B u s

Page 7: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Asynchronous Services

7

Service

B u s

Need

Service

Need

Service

Need

Sol’n’sSol’n

Choose Sol’n

✦ Variants easy✦ Graceful degradation

Page 8: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Sample µServices in Action

9

High Capacity Message Bus

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Location Offers Brand Offers

Page 9: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved. 11

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Location Offers Brand Offers

Page served… client accessible

Car_Rent.com Login

Page 10: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

B A

12

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Location Offers Brand Offers

Page served… client accessible

Car_Rent.com Login

AB

A BA B

Page 11: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Brand OffersLocation Offers

B A

14

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Sally logs in as Member

Car_Rent.com Login

A B

Sally

Page 12: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Brand OffersLocation Offers

CD B A

14

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Sally logs in as Member

Car_Rent.com Login

A B

Sally

CD

Page 13: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Brand OffersLocation Offers

CD

B A

15

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Sally logs in as Member

Car_Rent.com Login

A B

Sally

CD

Page 14: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Brand OffersLocation Offers

CD

B A

16

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Sally logs in as Member

Car_Rent.com Login

A B

Sally

CD

Page 15: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

F E

Brand OffersLocation Offers

CD

B A

17

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Sally logs in as Member

Car_Rent.com Login

A B

Sally

CD

EF

Page 16: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

F E

Brand OffersLocation Offers

CD

B A

18

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Sally logs in as Member

Car_Rent.com Login

A B

Sally

CD

EF

Page 17: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

F E

Brand OffersLocation Offers

CD

B A

18

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Sally logs in as Member

Car_Rent.com Login

A B

Sally

CD

EF

C

G

CG

Page 18: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Brand OffersLocation Offers

CD

20

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Sally logs in as Member

Car_Rent.com Login

A B

Sally

EF

CGC

G

Page 19: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Brand OffersLocation Offers

CD

21

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Sally logs in as Member

Car_Rent.com Login

A B

Sally

EF

CGC

G

Page 20: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Brand OffersLocation Offers

CD

21

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Sally logs in as Member

Car_Rent.com Login

A B

Sally

EF

CGC

GC

H

CH

Page 21: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Brand OffersLocation Offers

22

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Sally logs in as Member

Car_Rent.com Login

Sally

ECG

CCH

H

H C EH EC

Page 22: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Brand OffersLocation Offers

23

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Sally looks in HoustonE

CGC

CH

HLocation: Houston

H

EC

Page 23: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Deconstructing the Database

Challenge 2

24

Page 24: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

How Many Databases?✦ Fortune 100 View:

✦ Entity-oriented; consistent ✦ As few as possible

✦ Micro-service view: ✦ DB per micro-service ✦ Poly-glot (various NoSQL, SQL) + event bus ✦ 10% writable; fewer transactional

25

Page 25: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Sample µServices in Action

26

High Capacity Message Bus

car_rent

Legacy Web

Server

Membership

Segmentation

Location Offers Brand Offers

Redis

SolutionGathering

EventPublishing

300msResponder

Page 26: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Sample µServices in Action

27

High Capacity Message Bus

car_rent

Legacy Web

Server

User Offers

Segmentation

Location Offers Brand Offers

Key-valueMembershipEnrichment

JoinOffers

NightlyETL

Page 27: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved. 28

µServices or Clojure

Challenge 3

Page 28: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

✦ Conceptualization (Job) ✦ Every service has one job ✦ If two jobs, make two services

✦ Encapsulation ✦ Service has its own persistence ✦ If shared persistence, just one service!

Services Like OO Classes

Copyright © 2012-2013 by Fred George. All rights reserved. 29

Page 29: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Clojure Loves Shared Data

30

X f o r m

X f o r m

X f o r m

X f o r m

? ? ?

Page 30: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.Copyright © 2012-2013 by Fred George. All rights reserved.

3 Companies - 3 Variants

31

Number

Languages

Coupling

Forward 2008 - now

300+

Ruby, Node.js, Clojure, R, …

DB w cron, RESTful, Kafka bus

Daily Mail 2012 - now

3 + dozens

Node.js, Clojure

RabbitMQ bus

Outpace 2013-now

25

Clojure

Orchestraton, RabbitMQ bus

>>

>>

Page 31: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved. 32

A New Hope…

Page 32: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Choosing Architecture and Frameworks

Challenge 4

33

Page 33: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved. 34

Page 34: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

No Design Patterns Book Yet…

Challenge 5

35

Page 35: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Conferences / Meetups Starting…

36

Page 36: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

What is a MicroService?

Challenge 6-n

37

Page 37: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Taxonomy May be Useful (before it’s too late)

38

✦ Synchronicity ✦ Primary API access to service

✦ Average size / number ratio of services ✦ Zones for clarity of labeling

✦ DB / service ratio ✦ Expose potential hinderances to rapid deployment

Page 38: micro service challenges - microXchgmicroxchg.io/2015/slides/01_06_micro_service_challenges.pdf · Micro-service view: DB per micro-service ... micro_service_challenges.key Created

Copyright © 2015 by Fred George. All rights reserved.

Fred George [email protected] @fgeorge52

µService Challenges

39