microservices - yet another buzzword

Post on 20-Jul-2015

128 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Microservices - Yet another buzzword Orlando Code Camp 2015

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

The opinions and views expressed in this talk are my own and do not necessarily reflect the opinions or views of my employer

3

Why bother

httpcommonswikimediaorgwikiFileBeer_growlerjpg

httpmicroxchgio2015indexhtml

~1 out 5 sessions on Microservices directly or indirectly

httpsskillsmattercomconferences6312-mucon

9 Wikimedia

httpcommonswikimediaorgwikiFileWindows_Phone_8_Startscreenpng

httpcommonswikimediaorgwikiFileIPhone_5C_PSDpng

11

Monolith AppPM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore)

12

Monolith App

UI

Data Access

Business Domain

13

Monolith App

UI

Data Access

Business Domain

Comp I Comp II

14

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

httpcommonswikimediaorgwikiFileInkscape_icons_dialog_layerssvg

15

Does the code reflect the architecture

16

httpcommonswikimediaorgwikiFileComponent-cablesjpg

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

17

APPUI

Data Access

Bussines Domain

hellip

APPUI

Data Access

Bussines Domain

APPUI

Data Access

Bussines Domain

Scalability model

18

ESBWS-SOAPXML

Svc I Svc II Svc N

PM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore )

hellip

19

(Not so) Old world

Layers oriented

Scaling per app instead of per component

Process oriented friction prone

Single language

Single datastore

20 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

21 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

The opinions and views expressed in this talk are my own and do not necessarily reflect the opinions or views of my employer

3

Why bother

httpcommonswikimediaorgwikiFileBeer_growlerjpg

httpmicroxchgio2015indexhtml

~1 out 5 sessions on Microservices directly or indirectly

httpsskillsmattercomconferences6312-mucon

9 Wikimedia

httpcommonswikimediaorgwikiFileWindows_Phone_8_Startscreenpng

httpcommonswikimediaorgwikiFileIPhone_5C_PSDpng

11

Monolith AppPM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore)

12

Monolith App

UI

Data Access

Business Domain

13

Monolith App

UI

Data Access

Business Domain

Comp I Comp II

14

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

httpcommonswikimediaorgwikiFileInkscape_icons_dialog_layerssvg

15

Does the code reflect the architecture

16

httpcommonswikimediaorgwikiFileComponent-cablesjpg

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

17

APPUI

Data Access

Bussines Domain

hellip

APPUI

Data Access

Bussines Domain

APPUI

Data Access

Bussines Domain

Scalability model

18

ESBWS-SOAPXML

Svc I Svc II Svc N

PM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore )

hellip

19

(Not so) Old world

Layers oriented

Scaling per app instead of per component

Process oriented friction prone

Single language

Single datastore

20 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

21 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

3

Why bother

httpcommonswikimediaorgwikiFileBeer_growlerjpg

httpmicroxchgio2015indexhtml

~1 out 5 sessions on Microservices directly or indirectly

httpsskillsmattercomconferences6312-mucon

9 Wikimedia

httpcommonswikimediaorgwikiFileWindows_Phone_8_Startscreenpng

httpcommonswikimediaorgwikiFileIPhone_5C_PSDpng

11

Monolith AppPM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore)

12

Monolith App

UI

Data Access

Business Domain

13

Monolith App

UI

Data Access

Business Domain

Comp I Comp II

14

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

httpcommonswikimediaorgwikiFileInkscape_icons_dialog_layerssvg

15

Does the code reflect the architecture

16

httpcommonswikimediaorgwikiFileComponent-cablesjpg

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

17

APPUI

Data Access

Bussines Domain

hellip

APPUI

Data Access

Bussines Domain

APPUI

Data Access

Bussines Domain

Scalability model

18

ESBWS-SOAPXML

Svc I Svc II Svc N

PM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore )

hellip

19

(Not so) Old world

Layers oriented

Scaling per app instead of per component

Process oriented friction prone

Single language

Single datastore

20 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

21 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

httpcommonswikimediaorgwikiFileBeer_growlerjpg

httpmicroxchgio2015indexhtml

