Application Modernization Approaches
When we use the phrase moving to cloud we can sometimes assume that it means the same thing to everyone. The reality is, however, that the term has a broad set of possibilities. In addition, public cloud is not the only option! While many applications can benefit a great deal from moving to the cloud, as we have already seen, the IT and business benefits from moving to the cloud do not always outweigh the costs. So when we are considering cloud migration approaches, then these patterns always follow within the context of a broader modernization strategy.
Gartner recognized 5 original Rs of migration to cloud and this has been extended to 6, 7, or 8 options by different authors. Our approach is a little broader than Gartner’s in that we are trying to reflect a broad modernization strategy, not just a cloud migration. To support this, we have identified 8 tactics within an overall modernization strategy - varying from the “do nothing” option of “retain” to a complete rethinking of the business function with a reimagine option. In the following sections, we look at each of these in turn. We cover the principle advantages and disadvantages, and we detail some example use cases for each.
In our analysis, we will consider an abstract application as having five key elements :
- Interfaces Comprising all the external interfaces of the application - including any user interfaces, externally accessible APIS and also batch interfaces
- Application Code The main code for the application. This may comprise a number of programming languages and frameworks.
- Platform The software platform on which the application code runs. This is a combination of platforms at different levels - i.e. operating system, application server, cluster server etc. In this analysis we will consider these only as a group.
- Infrastructure The hardware or infrastructure services that host the application. This is either specific hardware for a single deployment, or a set of infrastructure services for cloud deployments
- Database The set of databases for an application. These are database software installations, or they may be provided by high-level database services.
In the following pages we use the following notation to highlight which elements change in each of the modernization pattern approaches.