SlideShare a Scribd company logo
Microservices
- The good, the bad and the ugly
- A small service that does one thing well
- Independent
- Owner of its own data
Clear definition of a microservice
https://blog.codeship.com/microservices-best-practices/
By Example
https://martinfowler.com/articles/microservices.html https://www.slideshare.net/spnewman/appsec-and-microservices
Microservices benefits
Strong Module Boundaries
• Microservices reinforce modular structure, which is particularly important for
larger teams.
https://martinfowler.com/microservices/
Independent Deployment
• Simple services are easier to deploy, and since they are autonomous, are
less likely to cause system failures when they go wrong.
https://martinfowler.com/microservices/
Technology Diversity
• With microservices you can mix multiple languages, development
frameworks and data-storage technologies.
https://martinfowler.com/microservices/
Microservices costs
Distribution
• Distributed systems are harder to program
• Calls between services are
• Slower
• Always at risk of failure.
• Hard to follow through services
https://martinfowler.com/microservices/
Eventual Consistency
• Maintaining strong consistency is extremely difficult for a distributed system,
which means everyone has to manage eventual consistency.
https://martinfowler.com/microservices/
Operational Complexity
• You need a mature operations team to manage lots of services, which are
being redeployed regularly.
https://martinfowler.com/microservices/
Best Practices
Helpful documentation
• You no longer write the whole system and so you need to make it easy to
integrate with the services.
https://blog.codeship.com/microservices-best-practices/
Built with monitoring and troubleshooting in mind
• Distributed systems easily becomes very complex and following requests is
no longer just following stack traces.
https://blog.codeship.com/microservices-best-practices/
Easily deployable and scalable
• Deploying often and scaling the services when needed is a big benefit of
using microservices.
https://blog.codeship.com/microservices-best-practices/
Easy to consume
• Make sure your consumers can hit the API directly in a nonproduction
environment.
https://blog.codeship.com/microservices-best-practices/
Develop
Test
Stable
Production
Coexists with established conventions
• Make sure the microservices API is consistent and follow predefined
conventions
• Content format
• Date format
• Error responses
• Etc…
https://blog.codeship.com/microservices-best-practices/
Bad Practices
Dictating the architecture
• This interferes with product team’s responsibility which is one of the more
important aspects of microservices and breaks the feedback loop from the
actual code back to the design
https://www.infoq.com/news/2015/01/bad-practices-microservices
A dedicated DBA or shared database
• A Prevents a team from
• optimizing their database structures
• choosing the storage engine that best fits the for the specific service
• Approval needed - creates confusion about who owns the different tables
• Reluctance of removing anything in fear of destroying products for other
teams.
https://www.infoq.com/news/2015/01/bad-practices-microservices
A shared code base that is not owned by the
teams
• The code must be shared by all teams with each developer able to send a
pull request.
• Only utility logic should be shared
• sharing domain logic breaks the boundaries between contexts
https://www.infoq.com/news/2015/01/bad-practices-microservices
Preferring SDKs over APIs
• Leads to one platform enforced on all teams
• SDKs introduces another level of complexity
• Forcing a team to support both a service’ public API as well as the client
code that uses the API.
https://www.infoq.com/news/2015/01/bad-practices-microservices
Microservices - The good, The bad, The does and The don'ts

More Related Content

PDF
Securing danish healthcare using cloudnative
PPT
Sebastien goasguen cloud stack and docker
PPTX
Docker, Innovation Accelerator
PDF
Rohit yadav cloud stack internals
PDF
Don't Assume Your API Gateway is Ready for Microservices
PDF
Hacking apache cloud stack
PDF
Kubernetes Security
PPTX
Linux kit meetup_v1.0.0
Securing danish healthcare using cloudnative
Sebastien goasguen cloud stack and docker
Docker, Innovation Accelerator
Rohit yadav cloud stack internals
Don't Assume Your API Gateway is Ready for Microservices
Hacking apache cloud stack
Kubernetes Security
Linux kit meetup_v1.0.0

What's hot (20)