~1 out 5 sessions on Microservices directly or indirectly

httpsskillsmattercomconferences6312-mucon

9 Wikimedia

httpcommonswikimediaorgwikiFileWindows_Phone_8_Startscreenpng

httpcommonswikimediaorgwikiFileIPhone_5C_PSDpng

11

Monolith AppPM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore)

12

Monolith App

UI

Data Access

Business Domain

13

Monolith App

UI

Data Access

Business Domain

Comp I Comp II

14

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

httpcommonswikimediaorgwikiFileInkscape_icons_dialog_layerssvg

15

Does the code reflect the architecture

16

httpcommonswikimediaorgwikiFileComponent-cablesjpg

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

17

APPUI

Data Access

Bussines Domain

hellip

APPUI

Data Access

Bussines Domain

APPUI

Data Access

Bussines Domain

Scalability model

18

ESBWS-SOAPXML

Svc I Svc II Svc N

PM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore )

hellip

19

(Not so) Old world

Layers oriented

Scaling per app instead of per component

Process oriented friction prone

Single language

Single datastore

20 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

21 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

httpmicroxchgio2015indexhtml

~1 out 5 sessions on Microservices directly or indirectly

httpsskillsmattercomconferences6312-mucon

9 Wikimedia

httpcommonswikimediaorgwikiFileWindows_Phone_8_Startscreenpng

httpcommonswikimediaorgwikiFileIPhone_5C_PSDpng

11

Monolith AppPM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore)

12

Monolith App

UI

Data Access

Business Domain

13

Monolith App

UI

Data Access

Business Domain

Comp I Comp II

14

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

httpcommonswikimediaorgwikiFileInkscape_icons_dialog_layerssvg

15

Does the code reflect the architecture

16

httpcommonswikimediaorgwikiFileComponent-cablesjpg

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

17

APPUI

Data Access

Bussines Domain

hellip

APPUI

Data Access

Bussines Domain

APPUI

Data Access

Bussines Domain

Scalability model

18

ESBWS-SOAPXML

Svc I Svc II Svc N

PM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore )

hellip

19

(Not so) Old world

Layers oriented

Scaling per app instead of per component

Process oriented friction prone

Single language

Single datastore

20 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

21 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

~1 out 5 sessions on Microservices directly or indirectly

httpsskillsmattercomconferences6312-mucon

9 Wikimedia

httpcommonswikimediaorgwikiFileWindows_Phone_8_Startscreenpng

httpcommonswikimediaorgwikiFileIPhone_5C_PSDpng

11

Monolith AppPM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore)

12

Monolith App

UI

Data Access

Business Domain

13

Monolith App

UI

Data Access

Business Domain

Comp I Comp II

14

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

httpcommonswikimediaorgwikiFileInkscape_icons_dialog_layerssvg

15

Does the code reflect the architecture

16

httpcommonswikimediaorgwikiFileComponent-cablesjpg

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

17

APPUI

Data Access

Bussines Domain

hellip

APPUI

Data Access

Bussines Domain

APPUI

Data Access

Bussines Domain

Scalability model

18

ESBWS-SOAPXML

Svc I Svc II Svc N

PM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore )

hellip

19

(Not so) Old world

Layers oriented

Scaling per app instead of per component

Process oriented friction prone

Single language

Single datastore

20 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

21 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

httpsskillsmattercomconferences6312-mucon

9 Wikimedia

httpcommonswikimediaorgwikiFileWindows_Phone_8_Startscreenpng

httpcommonswikimediaorgwikiFileIPhone_5C_PSDpng

11

Monolith AppPM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore)

12

Monolith App

UI

Data Access

Business Domain

13

Monolith App

UI

Data Access

Business Domain

Comp I Comp II

14

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

httpcommonswikimediaorgwikiFileInkscape_icons_dialog_layerssvg

15

Does the code reflect the architecture

16

httpcommonswikimediaorgwikiFileComponent-cablesjpg

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

17

APPUI

Data Access

Bussines Domain

hellip

APPUI

Data Access

Bussines Domain

APPUI

Data Access

Bussines Domain

Scalability model

18

