SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
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

Contenu connexe

En vedette

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
 

En vedette (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
 

Similaire à 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_
 

Similaire à 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
 

Dernier

Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxeditsforyah
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
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
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一Fs
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predieusebiomeyer
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 
Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleanscorenetworkseo
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一Fs
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMartaLoveguard
 
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
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一z xss
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书rnrncn29
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Excelmac1
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Sonam Pathan
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 

Dernier (20)

Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptx
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
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
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predi
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 
Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleans
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptx
 
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)
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...
 
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 Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 

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