By this point, you know what microservices are and how they work. Now it’s time to get down to brass tacks: namely, the very critical topic of how to approach the transition to microservices.
The need for microservices transition
A monolithic application is very large (in terms of lines of code) and complex (in terms of functions interdependencies, data, etc.), serving hundreds of thousands of users across geographical regions and requiring several developers and IT engineers. A monolithic app may look something like Figure 1.
Sometimes, even with all these characteristics, the application might run fine at first. You may not encounter challenges in terms of application scalability or performance. But with time and usage, issues will arise, and they may be different for different applications.
For example, for a cloud or web application, you may hit scalability issues due to more users consuming your services, or it may become costly and hard to release regular new updates due to longer build times and regression testing. As shown in Figure 2, monolithic application users or developers may experience one or more issues listed on the right.