Top Banner
The SeVEN DEADLY SINS OF MICRoservices Daniel Bryant @danielbryantuk Container Solutions London (WITH Credit to Tareq Abedrabbo, OPENCREDO)
17
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: QCon NY 2015 "The Seven Deadly Sins of Microservices"

The SeVEN DEADLY SINS OF MICRoservices

Daniel Bryant @danielbryantuk

Container Solutions London

(WITH Credit to Tareq Abedrabbo, OPENCREDO)

Page 2: QCon NY 2015 "The Seven Deadly Sins of Microservices"

Disclaimer

Any resemblance to existing projects

(whether overrunning or over-budget)

is purely Coincidental...

10/06/15   @danielbryantuk  

Page 3: QCon NY 2015 "The Seven Deadly Sins of Microservices"

1. Lust - Using THE LATEST and Greatest Tech… 10/06/15   @danielbryantuk  

Page 4: QCon NY 2015 "The Seven Deadly Sins of Microservices"

Pick Your (Technical) Battles...…

•  As Dan McKinley says, “Choose Boring Technology” –  Optimize globally across organisation

•  Matt Raible’s Comparison Framework

–  Objectivity(?)

–  Document decisions

10/06/15   @danielbryantuk  

Page 5: QCon NY 2015 "The Seven Deadly Sins of Microservices"

2. GLUTTONY - Excessive Communication PROTOCOLS 10/06/15   @danielbryantuk  

Page 6: QCon NY 2015 "The Seven Deadly Sins of Microservices"

Standardize Across the Organization

•  Choose one synchronous protocol

–  e.g. JSON over HTTP

•  Choose one asynchronous protocol

–  e.g. RabbitMQ

Don’t gold-plate, but know your options: ProtoBuf, Thrift, ZeroMQ, MQTT

10/06/15   @danielbryantuk  

Page 7: QCon NY 2015 "The Seven Deadly Sins of Microservices"

3. GREED - All your service are Belong to us… 10/06/15   @danielbryantuk  

Page 8: QCon NY 2015 "The Seven Deadly Sins of Microservices"

Conway was Telling the Truth... Deal with it!

10/06/15   @danielbryantuk  

Page 9: QCon NY 2015 "The Seven Deadly Sins of Microservices"

4. SLOTH - Creating a distributed monolith 10/06/15   @danielbryantuk  

Page 10: QCon NY 2015 "The Seven Deadly Sins of Microservices"

Can’t Deploy Services Independently?

•  Check your ‘bounded contexts’

•  Consumer-driven Contracts FTW –  Martin Fowler: CDC - A Service Evolution Pattern

“CDC is BDD for microservices”

10/06/15   @danielbryantuk  

Page 11: QCon NY 2015 "The Seven Deadly Sins of Microservices"

5. WRATH - Blowing up when bad things happen 10/06/15   @danielbryantuk  

Page 12: QCon NY 2015 "The Seven Deadly Sins of Microservices"

Bring in the Monkeys (or Michael Nygard)…

10/06/15   @danielbryantuk  

Page 13: QCon NY 2015 "The Seven Deadly Sins of Microservices"

6. ENVY - The shared SINGLE domain fallacy 10/06/15   @danielbryantuk  

Page 14: QCon NY 2015 "The Seven Deadly Sins of Microservices"

One Model to Rule Them All...

•  One model… –  Breaks encapsulation

–  Introduces coupling

•  Know your DDD –  Entities –  Value Objects

–  Aggregates and Roots

10/06/15   @danielbryantuk  

Page 15: QCon NY 2015 "The Seven Deadly Sins of Microservices"

7. PRIDE - testing in the world of transience 10/06/15   @danielbryantuk  

Page 16: QCon NY 2015 "The Seven Deadly Sins of Microservices"

Testing With Microservices is Difficult...

•  Invest in your build pipeline testing –  Serenity BDD

–  Wiremock / Saboteur

–  Jenkins Performance plugin

•  Do it in production(?) –  Netflix –  Gilt

10/06/15   @danielbryantuk  

Page 17: QCon NY 2015 "The Seven Deadly Sins of Microservices"

THANKS...

@danielbryantuk

[email protected]

@containersoluti

www.container-solutions.com

(Credit to Tareq Abedrabbo for inspiration/guidance)

10/06/15   @danielbryantuk