Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5...

28

Transcript of Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5...

Page 1: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall
Page 2: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

MicroservicesDmitry Gritskevich

License engineer at Oodrive

Page 3: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

Why?What?How?

Page 4: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

Lasagna-OrientedArchitecture

(Layered Monolith)

Spaghetti-OrientedArchitecture

(Copy&Pasta)

Ravioli-OrientedArchitecture

(Microservices)

Page 5: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

Why?

Page 6: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

Hardware Lead TimeO

rder

lead

tim

e

1980 1988 1996 2004 2012 2020

Data Center Virtual Machines Cloud Docker

6 months

1 day

5 minutes

5 seconds

1 month

Page 7: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

Project Delivery CyclesPr

ojec

t dur

atio

n

1970 1980 1990 2000 2010 2020

Waterfall Agile Agile++

5 years

1 year

1 month

1 week

1 day

Page 8: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

Go faster!Time to market!

Docker

Agile

Cloud

Microservices

Speed / quality

Better, faster, cheaper

Scale up!Business expansion

Page 9: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

— http://martinfowler.com/articles/microservices.html

Microservices

Page 10: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

What?

Page 11: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

Microservice architectural style is…

a suite of small services…

“Two pizzas teams”— Jeff Bezos, Amazon

The service can be rewritten and redeployed in 2 weeks

— Jon Eaves, realestate.com.au

Page 12: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

Microservice architectural style is…

loosely coupled…

vs

Page 13: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

Microservice architectural style is…

running in its own process…

Monolith Microservice

Page 14: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

Microservice architectural style is…

independently deployable…

Monolith Microservice

Page 15: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

Microservice architectural style is…

a bare minimum of centralized management

Page 16: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

How?

Page 17: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

— http://martinfowler.com/articles/microservices.html

UI

Serv

DB

Any organization that designs a system will produce a design whose structure is a copy of the organization’s communication structure.

— Conway’s law

Page 18: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

— http://martinfowler.com/articles/microservices.html

— Conway’s law

Any organization that designs a system will produce a design whose structure is a copy of the organization’s communication structure.

Page 19: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

— http://martinfowler.com/bliki/MonolithFirst.html

Monolith First

Page 20: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

Orchestration

Page 21: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

Choreography

© Jaye Rhee

Page 22: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

— Voltaire, Spider-Man

“With Great Power Comes Great Responsibility.”

Page 23: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

Design for Failure

99,9%100

= 90,5%

Page 24: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

Design for Failure

Page 25: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

Monitoring

Page 26: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

• Infrastructure Automation

• Automated Testing

• Continuous Delivery

“With Great Power Comes Great Responsibility.”

Page 27: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

Sam NewmanBuilding Microservices

Page 28: Microservices - Oodrive · Data Center Virtual Machines Cloud Docker 6 months 1 day 5 minutes 5 seconds 1 month. Project Delivery Cycles n 1970 1980 1990 2000 2010 2020 Waterfall

Thank you