Cloud

Mainframe Modernization using Bluage

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.

Insights

  • As part of organization digital transformation, legacy platforms modernization have taken one of the prime spots to address drivers such as cost reduction, agility, security and compliance.
  • This white paper examines AWS modernization service and provides reader with information on legacy code migration that they need to put it into practice. The white paper also includes the reference custom development scenarios for integration.

Introduction

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.

Migration challenges using code conversion tools

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:

  • Elimination of the need for lengthy reverse engineering and verification processes, reducing the risk of missing requirements due to human error.
  • Faster and less time-consuming conversion process facilitated by automated tools.
  • Access to pre-tested utility functions, lowering the rate of defects injected during the conversion.
  • Cost-effectiveness in terms of the conversion process.

However, there are also notable disadvantages:

  • The tool converts code as-is, potentially limiting the exploitation of benefits offered by object-oriented languages or modern design frameworks.
  • Auto-conversion will result in identical functionality and user interface as the mainframe, requiring separate efforts for enhancements or process optimizations.
  • Custom-developed utilities must be re-coded using the tool and subjected to extensive testing.
  • Some tools may impose a dependency on proprietary frameworks and libraries, leading to potential vendor lock-in.

A comprehensive testing strategy with planned extensive testing is essential to ensure the success of the migration process.

AWS BluAge

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.

Migration Steps using Code Conversion tool - BluAge

Converting the code using BluAge tool typically involves the following steps:

  • Assessment
  • Calibration
  • Mass Modernization
  • Integration
  • Testing

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:

  • Identify a representative set of programs in advance for this phase.
  • Plan the input, output files, and database snapshots prior to the commencement of the phase.
  • If data masking is necessary to obscure Personally Identifiable Information (PII), this should be planned.

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:

  • Test each job and screen individually for functional equivalence, executing them on the mainframe and comparing the results with the converted code. Only proceed to end-to-end testing once individual testing is complete. Each job or screen should have its own dedicated test data and test cases.
  • Invest in upfront test data preparation, generating production-like test data covering various business scenarios and functionalities. Comprehensive test data is crucial for ensuring functional equivalence between legacy and converted code. This may involve masking multiple days of production data for use in testing.
  • Implement test automation to enhance consistency and efficiency, particularly given the need to test the converted code with different data sets and environments. Automation tools, such as those provided by BluAge, can capture on-screen operations and keystrokes on the mainframe to build automation scripts for exact replay of activities with the same data. Any automation developed should be integrated into continuous integration and continuous deployment (CI/CD) processes to maximize acceleration.
  • Allow sufficient time for the organization's development and testing teams to familiarize themselves with the converted code. Begin with sanity testing of the delivered code before going ahead to functional equivalence testing. This is crucial as the team may require time to understand the code structure and integration, build, and deployment processes. Failure to plan accordingly may result in issues being incorrectly attributed to the conversion process, potentially delaying issue resolution.

Below diagram represents the steps typically taken through the conversion process.

Conversion Process

Disadvantages in the current version

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).

Some points to ponder

Here are some insights and observations to consider for teams interested in using BluAge, which are crucial for planning and estimation:

  • For custom utilities where the source code is unavailable, hand-coding in the target language is necessary. Detailed requirements should be either available or gathered.
  • In cases of missing CICS BMS screen maps, manual development may be needed.
  • Discussion with BluAge upfront is essential for the deployment model of existing Cobol Stored Procedures to avoid back-and-forth and rework.
  • Differences between SpringBoot and JDK versions may need added work, primarily on the BluAge side, to align with client expectations.
  • Identifying entry points for screens is crucial to prevent scope creep, especially when screens are called from multiple places or intermingled with Assembler.
  • Thorough initial analysis is imperative for finding relevant modules (Copybooks, programs, called programs) in scope, as the impact analysis on the BluAge end may not be foolproof.
  • Performance profiling tools such as JProfiler should be available to pinpoint bottlenecks, enabling BluAge to provide effective solutions.
  • The availability of a functioning test environment on Mainframes is essential for simplifying the testing strategy and reducing effort.
  • During the due diligence process, the length of files in bytes (LRECL) needs identification for files where LISTCAT is unavailable, as the framework cannot detect this automatically.

Conclusion

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.

References

Authors

Biplab Mahapatra

Digital Solution Specialist

Manjunath Prasad P. R.

Group Project Manager

Uma Maheswara Rao Donkina Venkata Naga

Principal Consultant

Bhuvaneswari Aruru

Senior Project Manager

Barkha Agrawal (Reviewer)

Delivery Manager