This whitepaper explores the market options for legacy code migration, with a primary focus on BluAge, an AWS Modernization service. It delves into the pros, cons, and discusses custom development and integration touchpoints.
Modernizing mainframe applications has been an ongoing endeavor, ranging from basic Lift and Shift to more comprehensive approaches like Re-platforming and Rearchitecting. However, this field has primarily been dominated by smaller players and integrators, leading to a lack of maturity and sophistication in modernization solutions and processes, preventing larger corporations from trusting their critical workloads with them. Cloud providers are now venturing into Mainframe modernization, offering end-to-end solutions to encourage organizations to transition to the cloud. They are providing credibility and support that enables organizations to confidently migrate their critical workloads by investing in enhancing existing solutions, getting potential candidates, and developing new ones.
AWS recently acquired Blu Age, a French company specializing in auto-converting Mainframe code, including COBOL and Easytrieve. This acquisition enhanced AWS's ability to package and market the solution alongside its other services. Additionally, AWS has partnered with Micro Focus to bring a re-platforming solution for Mainframe code to AWS, utilizing Micro Focus tools for analysis, development, and deployment on distributed platforms. With AWS's infrastructure, DevOps, and security capabilities, this offers a comprehensive solution for rapid Mainframe modernization.
Google's G4 solution facilitates code discovery, analysis, and auto-conversion into modern languages like Java, with support for migrating data from the mainframe to the cloud. It allows applications to operate simultaneously on both mainframe and cloud environments.
Microsoft, leveraging its extensive partner network, offers various migration solutions, including emulation (Micro Focus), refactoring (Astadia, Asysco), and re-platforming (RAiNCODE) options. The RAiNCODE solution enables the conversion of Mainframe code into .NET executable files, suitable for hosting on distributed platforms, ensuring a smooth transition to the cloud.
The process of migrating legacy code, particularly through automated conversion tools, presents various challenges alongside its benefits. Opting for an auto-conversion approach entails careful consideration of the migration drivers to align with the chosen method effectively. For instance, BluAge may be ideal for migrating to Java on the cloud while preserving existing functionality. Alternatively, solutions like Micro Focus or RAiNCODE might be preferable for staying with COBOL while migrating from Mainframe. If the focus is on integrating new features and functionalities, Commercial Off-The-Shelf (COTS) options could be considered.
Advantages of auto-code conversion include:
However, there are also notable disadvantages:
A comprehensive testing strategy with planned extensive testing is essential to ensure the success of the migration process.
Blu Age facilitates the automatic conversion of code written in COBOL, PL/1, RPG/400, and other languages into modern distributed applications utilizing technologies such as Angular, Java/Spring, and databases including PostgreSQL, Amazon Aurora, RDS for PostgreSQL, Oracle, and IBM Db2. This solution goes beyond mere code conversion, encompassing the modernization of the entire software stack, including application code, dependencies, and infrastructure, all the while adhering to industry standards and quality measures. The converted code is accompanied by the Gapwalk framework, which offers runtimes equivalent to CICS, VSAM, SQL and Queues, along with solutions for common mainframe utilities like SORT, IDCAMS, and IEBGENER. Blu Age continually updates the framework to incorporate new features and adhere to the industry standards. The converted solution can be deployed using various architectural approaches, such as hosting on EC2 or containerization, and can be maintained by customers like any other Java-based application after deployment.
Converting the code using BluAge tool typically involves the following steps:
Assessment
During this phase, the codebase undergoes thorough analysis, examining dependencies, identifying missing components, and pinpointing areas requiring manual conversion (such as Assembler or other languages). The objective is to define a clear scope for the conversion process. Additionally, this phase may entail conducting proof of concept exercises, wherein the select code components are converted using BluAge. This helps to uncover any unknown patterns and assesses code complexity, aiding in the finalization of estimates.
Calibration Phase
Calibration entails converting a sample codebase into the target technology and rigorously testing of the converted code for functional equivalence with the legacy code. The insights gained, along with any necessary adjustments to conversion patterns, are used to fine-tune the conversion tool, which will be employed in the subsequent Mass Conversion stage. During Calibration Phase, BluAge leverages the organization's test data and the expected test results to refine the tool. To obtain better results in the Mass Conversion phase, specific steps are recommended:
Typically, 10 to 30% of the overall codebase undergoes this phase, although the specific percentage is determined by the agreement between BluAge and the organization. The entire process should be meticulously planned to select the sample code, prepare test data, and devise test cases covering a sizable portion of the functionality. Failure to do so may result in schedule delays due to data and test case unavailability, potentially leading to suboptimal conversion outcomes.
Mass Conversion Phase
Following the completion of the Calibration phase, the Mass Conversion phase begins. During this stage, the remaining code undergoes the conversion process. Utilizing the tuned and refined engine developed during the Calibration phase, the code is converted to meet the specific requirements of the customer.
Integration
Upon code conversion and delivery by BluAge, the responsibility lies with the organization to integrate and deploy it within its ecosystem. With many deployment options and integration considerations, close collaboration with the BluAge team is imperative to design architecture and services that align effectively with the delivered code. Integration into the application landscape may need custom development to accommodate various required changes. Below, we outline some integration touchpoints based on our experiences:
Custom Development for Integration
Custom development Scenarios | Remarks |
---|---|
Sending Emails during the execution of the Jobs as a notification | Need to develop bespoke utility to send emails in AWS world and integrated with Groovy scripts |
Triggering jobs (Groovy scripts) in Control M or Other Scheduler | Bespoke Python script or other scripts to be developed to connect with Control M or other scheduler and receive the completion return codes |
Sharing data (Including FTP (File Transfer Protocol), Connect Direct) to Windows shared folders | Bespoke utility developed for file transfers |
EBCDIC to ASCII conversion of files | Bespoke utility to convert from EBCDIC to ASCII when sending the data to other applications or entities |
Restart ability of jobs from a particular step | Each job-Groovy script needs to be parametrized to be able to start from specific step. This would be an additional activity. However, BluAge is planning to manage it at framework level in the upcoming release. |
Testing
Testing constitutes one of the most time-consuming activities in the entire lifecycle, necessitating careful planning in advance regarding test case and test data preparation to ensure effectiveness and efficiency. Considerations during testing include:
Below diagram represents the steps typically taken through the conversion process.
It is important to acknowledge the limitations of current version code conversion tools when making decisions.
The current version of the tool lacks the capability to convert code written in Assembler or some other obscure MF related languages, necessitating manual conversion for these codes.
Regarding customer-specific scan issues (such as Twistlock or Veracode), BluAge currently solely performs SonarQube-based scans, which may not fully comply with the organization's security requirements. Addressing vulnerabilities identified by the organization's scanning process will require a case-by-case approach. This might involve upgrading versions for certain libraries or implementing measures to mitigate scan defects by the organization or the System Integrator (SI).
Here are some insights and observations to consider for teams interested in using BluAge, which are crucial for planning and estimation:
Navigating today's complex application landscape, particularly when considering legacy code migration to the cloud, presents many challenges. However, success in this endeavor hinges upon meticulous planning and a robust strategy, informed by a deep understanding of these challenges. Leveraging code conversion tools can be an effective strategy for swiftly transitioning to the cloud, capitalizing on cost containment and the scalability and flexibility offered by cloud infrastructure. Nevertheless, integrating the considerations outlined in this document into migration planning is essential for formulating a well-informed strategy and minimizing the risk of failure. The modern tool like BluAge is remarkably effective in code conversion. However, question remains about the tools to be used while undertaking the conversion journey. There is no straight forward answer to this question as it depends on multitude of factors like Organization’s intention for instance, does it like to move to Java from Mainframe code or want to continue to use legacy code but on cloud, skilled resource availability to maintain the code on cloud etc.
To keep yourself updated on the latest technology and industry trends subscribe to the Infosys Knowledge Institute's publications
Count me in!