Rawpixel - Fotolia
The cloud has become the de facto choice for extending and modernizing applications, but there are some situations where the transition isn't straightforward, such as migrating applications from a mainframe environment.
These types of applications are typically hosted on large multi-user, multitasking computer complexes that evolved from the days of the centralized data center. In certain situations, mainframe users are unable to migrate, due to limitations such as formats and OSes that do not work in a cloud environment.
Below, we will walk through the options to modernize and migrate a mainframe-based application to the cloud.
Mainframe migration options
To assess your organization's mainframe migrations options, see if the application source code is available, or if there is only object code. IT teams can rewrite and modernize applications with accessible source code; object code cannot be modified, since it's the result of source code that's gone through a compiler or other translator. When source code is not available, the application will either have to run as-is or be replaced entirely.
If a mainframe application is only available in binary form for the mainframe, and if the binary is designed to run on an OS that cannot be hosted in the cloud -- generally, anything other than Windows, UNIX or Linux -- then consider it non-portable. If this is the case, you have three options:
- Find an alternate version. See if there is another version of the application design that will run on something other than a mainframe. This option is the simplest approach and optimal in terms of cost. However, you'll need to ensure the alternate version is truly cloud-optimized, and not just a monolithic application hosted in the cloud, which will negatively impact costs.
- Use a "mainframe as a service" option. There are companies, such as Cornerstone -- which is owned by Google Cloud -- that provide third-party hosting for these types of applications. This option is best when there are a few problematic mainframe applications that aren't suitable for other options. Most enterprises treat this as a transitional approach until these applications are optimized for cloud.
- Replace the app. If the other techniques do not work, identify another application you can replace the mainframe application with -- based on a combination of suitable features and ease of converting historical data. A commercial software product, or a SaaS cloud offering, is often suitable, and it may even have better features and lower costs, but it depends on the type of app.
If the mainframe application runs on an OS and computer platform that's supported in the cloud, such as x86, then you can run a test with suitable cloud providers to ensure that the application will run on their platforms. However, this app will most likely be monolithic, which means it has limited scalability and reusability.
A monolithic application is typically inefficient in cloud, as it cannot take advantage of the cloud's benefits. If its performance and cost characteristics in the cloud are not satisfactory, or if you can't find a cloud platform to run it on, then consider it a mainframe-only binary and choose from the three options above.
Mainframe modernization opportunities and services
When the source code is available, there are various ways to rewrite and modernize the application. These include a simple translocation of software, a cloud-compatible platform or the creation of a microservice application. Applications written in popular languages like C, C++ and C#, are easier to modify for the cloud and considered partially cloud-ready because such languages are based on modular functions and procedures.
You could choose from numerous application modernization tools and services, such as:
- Astadia -- offers mainframe migration services and generalized application modernization services;
- TmaxSoft -- provides resources to guide mainframe users through a variety of options it supports; and
- MuleSoft -- provides a solid strategy that includes strong componentization and workflow creation.
If the application is written in languages like COBOL, PL1 or assembler, it is more difficult to modernize without totally rewriting it. For COBOL programs, the best option is to rehost by recompiling the application on a cloud-compatible platform. From there, it may be possible to break the application up to make it more efficient and compatible for the cloud.
Many companies in some of the top industries still rely on mainframes. It isn't always possible or economically feasible to perform a total mainframe migration to the cloud. Focus on making the mainframe applications the back-end portion of a cloud extension designed to separate user interfaces and data entry from information processing. That, at least, will reduce your mainframe commitment going forward, and prepare you to take more radical steps down the line.