SlideShare a Scribd company logo
1 of 49
Download to read offline
Microservices - Yet another buzzword?
Orlando Code Camp, 2015
Ovidiu Dimulescu
@odimulescu
www.odimulescu.com
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?
* http://commons.wikimedia.org/wiki/File:Beer_growler.jpg
* http://microxchg.io/2015/index.html
~1 out 5 sessions on Microservices directly or indirectly
* https://skillsmatter.com/conferences/6312-mucon
9
* Wikimedia
* http://commons.wikimedia.org/wiki/File:Windows_Phone_8_Startscreen.png
* http://commons.wikimedia.org/wiki/File:IPhone_5C_PSD.png
11
Monolith App
PM
QA
DEV
DBA
SA
NetEng
“On Premise”
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
* http://commons.wikimedia.org/wiki/File:Gnome-emblem-package.svg
* http://commons.wikimedia.org/wiki/File:Inkscape_icons_dialog_layers.svg
15
Does the code reflect the architecture?
16
?
* http://commons.wikimedia.org/wiki/File:Component-cables.jpg
* http://commons.wikimedia.org/wiki/File:Gnome-emblem-package.svg
17
APP
UI
Data Access
Bussines Domain
…
APP
UI
Data Access
Bussines Domain
APP
UI
Data Access
Bussines Domain
Scalability model
18
ESB
WS-*
SOAP
XML
Svc I Svc II Svc N
PM
QA
DEV
DBA
SA
NetEng
“On Premise”
No / SQL (single datastore *)
…
19
(Not so) Old world
Layers oriented
Scaling per app instead of per component
Process oriented / friction prone
Single language *
Single datastore *
20
* http://en.wikipedia.org/wiki/User:Shijauddin#/media/File:I_am_a_Programmer.png
21
* http://en.wikipedia.org/wiki/User:Shijauddin#/media/File:I_am_a_Programmer.png
22* http://commons.wikimedia.org/wiki/File:Four_continents.png
* http://en.wikipedia.org/wiki/User:Shijauddin#/media/File:I_am_a_Programmer.png
23
* http://en.wikipedia.org/wiki/Conway%27s_law
Organizations which design systems ... are constrained to
produce designs which are copies of the communication
structures of these organizations
Melvin Conway, 1968
Conway’s Law
24
$$$
* http://commons.wikimedia.org/wiki/File:Gl%C3%BChlampe_42W_230V_E27_Effi_Klasse_C.jpg
25
Web size
Team size
Team skills and geo distribution
Systems Architecture
Time to market
Scalabilities
26
Opportunities ?
27
* http://commons.wikimedia.org/wiki/File:A_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
DevOps
HTTP 2.0
JSON
IaaS
*aaS
SQL + NoSQL (new datastores)
29
Self - serve
Convenience oriented / low friction
Polyglot language and persistence
Fast & affordable experimentation
Uniform & 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
* http://en.wikipedia.org/wiki/Unix_philosophy
32
Initial
Stands for
(acronym)
Concept
S SRP [4]
Single responsibility principle a class should have only a single responsibility (i.e. only one potential change in the
software's specification should be able to affect the specification of the class)
O OCP [5] Open/closed principle “software entities … should be open for extension, but closed for modification.”
L LSP [6]
Liskov substitution principle “objects in a program should be replaceable with instances of their subtypes without
altering the correctness of that program.” See also design by contract.
I ISP [7] Interface segregation principle “many client-specific interfaces are better than one general-purpose interface.”[8]
D DIP [9] Dependency inversion principle one should “Depend upon Abstractions. Do not depend upon concretions.”[8]
* http://en.wikipedia.org/wiki/SOLID_%28object-oriented_design%29
SOLID (OOP)
33
Discrete services that ‘do one thing and do it well’.
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 & reliability
Wiring complexity
Configuration Management
Testing / Deployment / Monitoring
Data Management (MDM, Eventual Consistency)
Cognitive complexity
Org structure and culture
Microservices - Challenges
39
Conway’s Law
Adrian Cockcroft (BatteryVentures, 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
* http://commons.wikimedia.org/wiki/File:Pepperoni_pizza_(2).png
Two Pizza Rule
41
* http://apievangelist.com/2012/01/12/the-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 team’s data store, no shared-
memory model, no back-doors whatsoever.The only communication
allowed is via service interface calls over the network.
4) It doesn’t matter what technology they use. HTTP, Corba, Pubsub,
custom protocols — doesn’t matter. Bezos doesn’t 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 doesn’t do this will be fired.
Jeff Bezos, CEO,Amazon - Big Mandate
42
“You build it, you run it”
WernerVogels, CTO, Amazon
* ACM Queue interview, 2006. https://queue.acm.org/detail.cfm?id=1142065
Native
Boot2Docker
Supported Platforms*
Boot2Docker
Ecosystem
Many more …
Startup speed
Resource density
Layered file system with changes tracking
Hierarchical images with registry hub
Portable
Single process*
Features
The Twelve-Factor App - www.12factor.net
coding {the} architecture - www.codingthearchitecture.com
Pass for Microservices - gilliam.github.io
Martin Fowler - martinfowler.com/articles/microservices.html
Chris Richardson - microservices.io/patterns/microservices.html
High Scalability - highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html
The Arm Blog - the-arm.com/2013/09/30/microservices-and-solid-principles-of-object-oriented-design/
Dare to dream blog - davidmorgantini.blogspot.com/2013/08/micro-services-introduction.html
CharlesYoung Blog - geekswithblogs.net/cyoung/archive/2014/12/20/hexagonal-architecturendashthe-great-reconciler.aspx
Docker Website- docker.com
Google Search Engine - last but not least :)
Resources
Questions ?
Ovidiu Dimulescu
@odimulescu
www.odimulescu.com

