Modernizing the monolith
The approach of modernizing an application towards cloud-native maturity leads to an application that is highly scalable and resilient. We discussed how a cloud-native application could scale a component of an application rather than scaling the entire application. Consider the scenario where a search component, that represents 50 Megabytes of memory used, of a monolithic application that requires 1 Gigabyte of memory. The monolithic application then experiences double the load on the search component. Naturally, we would scale the instance by two, which would result in 2 Gigabytes of memory used in total. If we were to extract out the search component as a Microservice, we would be able to able to scale only the search component.
In an ideal world, ignoring potential memory setup overheads of a separate microservice application, it would mean that we would have had only increased the total application memory usage to 1.1 Gigabytes. That's a significant 45% saving...