Microservices: The Rationale

Why Microservices?

There is increasing demand that enterprise software systems be ElasticResilient and Agile.

  • Elasticity is adaptability to varying loads. When load increases systems should scale up for performance and conversely dynamically scale down to reduce costs when load decreases.
  • Resiliency is gracefully handling outages while continuing to provide business value. Since failures are inevitable, systems should contain and isolate their scope.
  • Agility is responsiveness to business needs with minimum disruption. Software delivery should be rapid, incremental and iterative to stay competitive.

Microservice-based systems, when implemented correctly, are specifically designed to meet these demands. Additionally, microservices allow large, monolithic enterprises to gradually convert to cloud-native software systems and fully leverage the benefits of Cloud computing.

This combination of Agile development methodology (rapid, incremental iterations) combined with microservice architectures (small independent services) dovetails perfectly with Cloud-computing principles and offers huge business advantages as evidenced by companies like Netflix, LinkedIn & PayPal.


The "Microservice Premium"

Adopting a microservice architecture comes with a significant cost -- often referred to as the "Microservice Premium".

The key concept to grasp here is that microservice-based systems are distributed systems, which requires facing a whole new set of challenges.

Per Martin Fowler:

"Almost all the successful microservice stories have started with a monolith that got too big and was broken up...Almost all the cases where I've heard of a system that was built as a microservice system from scratch, it has ended up in serious trouble..." ~ Martin Fowler (ThoughtWorks)  MonolithFirstStrategy

So, when is the right time to start moving to this new & complex architecture? The general consensus seems that the best time to transition is when there's no other choice.

Simply put:

Adopt microservices only when your business needs outgrow the simplicity of a monolithic application.

To view or add a comment, sign in

More articles by Ash Isaac

  • DevOps Is For Humans

    Here’s a question I’d like to present for your consideration: Should DevOps adoption influence your decision to work at…

    2 Comments
  • Going Serverless with AWS Lambda? Here's what you should know

    Serverless has gone mainstream now: it's the natural next-step in the evolution of cloud-computing. The value…

  • DevOps In 3 Sentences

    DevOps is a hot topic right now, and amidst the marketing hype and buzzword-frenzy it can be hard to get to the essence…

  • The value of technical leadership

    I've been in technical leadership roles for over a decade and I have to say, in large measure it is quite unglamorous…

    1 Comment
  • Docker Swarm: An overview

    Docker adoption, especially in large-scale companies is on the rise (up 40% apparently, by one estimation). Since v1.

    2 Comments
  • Infrastructure as Code using Terraform

    One of the strategic benefits of Cloud-computing is the concept of programmable infrastructure or "Infrastructure as…

    5 Comments
  • From Monolith to Microservices

    The adoption of microservice-based architectures in enterprise software systems seems to be a growing trend. The…

  • Concurrency Throttling in Node.js

    Concurrency Throttling in Node.js One of the first things you learn when developing microservices is that they are…

  • Software Architecture "Virtues"

    Software architecture is all about appropriate compromises. For small projects, having a highly involved software…

  • The Service Layer Pattern

    One of the key ingredients in managing Enterprise software products is identifying and consistently applying a proven…

Others also viewed

Explore content categories