Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Do you need microservices architecture?

9,830 views

Published on

Over the last few years there has been lot of attention on microservices. After the initial "hype" we saw that what problems it solves and what it can not. I have tried to cover what are microservices and where it can be useful and where it is not. I want to share the guidelines which can be used to choose between a monolith and microservices.

Published in: Technology

Do you need microservices architecture?

  1. 1. Do you need microservices architecture? Manu PK @manupk12 http://www.blog.manupk.com Software Architects Bangalore Meetup; 16 April 2016
  2. 2. About Me  Software Architect @ Schneider Electric  Blogs @ http://www.blog.manupk.com  Twitter : @manupk12
  3. 3. Agenda  What is microservices architecture  The need  Characteristics  Examples  Microservices architecture – The not-so-good parts  Limitations  Trade-Offs  Starting with a modular monolith  Don’t start with microservices if you are not sure about the future  Modularity is the key  Transforming a modular monolith to microservices
  4. 4. Microservices architecture – The Need  What we have now – Monolith!  A single packaged deployment for all of the application  Complexity in  Functionality  Scaling  Fault Tolerance  Convoys Law  Governance  “The growing demand for agility, flexibility, and scalability to meet rapidly evolving business needs creates a strong need for a faster and more efficient delivery of software” - Arun Gupta
  5. 5. Microservices architecture  Approach to developing a single application as a suite of small set of collaborating services.
  6. 6. Microservices architecture - Example
  7. 7. Microservices architecture - Characteristics  Organized around Business Capabilities  Smart endpoints and dumb pipes  Independent Governance  Independent Technical Stack  Independent Deployment  Improved fault isolation  Eventual Consistency for Data  Consumer first interfaces
  8. 8. Microservices architecture - Limitations  Significant Operations Overhead  Implicit Interfaces  Distributed System Complexity  Additional tools for Service Registration and Service Discovery - Zookeeper, Doozer, Etcd, Eureka
  9. 9.  DevOps Tool Set Distributed systems => High level of Automation => Need to depend on more tools => Need to have good DevOps skills in the team
  10. 10. Microservices architecture – Trade-Offs  Source: http://martinfowler.com/bliki/MicroservicePremium.html
  11. 11. Modularity is the key  Can you build a modular monolith..?  Source: http://blog.manupk.com/2013/04/package-your-classes-by-feature- and-not.html
  12. 12. Modularity is the key Ref: http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html
  13. 13. Do you need microservices architecture  The “Hype” Cycle  Microservices is not a solution to modularity problems  Don’t start with microservices if you are not sure about the future evolutions  Use the “Bounded context” concept in the Eric Evan’s Domain Driven Design
  14. 14. Summary : Answer these before you choose  Does your services represents different business cases/domains..?  Does the services needs to be deployed and managed independently..?  Does different parts of the application has different scaling/Technology needs..?
  15. 15. Questions / Comments / Feedback @manupk12| manu.pk@outlook.com Slides @ http://www.slideshare.net/pkmanu
  16. 16. References  http://martinfowler.com/microservices/#when  http://microservices.io/patterns/microservices.html  http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html  http://martinfowler.com/articles/microservice-trade-offs.html  http://blog.arungupta.me/microservices-monoliths-noops/  http://blog.manupk.com/2013/04/package-your-classes-by-feature-and- not.html  http://martinfowler.com/bliki/MicroservicePremium.html  http://samnewman.io/talks/principles-of-microservices/  http://blog.cleancoder.com/uncle- bob/2014/10/01/CleanMicroserviceArchitecture.html
  17. 17. Thank You for Listening

×