Microservices: Why it Might Not Work for Your Organization
It seems as though many companies with teams who aspire to innovate and evolve look to industry giants for guidance and as role models.
It seems as though many companies with teams who aspire to innovate and evolve look to industry giants for guidance and as role models. The perception seems to be: they’re doing this, so if our company does it too, we can grow to be as successful. It’s easy to believe, but it’s not always as easy to do.
Some major companies have adopted Microservices, an architectural approach to prioritize the continuous delivery of single-purpose services. Microservices are intended to help organizations achieve two basic goals – agility and scale, but even if your organization needs to meet these goals, it doesn’t mean microservices is the best option for your organization.
Here are a few reasons your organization may not be fully capable of managing the complexities that come with deploying microservices.
1. If your organization does not have staff devoted to maintaining it
Microservices isn’t something you can deploy and be finished with, only to check in on from time to time. It will require staff to have the ability to keep up with the pace and instantly provide provision resources. Some organizations simply don’t have those resources readily available and deploying microservices without continuous support will likely cause issues.
2. You must be prepared for failure
Deploying microservices in your organization brings a level of complexity your team must be prepared to handle. This includes designing your processes and system with failure in mind. Preparing to deploy microservices means your team must also prepare to handle multiple failure issues, including downtime, slow service and essentially, the unexpected. It is also important to always have alternative plans in mind.
3. Your organization will need to embrace new processes
If your organization is looking to make the switch to microservices, you should have mature agile and DevOps processes in place. Why should your team embrace these processes? The software development lifecycle has to be automated and set up for continuous delivery. In order to enable this automation, DevOps and agile processes must be implemented. In addition, microservices components cannot be changed once they are deployed, only efficiently replaced and redeployed. Therefore, teams are subjected to redeploying them frequently – sometimes even on a daily basis.
4. Testing isn’t as easy as you think
For microservices, testing is far from straightforward. Each individual service has its own dependencies, some of which may be direct and others not so much. As features are added to the system, new dependencies will populate. It’s impractical to keep tabs on all of these instantaneously. Additionally, as the number of services increases…so does the complexity of it all. Your organization’s microservices architecture must be able to handle a reasonable level of faults, therefore, resiliency testing is a must. If your organization isn’t readily available to take on this complexity in deploying microservices, it may not be right for your organization at this time.
While there are several reasons you may be enthusiastic about microservices, these reasons alone may cause your organization to pause on implementing it too soon – or even at all.
Want to learn more about microservices? Join Simon Martinelli for one of his upcoming speaking tours on The Real Value of Microservices.