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 microservices, 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 today?
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 implementation.
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 if:
- 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.