SlideShare a Scribd company logo
1 of 24
Download to read offline
Things I wish I'd known before I started
with Microservices
1
GOTO Amsterdam - June 18, 2015
Who are we?
2
Steve Judd - Lead Consultant
Tareq Abedrabbo - CTO
OpenCredo - an Open Source software consultancy
Things I wish I'd known before I started with
Microservices
What?
Why?
How?
3
Agenda
What’s the story morning glory?
4
“Gotta have a definition, right?”
• It is an architecture choice, not a design pattern
• Independently deployable software components
(services)
• Stateless, loosely coupled, resilient
• Communicate via explicit, published APIs
• Each service fulfils a single business capability
• Automated testing and deployment is essential
5
WHAT
So, what’s the big deal?
6
Go on, convince me….
• Encourages:
★ loose-coupling
★ separation of concerns
★ single responsibility principle
★ domain-driven design
• Good fit with Agile development practices
• Well-suited to a containerised infrastructure
7
WHY
8
And are Microservices really the new black?
Monoliths: friend or foe?
9
Monoliths
• Familiar & well-
understood
• Easy to develop, build &
deploy
• Consequences of
changing domain design
are localised
• Limited scaling choices
• Long-term commitment to
tech stack (technology
lock-in)
Microservices
• Flexible scaling options
• Enables independence in
development and
deployment
• Reduces technology lock-in
• Better fault tolerance
• Build/deploy/execution
infrastructure is complex
(automation a must)
• Getting the domain (service)
boundaries right can be
difficult
WHY
10
Monoliths
• Familiar & well-
understood
• Easy to develop, build &
deploy
• Consequences of
changing domain design
are localised
• Limited scaling choices
• Long-term commitment to
tech stack (technology
lock-in)
Microservices
• Flexible scaling options
• Enables independence in
development and
deployment
• Reduces technology lock-in
• Better fault tolerance
• Build/deploy/execution
infrastructure is complex
(automation a must)
• Getting the domain (service)
boundaries right can be
difficult
WHY
11
Monoliths
• Familiar & well-
understood
• Easy to develop, build &
deploy
• Consequences of
changing domain design
are localised
• Limited scaling choices
• Long-term commitment to
tech stack (technology
lock-in)
Microservices
• Flexible scaling options
• Enables independence in
development and
deployment
• Reduces technology lock-in
• Better fault tolerance
• Build/deploy/execution
infrastructure is complex
(automation a must)
• Getting the domain (service)
boundaries right can be
difficult
WHY
The importance of contracts
12
“Until the contract is agreed, nothing is real”
• Design your API contracts first
• Communicate them well
• Use tools to document them, e.g
• apidocjs (http://apidocjs.com/)

• swagger (http://swagger.io)

• spring-restdocs (https://github.com/spring-projects/spring-restdocs)

• Be mindful of the impact of changing an API
13
HOW
• If you don’t specify your contract, you end up with an
implicit one anyway
• Use the power of resources (HTTP and REST)
• Location
• Uniform interface
• Status codes
• Representations
14
HOW
Does size matter?
15
Provide as many APIs and Services as you need but no more
• Size - what really matters is quality not quantity
• Services should be decoupled conceptually so that
they can evolve independently
• Services should be decoupled technically so that they
can be managed independently
• What do I do, practically?
• Co-locate services, but avoid implicit dependancies
though shared common objects
• Separate services but avoid sharing (domain) libraries
16
HOW
• Don’t stress about how many APIs or Services
• Do stress about designing an appropriate domain models
for your services
• Don’t separate your services based on technical
boundaries
• Do separate your services based on self-contained
functions
17
HOW
Separating the men from the boys
18
What does a good microservice look like?
• Logging & monitoring
✤ Centralised collection
✤ Many more moving parts
• How the services are managed
• External configuration
• Handling failure
• Inter-process communication
✤ Message serialisation/deserialisation
✤ Network overhead
19
HOW
And finally….
20
1. Specify your contracts first AND communicate them
2. Design for scale: infrastructure, processes, services
3. You’ll need to pay the Distributed Service Tax
4. Everything is a Service (aka eat your own dogfood)
5. Invest in tooling and automation
21
Final takeaways
Thank you, any questions?
http://www.opencredo.com/blog
@OpenCredo
@cyberbliss
@tareq_abedrabbo
Environmental concerns
23
“Infrastructure is much more important than
architecture”
• Allowing more than one service direct access to the same
database
• Delaying or ignoring the introduction of good DevOps
practices
• Infrastructure management of instances and containers is
a challenge
• Performance
24
HOW

More Related Content

Viewers also liked

Windows 8.1 Update 1 Build Document - Replace Scenario
Windows 8.1 Update 1 Build Document - Replace ScenarioWindows 8.1 Update 1 Build Document - Replace Scenario
Windows 8.1 Update 1 Build Document - Replace ScenarioJacques van Rensburg
 
Windows 8.1 Update 1 Build Document - Refresh Scenario
Windows 8.1 Update 1 Build Document - Refresh ScenarioWindows 8.1 Update 1 Build Document - Refresh Scenario
Windows 8.1 Update 1 Build Document - Refresh ScenarioJacques van Rensburg
 
Things I wish I'd known before I started with Microservices - Software Circus...
Things I wish I'd known before I started with Microservices - Software Circus...Things I wish I'd known before I started with Microservices - Software Circus...
Things I wish I'd known before I started with Microservices - Software Circus...Steve Judd
 
Windows 8.1 Update 1 Build Document - New Computer Scenario
Windows 8.1 Update 1 Build Document - New Computer ScenarioWindows 8.1 Update 1 Build Document - New Computer Scenario
Windows 8.1 Update 1 Build Document - New Computer ScenarioJacques van Rensburg
 
共好讀書會|師父 The Knack:手寫計畫書
共好讀書會|師父 The Knack:手寫計畫書共好讀書會|師父 The Knack:手寫計畫書
共好讀書會|師父 The Knack:手寫計畫書Carrie Davalos
 
共好讀書會|團隊,從傳球開始:成功金字塔
共好讀書會|團隊,從傳球開始:成功金字塔共好讀書會|團隊,從傳球開始:成功金字塔
共好讀書會|團隊,從傳球開始:成功金字塔Carrie Davalos
 
共好讀書會 #10 狼學
共好讀書會 #10 狼學共好讀書會 #10 狼學
共好讀書會 #10 狼學Carrie Davalos
 
BEAUTIFUL SMILE = WONDERFUL ASSET
BEAUTIFUL SMILE = WONDERFUL ASSETBEAUTIFUL SMILE = WONDERFUL ASSET
BEAUTIFUL SMILE = WONDERFUL ASSETCarrie Davalos
 
Spectrum Community Investment Casebook May 2015lo-respages - LB
Spectrum Community Investment Casebook May 2015lo-respages - LBSpectrum Community Investment Casebook May 2015lo-respages - LB
Spectrum Community Investment Casebook May 2015lo-respages - LBSuzie Mundell
 
如何有感表達:情感連結的 5 個 P
如何有感表達:情感連結的 5 個 P如何有感表達:情感連結的 5 個 P
如何有感表達:情感連結的 5 個 PCarrie Davalos
 
Эврика - презентация о компании
Эврика - презентация о компанииЭврика - презентация о компании
Эврика - презентация о компанииАнтон Соловьёв
 
Aleem CV - Sales & Proposal coordinator
Aleem CV - Sales & Proposal coordinatorAleem CV - Sales & Proposal coordinator
Aleem CV - Sales & Proposal coordinatorMohammad Aleem
 
Zen and the Art of REST API documentation - MuCon London 2015
Zen and the Art of REST API documentation - MuCon London 2015Zen and the Art of REST API documentation - MuCon London 2015
Zen and the Art of REST API documentation - MuCon London 2015Steve Judd
 

Viewers also liked (14)

Windows 8.1 Update 1 Build Document - Replace Scenario
Windows 8.1 Update 1 Build Document - Replace ScenarioWindows 8.1 Update 1 Build Document - Replace Scenario
Windows 8.1 Update 1 Build Document - Replace Scenario
 
Windows 8.1 Update 1 Build Document - Refresh Scenario
Windows 8.1 Update 1 Build Document - Refresh ScenarioWindows 8.1 Update 1 Build Document - Refresh Scenario
Windows 8.1 Update 1 Build Document - Refresh Scenario
 
Things I wish I'd known before I started with Microservices - Software Circus...
Things I wish I'd known before I started with Microservices - Software Circus...Things I wish I'd known before I started with Microservices - Software Circus...
Things I wish I'd known before I started with Microservices - Software Circus...
 
Windows 8.1 Update 1 Build Document - New Computer Scenario
Windows 8.1 Update 1 Build Document - New Computer ScenarioWindows 8.1 Update 1 Build Document - New Computer Scenario
Windows 8.1 Update 1 Build Document - New Computer Scenario
 
共好讀書會|師父 The Knack:手寫計畫書
共好讀書會|師父 The Knack:手寫計畫書共好讀書會|師父 The Knack:手寫計畫書
共好讀書會|師父 The Knack:手寫計畫書
 
共好讀書會|團隊,從傳球開始:成功金字塔
共好讀書會|團隊,從傳球開始:成功金字塔共好讀書會|團隊,從傳球開始:成功金字塔
共好讀書會|團隊,從傳球開始:成功金字塔
 
共好讀書會 #10 狼學
共好讀書會 #10 狼學共好讀書會 #10 狼學
共好讀書會 #10 狼學
 
BEAUTIFUL SMILE = WONDERFUL ASSET
BEAUTIFUL SMILE = WONDERFUL ASSETBEAUTIFUL SMILE = WONDERFUL ASSET
BEAUTIFUL SMILE = WONDERFUL ASSET
 
Spectrum Community Investment Casebook May 2015lo-respages - LB
Spectrum Community Investment Casebook May 2015lo-respages - LBSpectrum Community Investment Casebook May 2015lo-respages - LB
Spectrum Community Investment Casebook May 2015lo-respages - LB
 
如何有感表達:情感連結的 5 個 P
如何有感表達:情感連結的 5 個 P如何有感表達:情感連結的 5 個 P
如何有感表達:情感連結的 5 個 P
 
Эврика - презентация о компании
Эврика - презентация о компанииЭврика - презентация о компании
Эврика - презентация о компании
 
Aleem CV - Sales & Proposal coordinator
Aleem CV - Sales & Proposal coordinatorAleem CV - Sales & Proposal coordinator
Aleem CV - Sales & Proposal coordinator
 
Proyecto cosmeticos
Proyecto cosmeticosProyecto cosmeticos
Proyecto cosmeticos
 
Zen and the Art of REST API documentation - MuCon London 2015
Zen and the Art of REST API documentation - MuCon London 2015Zen and the Art of REST API documentation - MuCon London 2015
Zen and the Art of REST API documentation - MuCon London 2015
 

Similar to Things I wish I'd known before I started with Microservices - GOTO Amsterdam 2015

#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?Tammy Bednar
 
Practical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdfPractical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdfAhmed Misbah
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes Abdul Basit Munda
 
Microservices - Scaling Development and Service
Microservices - Scaling Development and ServiceMicroservices - Scaling Development and Service
Microservices - Scaling Development and ServicePaulo Gaspar
 
What serverless means for enterprise apps
What serverless means for enterprise appsWhat serverless means for enterprise apps
What serverless means for enterprise appsSumit Sarkar
 
Microservices: Lessons from the Trenches
Microservices: Lessons from the TrenchesMicroservices: Lessons from the Trenches
Microservices: Lessons from the TrenchesGregory Beamer
 
cloud session uklug
cloud session uklugcloud session uklug
cloud session uklugdominion
 
The Changing Role of IT: From Service Managers to Advisors
The Changing Role of IT:From Service Managers to AdvisorsThe Changing Role of IT:From Service Managers to Advisors
The Changing Role of IT: From Service Managers to AdvisorsJesse Stockall
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?Eduard Tomàs
 
Serverless Toronto helps Startups
Serverless Toronto helps StartupsServerless Toronto helps Startups
Serverless Toronto helps StartupsDaniel Zivkovic
 
Agile enterprise integration
Agile enterprise integrationAgile enterprise integration
Agile enterprise integrationSimon Greig
 
Service-mesh options with Linkerd, Consul, Istio and AWS AppMesh
Service-mesh options with Linkerd, Consul, Istio and AWS AppMeshService-mesh options with Linkerd, Consul, Istio and AWS AppMesh
Service-mesh options with Linkerd, Consul, Istio and AWS AppMeshChristian Posta
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMiki Lombardi
 
Microservices
MicroservicesMicroservices
MicroservicesPT.JUG
 
Changing the Game with Cloud, Microservices, and DevOps
Changing the Game with Cloud, Microservices, and DevOps Changing the Game with Cloud, Microservices, and DevOps
Changing the Game with Cloud, Microservices, and DevOps Brian Chambers
 
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
Navigating the service mesh landscape with Istio, Consul Connect, and LinkerdNavigating the service mesh landscape with Istio, Consul Connect, and Linkerd
Navigating the service mesh landscape with Istio, Consul Connect, and LinkerdChristian Posta
 
Getting out of the monolith hell
Getting out of the monolith hellGetting out of the monolith hell
Getting out of the monolith hellmimmozzo_
 

Similar to Things I wish I'd known before I started with Microservices - GOTO Amsterdam 2015 (20)

#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?
 
Practical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdfPractical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdf
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes
 
Microservices - Scaling Development and Service
Microservices - Scaling Development and ServiceMicroservices - Scaling Development and Service
Microservices - Scaling Development and Service
 
What serverless means for enterprise apps
What serverless means for enterprise appsWhat serverless means for enterprise apps
What serverless means for enterprise apps
 
Microservices: Lessons from the Trenches
Microservices: Lessons from the TrenchesMicroservices: Lessons from the Trenches
Microservices: Lessons from the Trenches
 
cloud session uklug
cloud session uklugcloud session uklug
cloud session uklug
 
The Changing Role of IT: From Service Managers to Advisors
The Changing Role of IT:From Service Managers to AdvisorsThe Changing Role of IT:From Service Managers to Advisors
The Changing Role of IT: From Service Managers to Advisors
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
 
Serverless Toronto helps Startups
Serverless Toronto helps StartupsServerless Toronto helps Startups
Serverless Toronto helps Startups
 
Agile enterprise integration
Agile enterprise integrationAgile enterprise integration
Agile enterprise integration
 
Service-mesh options with Linkerd, Consul, Istio and AWS AppMesh
Service-mesh options with Linkerd, Consul, Istio and AWS AppMeshService-mesh options with Linkerd, Consul, Istio and AWS AppMesh
Service-mesh options with Linkerd, Consul, Istio and AWS AppMesh
 
What are microservices
What are microservicesWhat are microservices
What are microservices
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - Plansoft
 
Microservices
MicroservicesMicroservices
Microservices
 
Surviving microservices
Surviving microservicesSurviving microservices
Surviving microservices
 
Changing the Game with Cloud, Microservices, and DevOps
Changing the Game with Cloud, Microservices, and DevOps Changing the Game with Cloud, Microservices, and DevOps
Changing the Game with Cloud, Microservices, and DevOps
 
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
Navigating the service mesh landscape with Istio, Consul Connect, and LinkerdNavigating the service mesh landscape with Istio, Consul Connect, and Linkerd
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
 
Microservice intro
Microservice introMicroservice intro
Microservice intro
 
Getting out of the monolith hell
Getting out of the monolith hellGetting out of the monolith hell
Getting out of the monolith hell
 

Recently uploaded

Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Roomishabajaj13
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITMgdsc13
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts servicesonalikaur4
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一3sw2qly1
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012rehmti665
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on DeliveryCall Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Deliverybabeytanya
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsThierry TROUIN ☁
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一Fs
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With RoomVIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Roomdivyansh0kumar0
 
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Roomdivyansh0kumar0
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Lucknow
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kestopur 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Roomdivyansh0kumar0
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)Christopher H Felton
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一Fs
 

Recently uploaded (20)

Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITM
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
 
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on DeliveryCall Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with Flows
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With RoomVIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
 
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
 
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kestopur 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
 

Things I wish I'd known before I started with Microservices - GOTO Amsterdam 2015

  • 1. Things I wish I'd known before I started with Microservices 1 GOTO Amsterdam - June 18, 2015
  • 2. Who are we? 2 Steve Judd - Lead Consultant Tareq Abedrabbo - CTO OpenCredo - an Open Source software consultancy
  • 3. Things I wish I'd known before I started with Microservices What? Why? How? 3 Agenda
  • 4. What’s the story morning glory? 4 “Gotta have a definition, right?”
  • 5. • It is an architecture choice, not a design pattern • Independently deployable software components (services) • Stateless, loosely coupled, resilient • Communicate via explicit, published APIs • Each service fulfils a single business capability • Automated testing and deployment is essential 5 WHAT
  • 6. So, what’s the big deal? 6 Go on, convince me….
  • 7. • Encourages: ★ loose-coupling ★ separation of concerns ★ single responsibility principle ★ domain-driven design • Good fit with Agile development practices • Well-suited to a containerised infrastructure 7 WHY
  • 8. 8 And are Microservices really the new black? Monoliths: friend or foe?
  • 9. 9 Monoliths • Familiar & well- understood • Easy to develop, build & deploy • Consequences of changing domain design are localised • Limited scaling choices • Long-term commitment to tech stack (technology lock-in) Microservices • Flexible scaling options • Enables independence in development and deployment • Reduces technology lock-in • Better fault tolerance • Build/deploy/execution infrastructure is complex (automation a must) • Getting the domain (service) boundaries right can be difficult WHY
  • 10. 10 Monoliths • Familiar & well- understood • Easy to develop, build & deploy • Consequences of changing domain design are localised • Limited scaling choices • Long-term commitment to tech stack (technology lock-in) Microservices • Flexible scaling options • Enables independence in development and deployment • Reduces technology lock-in • Better fault tolerance • Build/deploy/execution infrastructure is complex (automation a must) • Getting the domain (service) boundaries right can be difficult WHY
  • 11. 11 Monoliths • Familiar & well- understood • Easy to develop, build & deploy • Consequences of changing domain design are localised • Limited scaling choices • Long-term commitment to tech stack (technology lock-in) Microservices • Flexible scaling options • Enables independence in development and deployment • Reduces technology lock-in • Better fault tolerance • Build/deploy/execution infrastructure is complex (automation a must) • Getting the domain (service) boundaries right can be difficult WHY
  • 12. The importance of contracts 12 “Until the contract is agreed, nothing is real”
  • 13. • Design your API contracts first • Communicate them well • Use tools to document them, e.g • apidocjs (http://apidocjs.com/) • swagger (http://swagger.io) • spring-restdocs (https://github.com/spring-projects/spring-restdocs) • Be mindful of the impact of changing an API 13 HOW
  • 14. • If you don’t specify your contract, you end up with an implicit one anyway • Use the power of resources (HTTP and REST) • Location • Uniform interface • Status codes • Representations 14 HOW
  • 15. Does size matter? 15 Provide as many APIs and Services as you need but no more
  • 16. • Size - what really matters is quality not quantity • Services should be decoupled conceptually so that they can evolve independently • Services should be decoupled technically so that they can be managed independently • What do I do, practically? • Co-locate services, but avoid implicit dependancies though shared common objects • Separate services but avoid sharing (domain) libraries 16 HOW
  • 17. • Don’t stress about how many APIs or Services • Do stress about designing an appropriate domain models for your services • Don’t separate your services based on technical boundaries • Do separate your services based on self-contained functions 17 HOW
  • 18. Separating the men from the boys 18 What does a good microservice look like?
  • 19. • Logging & monitoring ✤ Centralised collection ✤ Many more moving parts • How the services are managed • External configuration • Handling failure • Inter-process communication ✤ Message serialisation/deserialisation ✤ Network overhead 19 HOW
  • 21. 1. Specify your contracts first AND communicate them 2. Design for scale: infrastructure, processes, services 3. You’ll need to pay the Distributed Service Tax 4. Everything is a Service (aka eat your own dogfood) 5. Invest in tooling and automation 21 Final takeaways
  • 22. Thank you, any questions? http://www.opencredo.com/blog @OpenCredo @cyberbliss @tareq_abedrabbo
  • 23. Environmental concerns 23 “Infrastructure is much more important than architecture”
  • 24. • Allowing more than one service direct access to the same database • Delaying or ignoring the introduction of good DevOps practices • Infrastructure management of instances and containers is a challenge • Performance 24 HOW