implementing service architectures - yow! conferences...

Post on 05-Feb-2018

225 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Copyright © 2011-2014 by Fred George. All rights reserved. 1

Implementing µService ArchitecturesFred George FredGeorge@acm.org @fgeorge52

Copyright © 2011-2014 by Fred George. All rights reserved.

Fred George

2

Technologist

Computer networks - 70s

Token ring LAN - 80s

OO - late 80’s

Agile - late 90’s

MicroService Architectures - mid-2000s

Programmer

Since 1968 (Basic)

65,000 hours experience

70 languages

Computer Science Degree 1973

Manager

17 years IBM

Business degree, MIT Sloan School 1985

Product executive, IBM

VP, ThoughtWorks

Co-founder, Outpace in Silicon Valley

Senior Advisor to 3 tech companies

Copyright © 2011-2014 by Fred George. All rights reserved.

Consulting RoleChange Agent

Disruptor

“Hand grenade I am throwing into Development”

CTO describing me to his Vice President

Fred George

2

Copyright © 2011-2014 by Fred George. All rights reserved.

Experiences at…

3

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

Design: Events, not Entities

4

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

Design: History, not Current

5

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

Summary Principles of µServices✦ Very, very small✦ Loosely coupled (including flow)✦ Multiple versions acceptable (encouraged?)✦ Self-execution monitoring of each service✦ Publish interesting “stuff” (w/o requirement)✦ “Application” seems to be poor conceptualization

6

Copyright © 2014 by Fred George. All rights reserved.

Rapids, Rivers, and Ponds

7

Copyright © 2014 by Fred George. All rights reserved.

High-Performance Bus

8

K a f k a

0MQ

Service

0MQ0MQ

0MQ 0MQ0MQ

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

Asynchronous Services

9

Service

B u s

Need

Service

Need

Service

Need

Sol’n’sSol’n

Choose Sol’n

✦ Variants easy✦ Graceful degradation

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

Sample µServices in Action

11

High Capacity Message Bus

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Location Offers Brand Offers

Copyright © 2012-2014 by Fred George. All rights reserved. 13

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Location Offers Brand Offers

Page served… client accessible

Car_Rent.com Login

Copyright © 2012-2014 by Fred George. All rights reserved.

B A

14

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

Copyright © 2012-2014 by Fred George. All rights reserved.

B A

15

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Location Offers Brand Offers

Sally logs in as Member

Car_Rent.com Login

A B

Sally

Copyright © 2012-2014 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

Copyright © 2012-2014 by Fred George. All rights reserved.

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

Copyright © 2012-2014 by Fred George. All rights reserved.

FE

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

CDEF

Copyright © 2012-2014 by Fred George. All rights reserved.

F E

Brand OffersLocation Offers

CD

B A

19

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Sally logs in as Member

Car_Rent.com Login

A B

Sally

CD

EF

Copyright © 2012-2014 by Fred George. All rights reserved.

F E

Brand OffersLocation Offers

CD

B A

20

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

Copyright © 2012-2014 by Fred George. All rights reserved.

Brand OffersLocation Offers

CD

22

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Sally logs in as Member

Car_Rent.com Login

A B

Sally

EF

CGC

G

Copyright © 2012-2014 by Fred George. All rights reserved.

Brand OffersLocation Offers

CD

23

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Sally logs in as Member

Car_Rent.com Login

A B

Sally

EF

CGC

G

Copyright © 2012-2014 by Fred George. All rights reserved.

Brand OffersLocation Offers

CD

23

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

Copyright © 2012-2014 by Fred George. All rights reserved.

Brand OffersLocation Offers

24

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

Copyright © 2012-2014 by Fred George. All rights reserved.

Brand OffersLocation Offers

25

car_rent

Legacy Web

Server

User Offers

Membership

Segmentation

Sally looks in HoustonE

CGC

CH

HLocation: Houston

H

EC

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

Need Processing

26

Enrichment ServicesChannel Interfaces

Client Biases

Solution Services

Solution Blockers

Solution Selection

Logging / Monitoring

Client

Client++

Service Taxonomy

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

Why µServices?

Copyright © 2011-2014 by Fred George. All rights reserved.

Capital One EffectCapital One runs experiments in a couple of weeks

Envy of CEOs

Enablers:

Dedicated, small teams asking, “What if…?”

Identified, representative demographic sites

Flexible IT systems

28

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

Complementary Process / Tech

Pool of VMs Ops with Development

Event Architecture

Feature-Driven Development

Low-Ceremony Deployment

Copyright © 2014 by Fred George. All rights reserved.

Challenge 1

30

Synchronous or Asychronous

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

Two Camps Agree

✦ Very, very small✦ Exploit poly-glot capabilities✦ Multiple versions acceptable✦ Asynchronous is hard for programmers to learn

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

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

Copyright © 2014 by Fred George. All rights reserved. 33

Challenge 2

µServices or Clojure

Copyright © 2014 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. 34

Copyright © 2014 by Fred George. All rights reserved.

Clojure Loves Shared Data

35

X f o r m

X f o r m

X f o r m

X f o r m

? ? ?

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

3 Companies - 3 Variants

36

Number

Languages

Coupling

Forward

300+

Ruby, Node.js, Clojure, R, …

DB w cron, RESTful, Kafka bus

Daily Mail

3 + dozens !

Node.js, Clojure

RabbitMQ bus

Outpace

25 "

Clojure

Orchestraton, RabbitMQ bus

Copyright © 2014 by Fred George. All rights reserved. 37

A New Hope…

Copyright © 2014 by Fred George. All rights reserved.

Challenge 3

Deconstructing the Database

38

Copyright © 2014 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

39

Copyright © 2012-2014 by Fred George. All rights reserved.

Sample µServices in Action

40

High Capacity Message Bus

car_rent

Legacy Web

Server

Membership

Segmentation

Location Offers Brand Offers

Redis

SolutionGathering

EventPublishing

300msResponder

Copyright © 2012-2014 by Fred George. All rights reserved.

Sample µServices in Action

41

High Capacity Message Bus

car_rent

Legacy Web

Server

User Offers

Segmentation

Location Offers Brand Offers

Key-valueMembershipEnrichment

JoinOffers

NightlyETL

Copyright © 2014 by Fred George. All rights reserved.

Challenge 4

Choosing Architecture and Frameworks

42

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

Copyright © 2014 by Fred George. All rights reserved.

No Design Patterns Book Yet…

Challenge 5

44

Copyright © 2014 by Fred George. All rights reserved.

Conferences / Meetups Starting…

45

Copyright © 2011-2014 by Fred George. All rights reserved. 46

Implementing µService ArchitecturesFred George FredGeorge@acm.org @fgeorge52

top related