Legacy applications are also often monolithic applications. Monolithic applications have two characteristics that make it desirable to modernize them: they are difficult to update, and they are difficult and expensive to scale.
Monolithic apps are difficult to update for architectural reasons. Because all of an application’s components ship together, it is difficult and costly to add features given the overhead of complexity and integration challenges.
They are challenging and costly to scale for similar reasons. If even one component of an app is facing load and performance challenges, it can become necessary to scale up the entire app only to serve the most-demanding single component. This approach comes with considerable wasted compute.
By modernizing an application to more of a microservices architecture, components are smaller, loosely coupled, and can be deployed and scaled independently of one another. While bringing its own set of challenges, this approach is where much of the core value in modernization can be found.