Upload
odimulescu
View
128
Download
2
Tags:
Embed Size (px)
Citation preview
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