More Related Content

Similar to Microservices - Yet another buzzword

Cara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
Cara Tepat Menjadi iOS Developer Expert - Gilang RamadhanCara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
Cara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
DicodingEvent
 
A unified dashboard for collaborative robot management system
A unified dashboard for collaborative robot management systemA unified dashboard for collaborative robot management system
A unified dashboard for collaborative robot management system
Conference Papers
 

Similar to Microservices - Yet another buzzword (20)

[WSO2Con EU 2018] Enabling Agile Integration Teams
[WSO2Con EU 2018] Enabling Agile Integration Teams[WSO2Con EU 2018] Enabling Agile Integration Teams
[WSO2Con EU 2018] Enabling Agile Integration Teams
 
FEVR - Micro Frontend
FEVR - Micro FrontendFEVR - Micro Frontend
FEVR - Micro Frontend
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - Plansoft
 
Git & dev ops come together, right now!
Git & dev ops come together, right now!Git & dev ops come together, right now!
Git & dev ops come together, right now!
 
"The working architecture of NodeJs applications" Viktor Turskyi
"The working architecture of NodeJs applications" Viktor Turskyi"The working architecture of NodeJs applications" Viktor Turskyi
"The working architecture of NodeJs applications" Viktor Turskyi
 
Clone Clone Make: a better way to build
Clone Clone Make: a better way to buildClone Clone Make: a better way to build
Clone Clone Make: a better way to build
 
Cara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
Cara Tepat Menjadi iOS Developer Expert - Gilang RamadhanCara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
Cara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
 
Micro services vs Monolith Architecture
Micro services vs Monolith ArchitectureMicro services vs Monolith Architecture
Micro services vs Monolith Architecture
 
DevOps in Cloud OSLC Integration
DevOps in Cloud OSLC IntegrationDevOps in Cloud OSLC Integration
DevOps in Cloud OSLC Integration
 
Microservices
MicroservicesMicroservices
Microservices
 
A unified dashboard for collaborative robot management system
A unified dashboard for collaborative robot management systemA unified dashboard for collaborative robot management system
A unified dashboard for collaborative robot management system
 
Containerize, PaaS, or Go Serverless!?
Containerize, PaaS, or Go Serverless!?Containerize, PaaS, or Go Serverless!?
Containerize, PaaS, or Go Serverless!?
 
Beware the monolith
Beware the monolithBeware the monolith
Beware the monolith
 
openMDM5: From a fat client to a scalable, omni-channel architecture
openMDM5: From a fat client to a scalable, omni-channel architectureopenMDM5: From a fat client to a scalable, omni-channel architecture
openMDM5: From a fat client to a scalable, omni-channel architecture
 
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
 
Let's talk about... Microservices
Let's talk about... MicroservicesLet's talk about... Microservices
Let's talk about... Microservices
 
设计开发实效 Web2.0 应用程序
设计开发实效 Web2.0 应用程序设计开发实效 Web2.0 应用程序
设计开发实效 Web2.0 应用程序
 
Micro-Frontends JSVidCon
Micro-Frontends JSVidConMicro-Frontends JSVidCon
Micro-Frontends JSVidCon
 
Refreshing Domain Driven Design
Refreshing Domain Driven DesignRefreshing Domain Driven Design
Refreshing Domain Driven Design
 
Transforming to Microservices
Transforming to MicroservicesTransforming to Microservices
Transforming to Microservices
 

More from Ovidiu Dimulescu

Node.js, toy or power tool?
Node.js, toy or power tool?Node.js, toy or power tool?
Node.js, toy or power tool?
Ovidiu Dimulescu
 

More from Ovidiu Dimulescu (11)

Threads Needles Stacks Heaps - Java edition
Threads Needles Stacks Heaps - Java editionThreads Needles Stacks Heaps - Java edition
Threads Needles Stacks Heaps - Java edition
 
Journeyman to Master
Journeyman to MasterJourneyman to Master
Journeyman to Master
 
The Rise of DevOps
The Rise of DevOpsThe Rise of DevOps
The Rise of DevOps
 
Hadoop on Azure, Blue elephants
Hadoop on Azure,  Blue elephantsHadoop on Azure,  Blue elephants
Hadoop on Azure, Blue elephants
 
Git for Windows
Git for WindowsGit for Windows
Git for Windows
 
Hadoop, Taming Elephants
Hadoop, Taming ElephantsHadoop, Taming Elephants
Hadoop, Taming Elephants
 
Node.js, toy or power tool?
Node.js, toy or power tool?Node.js, toy or power tool?
Node.js, toy or power tool?
 
HTML5, are we there yet?
HTML5, are we there yet?HTML5, are we there yet?
HTML5, are we there yet?
 
Introduction to Hadoop
Introduction to HadoopIntroduction to Hadoop
Introduction to Hadoop
 
Git SVN Migrate Reasons
Git SVN Migrate ReasonsGit SVN Migrate Reasons
Git SVN Migrate Reasons
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 

Recently uploaded

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

Microservices - Yet another buzzword