PPT
Sebastien goasguen cloud stack the next year
PDF
Kubernetes 201: Taking your Managed Kubernetes service to the next level
PPTX
Docker - Build, Ship and Run Any App, Anywhere Hollywood edition
PDF
Replacing vCloud with OpenNebula
PDF
Securing your Cloud Environment
PDF
Simple Solutions for Complex Problems - Boulder Meetup
PPTX
Istio Cloud Native Online Series - Intro to Istio Security
PPTX
Docker presentation for sharing
PPTX
Openstack components as containerized microservices
PDF
How Clarifai uses NATS and Kubernetes for Machine Learning
PPTX
VMware and Container Orchestration
PDF
Introduction to Microservices
PPTX
LinuxKit Update at the Moby Summit
PDF
Getting Safe Swiss Cloud up and running with CloudStack
PDF
Kubernetes security and you
PDF
NATS + Docker meetup talk Oct - 2016
PDF
OpenNebula TechDay Waterloo 2015 - Private cloud at black berry
PDF
Introducing managed infrastructure services from Digital Network and OVHcloud
PDF
Your Developers Can Be Heroes on Kubernetes
PDF
Containerized Storage for Containers: Why, What and How OpenEBS Works
Sebastien goasguen cloud stack the next year
Kubernetes 201: Taking your Managed Kubernetes service to the next level
Docker - Build, Ship and Run Any App, Anywhere Hollywood edition
Replacing vCloud with OpenNebula
Securing your Cloud Environment
Simple Solutions for Complex Problems - Boulder Meetup
Istio Cloud Native Online Series - Intro to Istio Security
Docker presentation for sharing
Openstack components as containerized microservices
How Clarifai uses NATS and Kubernetes for Machine Learning
VMware and Container Orchestration
Introduction to Microservices
LinuxKit Update at the Moby Summit
Getting Safe Swiss Cloud up and running with CloudStack
Kubernetes security and you
NATS + Docker meetup talk Oct - 2016
OpenNebula TechDay Waterloo 2015 - Private cloud at black berry
Introducing managed infrastructure services from Digital Network and OVHcloud
Your Developers Can Be Heroes on Kubernetes
Containerized Storage for Containers: Why, What and How OpenEBS Works
Ad

Similar to Microservices - The good, The bad, The does and The don'ts (20)

PDF
[WSO2Con EU 2017] Microservices for Enterprises
PDF
Microservices for Enterprises
PPTX
ThatConference 2016 - Highly Available Node.js
PDF
Microservices Tutorial for Beginners | All You Need to Get Started
PPTX
Unit No. II Architecture.pptx Cloud Microservices & Application
PPSX
Microservices Architecture, Monolith Migration Patterns
PPTX
Webinar : Microservices and Containerization
PPTX
Best Practices Building Cloud Scale Apps with Microservices
PPTX
Best Backend Frameworks for Scalable Web Development
PPTX
MICROSERVICES ARCHITECTURE unit -2.pptx
PPTX
Microservices and IBM Bluemix meetup presentation
PDF
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
PDF
The elegant way of implementing microservices with istio
PDF
Rapid deploy™ plugin for websphere message broker
PPTX
Microservices-101
PDF
Stay productive_while_slicing_up_the_monolith
PPTX
Technology insights: Decision Science Platform
PDF
Introduction to Microservices
PPTX
Cloud Computing & Business Intelligence
PDF
Evolving your Architecture to MicroServices
[WSO2Con EU 2017] Microservices for Enterprises
Microservices for Enterprises
ThatConference 2016 - Highly Available Node.js
Microservices Tutorial for Beginners | All You Need to Get Started
Unit No. II Architecture.pptx Cloud Microservices & Application
Microservices Architecture, Monolith Migration Patterns
Webinar : Microservices and Containerization
Best Practices Building Cloud Scale Apps with Microservices
Best Backend Frameworks for Scalable Web Development
MICROSERVICES ARCHITECTURE unit -2.pptx
Microservices and IBM Bluemix meetup presentation
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
The elegant way of implementing microservices with istio
Rapid deploy™ plugin for websphere message broker
Microservices-101
Stay productive_while_slicing_up_the_monolith
Technology insights: Decision Science Platform
Introduction to Microservices
Cloud Computing & Business Intelligence
Evolving your Architecture to MicroServices
Ad

Recently uploaded (20)

PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
Introduction to Artificial Intelligence
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Online Work Permit System for Fast Permit Processing
PPTX
L1 - Introduction to python Backend.pptx
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Nekopoi APK 2025 free lastest update
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
Transform Your Business with a Software ERP System
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
top salesforce developer skills in 2025.pdf
Navsoft: AI-Powered Business Solutions & Custom Software Development
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
How Creative Agencies Leverage Project Management Software.pdf
Which alternative to Crystal Reports is best for small or large businesses.pdf
Wondershare Filmora 15 Crack With Activation Key [2025
Introduction to Artificial Intelligence
Softaken Excel to vCard Converter Software.pdf
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Design an Analysis of Algorithms II-SECS-1021-03
Online Work Permit System for Fast Permit Processing
L1 - Introduction to python Backend.pptx
Understanding Forklifts - TECH EHS Solution
Nekopoi APK 2025 free lastest update
Operating system designcfffgfgggggggvggggggggg
How to Choose the Right IT Partner for Your Business in Malaysia
Transform Your Business with a Software ERP System
Design an Analysis of Algorithms I-SECS-1021-03
top salesforce developer skills in 2025.pdf

Microservices - The good, The bad, The does and The don'ts

  • 1. Microservices - The good, the bad and the ugly
  • 2. - A small service that does one thing well - Independent - Owner of its own data Clear definition of a microservice https://blog.codeship.com/microservices-best-practices/
  • 5. Strong Module Boundaries • Microservices reinforce modular structure, which is particularly important for larger teams. https://martinfowler.com/microservices/
  • 6. Independent Deployment • Simple services are easier to deploy, and since they are autonomous, are less likely to cause system failures when they go wrong. https://martinfowler.com/microservices/
  • 7. Technology Diversity • With microservices you can mix multiple languages, development frameworks and data-storage technologies. https://martinfowler.com/microservices/
  • 9. Distribution • Distributed systems are harder to program • Calls between services are • Slower • Always at risk of failure. • Hard to follow through services https://martinfowler.com/microservices/
  • 10. Eventual Consistency • Maintaining strong consistency is extremely difficult for a distributed system, which means everyone has to manage eventual consistency. https://martinfowler.com/microservices/
  • 11. Operational Complexity • You need a mature operations team to manage lots of services, which are being redeployed regularly. https://martinfowler.com/microservices/
  • 13. Helpful documentation • You no longer write the whole system and so you need to make it easy to integrate with the services. https://blog.codeship.com/microservices-best-practices/
  • 14. Built with monitoring and troubleshooting in mind • Distributed systems easily becomes very complex and following requests is no longer just following stack traces. https://blog.codeship.com/microservices-best-practices/
  • 15. Easily deployable and scalable • Deploying often and scaling the services when needed is a big benefit of using microservices. https://blog.codeship.com/microservices-best-practices/
  • 16. Easy to consume • Make sure your consumers can hit the API directly in a nonproduction environment. https://blog.codeship.com/microservices-best-practices/ Develop Test Stable Production
  • 17. Coexists with established conventions • Make sure the microservices API is consistent and follow predefined conventions • Content format • Date format • Error responses • Etc… https://blog.codeship.com/microservices-best-practices/
  • 19. Dictating the architecture • This interferes with product team’s responsibility which is one of the more important aspects of microservices and breaks the feedback loop from the actual code back to the design https://www.infoq.com/news/2015/01/bad-practices-microservices
  • 20. A dedicated DBA or shared database • A Prevents a team from • optimizing their database structures • choosing the storage engine that best fits the for the specific service • Approval needed - creates confusion about who owns the different tables • Reluctance of removing anything in fear of destroying products for other teams. https://www.infoq.com/news/2015/01/bad-practices-microservices
  • 21. A shared code base that is not owned by the teams • The code must be shared by all teams with each developer able to send a pull request. • Only utility logic should be shared • sharing domain logic breaks the boundaries between contexts https://www.infoq.com/news/2015/01/bad-practices-microservices
  • 22. Preferring SDKs over APIs • Leads to one platform enforced on all teams • SDKs introduces another level of complexity • Forcing a team to support both a service’ public API as well as the client code that uses the API. https://www.infoq.com/news/2015/01/bad-practices-microservices