ESBWS-SOAPXML

Svc I Svc II Svc N

PM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore )

hellip

19

(Not so) Old world

Layers oriented

Scaling per app instead of per component

Process oriented friction prone

Single language

Single datastore

20 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

21 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

9 Wikimedia

httpcommonswikimediaorgwikiFileWindows_Phone_8_Startscreenpng

httpcommonswikimediaorgwikiFileIPhone_5C_PSDpng

11

Monolith AppPM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore)

12

Monolith App

UI

Data Access

Business Domain

13

Monolith App

UI

Data Access

Business Domain

Comp I Comp II

14

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

httpcommonswikimediaorgwikiFileInkscape_icons_dialog_layerssvg

15

Does the code reflect the architecture

16

httpcommonswikimediaorgwikiFileComponent-cablesjpg

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

17

APPUI

Data Access

Bussines Domain

hellip

APPUI

Data Access

Bussines Domain

APPUI

Data Access

Bussines Domain

Scalability model

18

ESBWS-SOAPXML

Svc I Svc II Svc N

PM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore )

hellip

19

(Not so) Old world

Layers oriented

Scaling per app instead of per component

Process oriented friction prone

Single language

Single datastore

20 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

21 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

httpcommonswikimediaorgwikiFileWindows_Phone_8_Startscreenpng

httpcommonswikimediaorgwikiFileIPhone_5C_PSDpng

11

Monolith AppPM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore)

12

Monolith App

UI

Data Access

Business Domain

13

Monolith App

UI

Data Access

Business Domain

Comp I Comp II

14

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

httpcommonswikimediaorgwikiFileInkscape_icons_dialog_layerssvg

15

Does the code reflect the architecture

16

httpcommonswikimediaorgwikiFileComponent-cablesjpg

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

17

APPUI

Data Access

Bussines Domain

hellip

APPUI

Data Access

Bussines Domain

APPUI

Data Access

Bussines Domain

Scalability model

18

ESBWS-SOAPXML

Svc I Svc II Svc N

PM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore )

hellip

19

(Not so) Old world

Layers oriented

Scaling per app instead of per component

Process oriented friction prone

Single language

Single datastore

20 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

21 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

11

Monolith AppPM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore)

12

Monolith App

UI

Data Access

Business Domain

13

Monolith App

UI

Data Access

Business Domain

Comp I Comp II

14

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

httpcommonswikimediaorgwikiFileInkscape_icons_dialog_layerssvg

15

Does the code reflect the architecture

16

httpcommonswikimediaorgwikiFileComponent-cablesjpg

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

17

APPUI

Data Access

Bussines Domain

hellip

APPUI

Data Access

Bussines Domain

APPUI

Data Access

Bussines Domain

Scalability model

18

ESBWS-SOAPXML

Svc I Svc II Svc N

PM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore )

hellip

19

(Not so) Old world

Layers oriented

Scaling per app instead of per component

Process oriented friction prone

Single language

Single datastore

20 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

21 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

12

Monolith App

UI

Data Access

Business Domain

13

Monolith App

UI

Data Access

Business Domain

Comp I Comp II

14

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

httpcommonswikimediaorgwikiFileInkscape_icons_dialog_layerssvg

15

Does the code reflect the architecture

16

httpcommonswikimediaorgwikiFileComponent-cablesjpg

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

17

APPUI

Data Access

Bussines Domain

hellip

APPUI

Data Access

Bussines Domain

APPUI

Data Access

Bussines Domain

Scalability model

18

ESBWS-SOAPXML

Svc I Svc II Svc N

PM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore )

hellip

19

(Not so) Old world

Layers oriented

Scaling per app instead of per component

Process oriented friction prone

Single language

Single datastore

20 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

21 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

13

Monolith App

UI

Data Access

Business Domain

Comp I Comp II

14

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

httpcommonswikimediaorgwikiFileInkscape_icons_dialog_layerssvg

15

Does the code reflect the architecture

16

httpcommonswikimediaorgwikiFileComponent-cablesjpg

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

17

APPUI

Data Access

Bussines Domain

hellip

APPUI

Data Access

