Taming the Monolith – Are Microservices Just an Implementation Detail?

26
TAMING THE MONOLITH Are microservices just an implementation detail? #GOTOnight Cologne | June 22nd, 2015 | Dennis Traub | @DTraub

Transcript of Taming the Monolith – Are Microservices Just an Implementation Detail?

Page 1: Taming the Monolith – Are Microservices Just an Implementation Detail?

TAMING THE MONOLITHAre microservices just an implementation detail?

#GOTOnight Cologne | June 22nd, 2015 | Dennis Traub | @DTraub

Page 2: Taming the Monolith – Are Microservices Just an Implementation Detail?

EVERYBODY TALKS ABOUT MICROSERVICES

2

Page 3: Taming the Monolith – Are Microservices Just an Implementation Detail?
Page 4: Taming the Monolith – Are Microservices Just an Implementation Detail?

https://i2.wp.com/www.aydinstone.com/vic20.jpg

Page 5: Taming the Monolith – Are Microservices Just an Implementation Detail?

http://www.weihenstephan.org/~michaste/pagetable/64er/64er_1984-04.jpg | http://www.c64-wiki.de/images/thumb/4/43/listing_shape.jpg/300px-listing_shape.jpg

Page 6: Taming the Monolith – Are Microservices Just an Implementation Detail?

- A sphere of knowledge, influence, or activity - - What an organisation does, and the world it does it in -

DOMAIN

Page 7: Taming the Monolith – Are Microservices Just an Implementation Detail?

- A system of abstractions describing selected aspects of a Domain - - Used to solve problems related to that Domain -

MODEL

Page 8: Taming the Monolith – Are Microservices Just an Implementation Detail?

SIT DOWN WITH THE EXPERTS & LISTEN

Page 9: Taming the Monolith – Are Microservices Just an Implementation Detail?

http://wikimediafoundation.org/wiki/File:Commodore-VIC-20-FL.jpg

Page 10: Taming the Monolith – Are Microservices Just an Implementation Detail?

http://wikimediafoundation.org/wiki/File:Commodore-VIC-20-FL.jpghttp://backgrounds.1nova.com/wp-content/uploads/sites/27/2015/02/One-Ring-to-Rule-them-All.jpg

ONE MODEL TO RULE THEM ALL

Page 11: Taming the Monolith – Are Microservices Just an Implementation Detail?

- A language structured around the Domain Model - - Used by all team members and throughout the code -

UBIQUITOUS LANGUAGE

Page 12: Taming the Monolith – Are Microservices Just an Implementation Detail?

Customer

Page 13: Taming the Monolith – Are Microservices Just an Implementation Detail?

Customer

Marketing

Target Group

Page 14: Taming the Monolith – Are Microservices Just an Implementation Detail?

Customer

Marketing

Target Group

Website

Visitor

Page 15: Taming the Monolith – Are Microservices Just an Implementation Detail?

Customer

Marketing

Target Group

Website

Visitor

Shopping Cart

Buyer

Page 16: Taming the Monolith – Are Microservices Just an Implementation Detail?

Customer

Recipient

ShippingMarketing

Target Group

Website

Visitor

Shopping Cart

Buyer

Page 17: Taming the Monolith – Are Microservices Just an Implementation Detail?

Customer

Recipient

ShippingMarketing

Target Group

Hotline

Caller

Website

Visitor

Shopping Cart

Buyer

Page 18: Taming the Monolith – Are Microservices Just an Implementation Detail?

Customer

Recipient

ShippingMarketing

Target Group

Hotline

Caller

Website

Visitor

Shopping Cart

Buyer

Purchasing

Customer

Page 19: Taming the Monolith – Are Microservices Just an Implementation Detail?

- An explicit boundary within which a Domain Model exists - - Inside, all terms have a specific meaning -

- They are part of the Ubiquitous Language -

BOUNDED CONTEXT

Page 20: Taming the Monolith – Are Microservices Just an Implementation Detail?

Customer

Recipient

ShippingMarketing

Target Group

Hotline

Caller

Website

Visitor

Shopping Cart

Buyer

Purchasing

Customer

Page 21: Taming the Monolith – Are Microservices Just an Implementation Detail?

Customer

Recipient

ShippingMarketing

Target Group

Hotline

Caller

Website

Visitor

Shopping Cart

Buyer

Purchasing

Customer

Page 22: Taming the Monolith – Are Microservices Just an Implementation Detail?

KEY ATTRIBUTES OF A BOUNDED CONTEXT

High Cohesion Loose Coupling

Represents Business Capability Context-specific Model

Page 23: Taming the Monolith – Are Microservices Just an Implementation Detail?

KEY ATTRIBUTES OF A MICROSERVICE

High Cohesion Loose Coupling

Represents Business Capability Context-specific Model

Page 24: Taming the Monolith – Are Microservices Just an Implementation Detail?

We don’t model reality We model useful abstractions

Page 25: Taming the Monolith – Are Microservices Just an Implementation Detail?

We don’t build a model that works for everyone

Page 26: Taming the Monolith – Are Microservices Just an Implementation Detail?

THANK YOU! Dennis Traub | @DTraub | #GOTOnight