Cloud technologies have seen rapid growth and adoption over the last several years, with enterprises and large organizations increasingly moving from local mainframe systems to the mainframe to cloud migration.
We’re going to discuss mainframe to cloud migration testing best practices when migrating your mainframe applications into the cloud and what you need to know throughout the mainframe to cloud migration testing process to ensure a smooth and successful migration.
During mainframe to cloud migration, to Azure or AWS environment, it isn’t always a straightforward linear process, as it may involve determining which portions of your application you’re going to reuse, rewrite, or replace, depending on the architecture and platform capabilities of the destination cloud.
Oftentimes, if you determine that your destination cloud environment is highly compatible, you may be able to reuse a large portion of your application without significant modifications or alterations; this is a best-case scenario. If your application uses deprecated technologies or can be improved with a complete or partial rewrite or replacement, that may be the ideal solution during mainframe to cloud migration.
In the following sections, you’ll learn all about side-by-side and source-to-target comparisons, how to use automated tools to verify the output files of your database in the context of mainframe to cloud migration testing, migrating between different source and target environments, interface testing and coordinating with interfacing application owners, performance benchmarking and testing, and parallel runs.
Table of Contents
Side by Side – Source vs. Target Comparisons
A strategic approach to mainframe to cloud migration testing involves side-by-side migration, wherein both your source application and cloud destination application run and operate at the same time, allowing you to perform a migration smoothly without having to wipe or get rid of your original application copy. Side-by-side migrations are great for redundancy and peace of mind since making a mistake on your target cloud system won’t shut down your original application.
If your organization has a significant number of end-users consistently connected and using your primary source application, side-by-side migrations will allow you to keep your existing application and services online until the moment you “flip the switch” and change all traffic to your new cloud application. During the side-by-side migration process, you’ll be able to extensively test your application on the cloud, determine operation and performance, and identify any areas that need to be improved, rewritten, or replaced before deploying it into your production environment.
One of the best things you can do during side-by-side mainframe to cloud migration testing is to perform a thorough source vs. target comparison, where you look at how your primary source application performs and compare that performance to your cloud application. If performance is better on the cloud, you’re in great shape; if the opposite is true, however, you’ll have a path forward in optimizing your application for your brand-new cloud environment.
Automated Tools to Verify Database Output Files
Depending on what methodology your company decides to pursue, transferring or copying your application’s database to your new cloud environment, you’ll need to perform a thorough database output verification to ensure that no tables, columns, or entries are corrupted or missing from your new environment.
If you perform a “manual” or “piece-by-piece” migration where each table is exported and then queried into the new database one by one, you’ll run the risk of human error and possibly missing a table, especially if there are hundreds or thousands being migrated.
Similarly, even if you use an automated database migration tool or dump your database and import it into your cloud environment in one fell swoop, you always must be aware of potential incompatibility issues or background errors that may occur because of your new environment. When importing tens of thousands of records, you may overlook a single error message that occurred in the middle of your migration caused by something as simple as a version mismatch or incompatible environment.
To avoid running into any issues during the production deployment of your final cloud application, it is essential to use automated tools to verify all the database output files before migration and verify them on the cloud.
Before mainframe to cloud migration, you can use database verification tools to compare your exported queries to your current database and ensure that every single table and column, and data objects are present in both versions.
After mainframe to cloud migration, it is recommended to verify your new cloud database against your existing mainframe application database, taking note of any errors or missing entries.
Different Source and Target Environments
We’ve already discussed potential errors and mismatches that can occur between the varying source and target environments during cloud migration testing. This section will further emphasize the need to cross-check and verify compatibility before deploying your cloud application into production.
No matter how different your source mainframe environment is compared to your new cloud destination environment, it is critical that your organization follows all mainframe to cloud migration testing best practices to ensure that your cloud application runs exactly as it should, without any errors.
During mainframe to cloud migration testing, a number of errors arise due to the difference between source and target environments, core packages or dependencies of the system. For instance, if an underlying application version is newer on your cloud environment than what you had in your mainframe environment, you may encounter compatibility issues depending on how far this version mismatch stretches.
If versions are closer together, you may not run into many issues during the migration process. If you’re migrating some real legacy code to a new cloud environment, however, you’ll have to consider which code within your application may need to be rewritten and updated to become compatible with your new cloud environment.
Interface Mainframe to Cloud Migration Testing and Coordinating with Interfacing Application Owners
Interface cloud migration testing is an important step in the mainframe to cloud migration process, especially if your new environment is not set up well, the new interface may block certain ports, integrations, or communication channels as a default setting or through an environment-wide firewall.
If your application only calls a few external APIs or web services, the mainframe to cloud migration testing step may not be as difficult or tedious as you’d first think. If you have a complex application that interfaces with dozens, if not hundreds, of different external applications, then you’ll absolutely need to plan and budget for spending an extended period in the interface testing and coordination phase of your migration.
During the interface mainframe to cloud migration testing process, you’ll need to test communications between your web server and application server interfaces and the communication between your database server interface and the cloud application server.
Take all the time you need to verify whether or not errors are properly handled with return error messages for inappropriate or invalid queries and check what occurs if the connection to a web server is reset during application operation.
Your goal is to test as many interfaces and external calls as possible, making sure that your cloud application runs smoothly in its new environment and gives all your end-users a high-quality service experience.
Performance Benchmarking and Testing
Benchmarking and performance testing should always be done between your original mainframe application and your new cloud application to determine how optimized your application is directly upon migration.
If your application’s benchmark on your mainframe server is significantly better than on your new cloud server, you’ll immediately know that you need to focus on optimization and ensure that you aren’t missing any dependencies and aren’t being throttled on your new cloud server environment.
Benchmark mainframe to cloud migration testing will allow you to have a set of quantifiable results that can compare your previous environment to your new environment and is considered an ideal best practice for application migration and testing.
Depending on the specifics of your mainframe application, and how dependent it is on other applications running within your mainframe environment, running parallel systems may be required.
In a parallel system, your new cloud application may connect to or interface with components or software on your mainframe. This is ideal if your mainframe application is complex, and you’d like to migrate the “core” of your application to the cloud and then have time to migrate the remaining applications one by one from your mainframe in the coming weeks or months.
Successfully planning and executing parallel processing can be a very challenging task and requires you and your team to take the extra time needed to ensure nothing gets missed and pay attention to the most minor details throughout the process to ensure smooth operation without any downtime for your end-users.
Summary – It’s best to have an automated test bed of scripts and cases for all mainframe to cloud migration applications and also create specific test cases depending on the application.