Bussines Domain

APPUI

Data Access

Bussines Domain

Scalability model

18

ESBWS-SOAPXML

Svc I Svc II Svc N

PM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore )

hellip

19

(Not so) Old world

Layers oriented

Scaling per app instead of per component

Process oriented friction prone

Single language

Single datastore

20 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

21 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

14

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

httpcommonswikimediaorgwikiFileInkscape_icons_dialog_layerssvg

15

Does the code reflect the architecture

16

httpcommonswikimediaorgwikiFileComponent-cablesjpg

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

17

APPUI

Data Access

Bussines Domain

hellip

APPUI

Data Access

Bussines Domain

APPUI

Data Access

Bussines Domain

Scalability model

18

ESBWS-SOAPXML

Svc I Svc II Svc N

PM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore )

hellip

19

(Not so) Old world

Layers oriented

Scaling per app instead of per component

Process oriented friction prone

Single language

Single datastore

20 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

21 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

15

Does the code reflect the architecture

16

httpcommonswikimediaorgwikiFileComponent-cablesjpg

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

17

APPUI

Data Access

Bussines Domain

hellip

APPUI

Data Access

Bussines Domain

APPUI

Data Access

Bussines Domain

Scalability model

18

ESBWS-SOAPXML

Svc I Svc II Svc N

PM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore )

hellip

19

(Not so) Old world

Layers oriented

Scaling per app instead of per component

Process oriented friction prone

Single language

Single datastore

20 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

21 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

16

httpcommonswikimediaorgwikiFileComponent-cablesjpg

httpcommonswikimediaorgwikiFileGnome-emblem-packagesvg

17

APPUI

Data Access

Bussines Domain

hellip

APPUI

Data Access

Bussines Domain

APPUI

Data Access

Bussines Domain

Scalability model

18

ESBWS-SOAPXML

Svc I Svc II Svc N

PM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore )

hellip

19

(Not so) Old world

Layers oriented

Scaling per app instead of per component

Process oriented friction prone

Single language

Single datastore

20 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

21 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

17

APPUI

Data Access

Bussines Domain

hellip

APPUI

Data Access

Bussines Domain

APPUI

Data Access

Bussines Domain

Scalability model

18

ESBWS-SOAPXML

Svc I Svc II Svc N

PM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore )

hellip

19

(Not so) Old world

Layers oriented

Scaling per app instead of per component

Process oriented friction prone

Single language

Single datastore

20 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

21 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

18

ESBWS-SOAPXML

Svc I Svc II Svc N

PM

QA

DEV

DBA

SA

NetEng

ldquoOn Premiserdquo

No SQL (single datastore )

hellip

19

(Not so) Old world

Layers oriented

Scaling per app instead of per component

Process oriented friction prone

Single language

Single datastore

20 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

21 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

19

(Not so) Old world

Layers oriented

Scaling per app instead of per component

Process oriented friction prone

Single language

Single datastore

20 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

21 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

20 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

21 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

21 httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

22 httpcommonswikimediaorgwikiFileFour_continentspng

httpenwikipediaorgwikiUserShijauddinmediaFileI_am_a_Programmerpng

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

23

httpenwikipediaorgwikiConway27s_law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

Melvin Conway 1968

Conwayrsquos Law

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

24

$$$

httpcommonswikimediaorgwikiFileGlC3BChlampe_42W_230V_E27_Effi_Klasse_Cjpg

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

25

Web size

Team size

Team skills and geo distribution

Systems Architecture

Time to market

Scalabilities

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

26

Opportunities

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

27 httpcommonswikimediaorgwikiFileA_new_and_correct_map_of_the_world_laid_down_according_to_the_newest_discoveries_and_from_the_most_exact_observations_(8342680176)jpg

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

28

PaaS

APIs

DevOpsHTTP 20JSON

IaaS

aaS

SQL + NoSQL (new datastores)

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

29

Self - serve

Convenience oriented low friction

Polyglot language and persistence

Fast amp affordable experimentation

Uniform amp disposable environments

New world

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

30

Old world - Good Parts

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

31

UNIX Philosophy

