The drivers for moving workloads to the cloud are well documented: Organizations need to simplify operations, reduce costs, and increase application agility to meet market demands. Additional motivations for moving workloads to the cloud include balancing the need to meet regulatory compliance requirements with the desire to greatly increase innovation, performance and scalability.
But the critical question for organizations to first answer is: What are the specific cloud destination options, and what is the recommended approach to get there? To be effective, organizations need a strategy that fully maximizes cloud benefits, including, but not limited to, leveraging a cloud-native landscape.
The starting point of any modernization journey should be a comprehensive assessment – encompassing applications, operations and the supporting infrastructure. Assessment results should look to validate any pre-selected disposition strategies, and ultimately assist in defining the overall modernization approach. Depending on the long term goals – the approach often includes a combination of disposition strategies. For example, a long term goal of reengineering a large, complex mainframe monolith into cloud-native microservices can be broken into several incremental steps:
The following diagram illustrates each disposition strategy that can be used on the journey to the cloud. A description of each option is outlined in the text below the diagram.
Various levels of refactoring can be applied during or following an Automated Conversion project. Code is analyzed during the assessment to determine application cloud-readiness and the required refactoring effort to obtain the desired level of elasticity (i.e. horizontal scalability (scale out/in) and vertical scalability (scale up/down)) required by the application workloads being migrated.
Because mainframe-based applications are stateful by nature, they require modifications in order to take advantage of the dynamic scaling abilities provided in a cloud optimized environment. If scaling is desired, the assessment phase will allow for identification of areas where state is being stored on the application tier, such as the use of shared memory (e.g. CICS TS Queues, TD Queues, CWA, TWA if applicable) in addition to anywhere the applications are reading/writing local files, logs, and configuration scripts. At this point Modern Systems can then provide customers with options that weigh the pros and cons for addressing each state-specific issue. Examples include leveraging a distributed cache to support state, and moving any local file access to a scalable shared file system.