Every month, week, or day, it seems there’s buzz about yet another solution or service that will revolutionize
your industry – or more simply, make your life easier. And it’s easy to get caught up in the wave as every
colleague, competitor and blogger feeds into it. Case in point, you’ve probably heard about
and have wondered what part in your life should be affected by them. Is it a paradigm shift? Is it a new
software-oriented architecture (SOA)? How “micro” should we be? Do I need to implement this in my application
It depends. The first questions you should ask are
“what will it do to, and for, my organization?”
While microservices are often marketed as a “silver bullet” solution to all your app development woes, they may
wreak havoc in your world if not implemented properly. And, it’s also quite possible that you don’t need to
implement microservices at all. To understand that point of view, take a look back at the SOA craze.
Everyone jumped on board – SOA was the right thing, right? – yet many SOA initiatives failed, leaving many
scratching their heads. Once you cut through the buzz, you may start to see that microservices are an attempt to
revisit the 2000s vision of SOA – trying to solve deficiencies of SOA implementations, while being part of SOA
itself. Quite frankly, there is nothing in microservices that contradicts SOA, at least formally – the
difference is in the implementation.
Nailing down a definition of microservices can be a challenge, but most
seem to agree that it’s an approach modeled after the modern web – and better than a typical three-tier
Properly implemented, microservices offer seamless deployment with minimal downtime, easy scalability, and the
technological flexibility to build each service on its own stack if needed. But if your SOA architecture already
delivers these benefits, you’re already getting the best that microservices have to offer.
If your organization is missing out on these benefits, it’s necessary to prepare for a transition before you make
another move. If you then decide to move forward with microservices, invest in tools supporting rapid
deployment, versioning, automation, and reporting – and embrace DevOps culture.
But understand, microservices are complex and may not be an immediate need for your organization, especially
- Management isn’t ready to blur the line between operations and development
- You’re building a simple, short-term solution
- You have a strong need to keep all software components consistent at any one particular moment
- You anticipate your entire software solution to rapidly change in the nearest future
- Your solution demands fast conversation between components
So, at the end of the day, microservices are cool, but they’re not for everyone. And if you didn’t implement them
yet, it doesn’t mean there’s something wrong with you. In most situations, microservices drive organizational
change that can bring you a more effective software development lifecycle in the long term, shorten delivery
times, provide better business continuity and remove unnecessary overhead related to support and maintenance of
the system in production. But you must weigh microservices’ complexities against your organizational and
operational needs before jumping in.
If you'd like more information regarding microservices, please feel free to reach out to the author, Peter
Shashkin at firstname.lastname@example.org.