Write programs that do one thing and do it well

Write programs to work together

Write programs to handle text streams because that is a

universal interface

Doug McIlroy

httpenwikipediaorgwikiUnix_philosophy

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

32

Initial Stands for(acronym) Concept

S SRP [4] Single responsibility principle a class should have only a single responsibility (ie only one potential change in the softwares specification should be able to affect the specification of the class)

O OCP [5] Openclosed principle ldquosoftware entities hellip should be open for extension but closed for modificationrdquo

L LSP [6] Liskov substitution principle ldquoobjects in a program should be replaceable with instances of their subtypes without altering the correctness of that programrdquo See also design by contract

I ISP [7] Interface segregation principle ldquomany client-specific interfaces are better than one general-purpose interfacerdquo[8]

D DIP [9] Dependency inversion principle one should ldquoDepend upon Abstractions Do not depend upon concretionsrdquo[8]

httpenwikipediaorgwikiSOLID_28object-oriented_design29

SOLID (OOP)

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

33

Discrete services that lsquodo one thing and do it wellrsquo

Microservices

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

34

SOA

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

35

Microservices

Micro is about scope not size

Independently deployable (group level)

Lightweight communication

Single process (lightweight containers)

Smart endpoints dumb pipes

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

36

Right tool for a job

Different code changing speeds

Organizational splits

Multiple scaling profiles

Multiple security zones

Cross functionality

Microservices - Pros

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

37

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

38

Splitting Merging Defining boundaries

Micro frameworks containers availability amp reliability

Wiring complexity

Configuration Management

Testing Deployment Monitoring

Data Management (MDM Eventual Consistency)

Cognitive complexity

Org structure and culture

Microservices - Challenges

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

39

Conwayrsquos Law

Adrian Cockcroft (Battery Ventures ex-Netflix) suggested that instead of designing software that copies our current organizational structure figure out how we want our software to look then (re) design the organization so it copies the software

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

40

Jeff Bezos CEO Amazon

httpcommonswikimediaorgwikiFilePepperoni_pizza_(2)png

Two Pizza Rule

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

41 httpapievangelistcom20120112the-secret-to-amazons-success-internal-apis

1) All teams will henceforth expose their data and functionality through service interfaces

2) Teams must communicate with each other through these interfaces

3) There will be no other form of interprocess communication allowed no direct linking no direct reads of another teamrsquos data store no shared-memory model no back-doors whatsoever The only communication allowed is via service interface calls over the network

4) It doesnrsquot matter what technology they use HTTP Corba Pubsub custom protocols mdash doesnrsquot matter Bezos doesnrsquot care

5) All service interfaces without exception must be designed from the ground up to be externalizable That is to say the team must plan and design to be able to expose the interface to developers in the outside world No exceptions

6) Anyone who doesnrsquot do this will be fired

Jeff Bezos CEO Amazon - Big Mandate

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

42

ldquoYou build it you run itrdquoWerner Vogels CTO Amazon

ACM Queue interview 2006 httpsqueueacmorgdetailcfmid=1142065

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

Native

Boot2Docker

Supported Platforms

Boot2Docker

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

Ecosystem

Many more hellip

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

Startup speed

Resource density

Layered file system with changes tracking

Hierarchical images with registry hub

Portable

Single process

Features

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

The Twelve-Factor App - www12factornet

coding the architecture - wwwcodingthearchitecturecom

Pass for Microservices - gilliamgithubio

Martin Fowler - martinfowlercomarticlesmicroserviceshtml

Chris Richardson - microservicesiopatternsmicroserviceshtml

High Scalability - highscalabilitycomblog201448microservices-not-a-free-lunchhtml

The Arm Blog - the-armcom20130930microservices-and-solid-principles-of-object-oriented-design

Dare to dream blog - davidmorgantiniblogspotcom201308micro-services-introductionhtml

Charles Young Blog - geekswithblogsnetcyoungarchive20141220hexagonal-architecturendashthe-great-reconcileraspx

Docker Website - dockercom

Google Search Engine - last but not least )

Resources

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

Questions

Ovidiu Dimulescu

odimulescu

wwwodimulescucom

top related