Copyright © 2015 by Fred George. All rights reserved.
Fred George [email protected] @fgeorge52
µService Challenges
1
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
Copyright © 2015 by Fred George. All rights reserved.
Challenge 1
3
Synchronous or Asychronous
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
Copyright © 2015 by Fred George. All rights reserved.
Rapids, Rivers, and Ponds
6
Copyright © 2015 by Fred George. All rights reserved.
Asynchronous Services
7
Service
B u s
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Copyright © 2015 by Fred George. All rights reserved.
Deconstructing the Database
Challenge 2
24
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
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
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
Copyright © 2015 by Fred George. All rights reserved. 28
µServices or Clojure
Challenge 3
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
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
? ? ?
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
>>
>>
Copyright © 2015 by Fred George. All rights reserved. 32
A New Hope…
Copyright © 2015 by Fred George. All rights reserved.
Choosing Architecture and Frameworks
Challenge 4
33
Copyright © 2015 by Fred George. All rights reserved. 34
Copyright © 2015 by Fred George. All rights reserved.
No Design Patterns Book Yet…
Challenge 5
35
Copyright © 2015 by Fred George. All rights reserved.
Conferences / Meetups Starting…
36
Copyright © 2015 by Fred George. All rights reserved.
What is a MicroService?
Challenge 6-n
37
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
Copyright © 2015 by Fred George. All rights reserved.
Fred George [email protected] @fgeorge52
µService Challenges
39