Thep Urai - Fotolia
The justification for implementing a microservices-based architecture is a matter of cost and benefit.
Microservices can be expensive to implement. At the very least, you need to have personnel on hand with the expertise and experience to do the work. Without it, the alternative is to get an outside party to help.
The actual per-hour labor cost of a move to microservices can be quite high, regardless of whether it's handled by staff or a contractor. Remember, this is not the type of work that can be done by junior-level developers.
In addition to labor, there are infrastructure costs. A microservices architecture needs comprehensive CI/CD infrastructure in place in order to work effectively. If CI/CD is not in place, you need to construct it. This includes automated source code management, deployment pipelines, testing and project management capabilities.
If the intended microservice is currently deployed as part of a monolith, there is the added cost of the transfer from monolith to microservices. It's rarely a matter of simply flicking a switch to turn the microservices on and the monolith off. Not only is there the cost of the monolith team and the microservices team working in tandem to do the implementation, but the monolith team still needs to support the existing application.
If you need to support daily, if not hourly, revision cycles, then microservices-based architecture is beneficial. It's also useful if you need to support a large number of end users and external services. However, if you can successfully support fewer than 50,000 users and can live with longer revision cycles, then the benefits of a move to microservices might not outweigh the cost of implementation.
Dig Deeper on Software development best practices and processes
Related Q&A from Bob Reselman
There's a reason why so many vendors have moved from monoliths to microservices. Here are 11 real benefits microservices bring to companies. Continue Reading
Not everyone is keen to adopt a cloud-native architecture, for good reasons. These common drawbacks to microservices might convince you to stick with... Continue Reading
The Kubernetes command-line tool, kubectl lets you control your Kubernetes clusters. But two of its operations -- apply and create -- can often be ... Continue Reading