AWS Cloud Operations Blog
Demystifying mainframe technical debt and unlocking value of core application modernization
Although mainframe platforms still release new capabilities, customers are dealing with core-business application stacks that have accumulated substantial technical debt over decades. Applications use outdated technical components, interfaces, patterns, and data formats. This technical debt is the main factor causing negative impacts on release cycles, maintenance costs, and business outcomes. This critical issue can be mitigated by modernization efforts on the mainframe application. In this blog post, we describe this technical debt, related challenges, and application modernization solutions.
The technical debt described in this post depicts typical characteristics of customers’ mainframe applications and configurations.
Mainframe application technical debt
The following table details the legacy mainframe applications technical debt.
Technical Debt Factor | Cause |
---|---|
1. Tightly coupled components | Mainframe applications are composed of extensive code bases, comprising millions of lines of code, with interdependent programs forming monolithic structures. Development adhered to the Don’t Repeat Yourself (DRY) principle to minimize code redundancy. A similar pattern for data access is observed, where multiple applications access the same table without clear data ownership, which undermines deployment independence. Applications are tightly integrated using transaction manager proprietary interfaces, resulting in strong coupling. They exhibit dependencies on specific platforms or middleware, with static parameters including credentials, Application Identifier (APPID), and IP addresses hardcoded, which limit flexibility. Proprietary APIs and tight integration further constrain applications, impeding adaptability to architectural changes. |
2. Lack of alignment with modern standards | Mainframe applications use proprietary gateways and outdated interfaces such as SNA, and 3270, resulting in non-standard integration with modern distributed systems. This implies changing code, configuration, and installing additional software for REST API enablement. Mainframe applications use proprietary programming languages such as COBOL, PL/I, ASM, DL/I, REXX, JCL, CLIST, and proprietary file formats (VSAM, PS) datasets. Programs are compiled and delivered through non-standard or internal processes. Installation software has unique installation processes and requires specialized skills such as System Modification Program/Extended (SMP/E) skills. |
3. Lack of knowledge | Application code can remain untouched for years or even decades for various reasons. It consistently delivers the business value as expected, relies on backwards compatibility with existing systems, with often no comprehensive modernization plan. It is common to encounter mainframe development practices which have seen limited architectural and code changes since the creation of the application. In addition, the applications rely on proprietary utilities with thousands of parameters that are complex and require strong expertise for effective utilization. These aging code, practices, and complexity make it challenging to manage and maintain mainframe applications, and can make it difficult to find qualified personnel. |
4. Deferred refactoring | Over time, the source code accumulates duplicate code and dead code. The old and overwhelming application code quantity results in a lack of application knowledge, creating risks and difficulties when maintaining and enhancing the system. |
5. Lack of efficient Development tools | 3270 Interactive System Productivity Facility (ISPF) is a software product used in mainframe development environments. The interface is less intuitive than new agile mainframe development tools. Customers need cross-platform integration and unified development experiences to accelerate application modernization, and development team productivity. |
6. Lack of automation | Automation on the mainframe is achieved by using a set of scripts and batch JCL. It is used for application lifecycle tasks such as Initial Program Load (IPL), application restart, facilitating high availability and disaster recovery. Although automation is used around mainframe applications, there is not a unified and standard approach to deliver Infrastructure as Code for mainframes lacking templates describing mainframe subsystem infrastructure resources and configurations. One example is the creation of on-demand testing environments. Testing on the mainframe is often manual and organizations have integrated internal and ad-hoc testing solutions, making it difficult to automate the creation of on-demand and elastic testing environments. |
7. Lack of documentation | As the mainframe applications have been developed over many years, important code and architectural details are not documented or deprecated or lost over time. |
8. Lack of collaboration | Mainframe application development, testing, and deployment teams operate in silos. This segregation hinders effective communication, knowledge sharing, and collaboration throughout the application lifecycle. The lack of coordination leads to inefficiencies and delays. While there have been efforts to improve the mainframe development speed or improve the DevOps toolchain integration, modern tools are not widely adopted. They are continuously challenged by the mainframe integration and legacy processes that are blockers for collaboration. |
9. Lack of visibility and control | Many mainframe systems are outsourced, with infrastructure and application maintenance handled by third-party vendors, managed service providers, or global system integrators. Teams operating the mainframe environments are often siloed (databases, storage, operations, security, and performance) with no overall ownership. This results in limited visibility into spending, observability, and end-to-end system control. |
10. Lack of sustainability | C-levels are limited in self-service tools to re-architect or optimize applications according to carbon emissions. |
When searching for mainframe modernization vendors and strategies, it is important to understand and evaluate how these technical debt challenges are being addressed.
When considering modernization options for mainframe applications, many organizations evaluate a hybrid approach. In this scenario, workloads remain on the mainframe but establish communications with new functions running on the cloud. This is typically achieved by introducing an API solution to expose mainframe transactions, or by replicating mainframe data to the cloud. This approach provides benefits such as reusing the mainframe logic and mainframe data within agile cloud use-cases.
However, it is essential to modernize the mainframe application core to reduce technical debt. The core elements encompass the application architecture, source code, data formats, and interfaces but also extend to the software stack integration, tools, development processes, and operational practices. This holistic approach tackling the modernization of the application core delivers short-term benefits such as standards, testing at scale, skills upgrade, and reduced operating costs. It fosters long-term agility, innovation, and cost savings for the core business functions and data embedded in the programs and formats.
AWS approach for modernizing mainframe applications
AWS released the AWS Mainframe Modernization service in 2021 to address the need of resolving the mainframe technical debt. AWS Mainframe Modernization is a purpose-built service with pre-packaged fully-managed sustainable cloud-native environments for mainframe application modernization and execution. It provides elastic environments, proven toolchains, automation, built-in resilience, pay-as-you-go pricing, and support from dedicated global team. (cf. figure 1).
AWS Mainframe Modernization service supports the following capabilities (mentioned technical debt dimensions are addressed in details in the next section):
- Automated Refactoring pattern: Automate transforming legacy language applications into agile Java-based services with AWS Blu Age toolchain using web frameworks and DevOps best practices. Minimize the technical debt on numerous dimensions for strategic transformation.
- Replatforming pattern: Migrate COBOL and PL/I applications utilizing the integrated Micro Focus or NTT DATA toolchains. This preserves the programming language while modernizing infrastructure and processes for agility with cloud DevOps native operations. Reduce the technical debt on numerous dimensions for strategic transformation.
- Application Testing: Automate the functional equivalence validation of modernized mainframe applications with a scalable cloud-native service, accelerating modernization testing timelines and reducing costs. Reduce the technical debt on specific development dimensions for strategic transformation.
- Augmentation patterns: Enable tactical modernizations leveraging AWS Mainframe Modernization Data Replication with Precisely, and AWS Mainframe Modernization File Transfer with BMC. Reduce the technical debt on specific dimensions for strategic data migration.
Figure 1 – AWS Mainframe Modernization is an AWS Cloud native service for modernizing, migrating, testing, and running mainframe applications.
AWS provides proven toolchains and methodology to modernize mainframe workloads based on the chosen pattern with AWS Mainframe Modernization service. Industry Services Group, Inc (ISG) recognized AWS as a Leader for Mainframe Application Modernization Software, placing AWS as the highest position for portfolio attractiveness.
Reducing technical debt at scale with AWS
The following table describes how the AWS patterns reduce mainframe workloads technical debt during a modernization project with AWS Mainframe Modernization service.
Modernization | Technical Debt Reduction |
---|---|
1. Loosely coupled components | An application refactored with AWS Blu Insights Transformation Center results into agile services such as macroservices or microservices. The workload is decomposed into business domains and also decoupled into a 3-tier architecture (user interface, application, and data layers). A replatformed application with Micro Focus and NTT DATA is decoupled into a 2-tier architecture (user interface/application, and data layers). Modernized refactor or replatform workloads are independently deployed in a multi-tier architecture across elastic compute and database services in multiple AWS Availability Zones, and Regions. It removes affinities between components and improves resiliency with a focus on overall application availability. |
2. Alignment to modern standards | By modernizing mainframe applications with the refactor pattern, organizations modernize mainframe programming languages, and benefit from popular technologies with a larger skills pool. AWS Blu Age Refactor creates via an automated process modern applications from mainframe source code. Applications in COBOL, PL/1 or NATURAL are transformed into modern distributed applications relying on Angular and Java/Spring. Standard interfaces such as REST/JSON APIs are created during the automated refactoring to Java. By modernizing mainframe data structures (Db2 for z/OS, VSAM, IMS, IDMS), organizations adopt modern relational database and standard file systems. |
3. Elevated knowledge | Analyzer tools such as AWS Blu Insights and Micro Focus Enterprise Analyzer are comprehensive analysis tools built to provide in-depth application understanding. The reports and graphs provide visual representations to development teams increasing developers confidence for understanding the impact of application changes. |
4. Modernized code and stack | Once modernized with AWS, the application stack benefits from AWS cloud-native fully managed services. It removes the heavy-lifting of configuring and managing infrastructure resources. For example, refactored applications run on AWS Mainframe Modernization fully-managed runtime environments. Modernized relational database runs on PostgreSQL or other managed databases such as Amazon Aurora, Amazon RDS for PostgreSQL, Oracle database, IBM Db2. File systems run on managed Amazon Elastic File System or Amazon FSx. |
5. Efficient Development tools | For applications modernized with AWS Mainframe Modernization toolchains (AWS Blu Age, Micro Focus, NTT DATA), Integrated Development Environments (IDEs) are available for code development including smart editing, local build, unit testing, and debugging features. AWS CLI, SDK, and CDK play complementary roles in the development lifecycle providing the developer tools to build, deploy, and manage applications on the AWS Cloud efficiently. The IDEs toolkit has been strengthened with a generative AI–powered conversational assistant (Amazon Q), an AI Powered productivity tool (Amazon CodeWhisperer). Developers receive code suggestions or ask questions about building software directly from the IDE. |
6. Comprehensive automation | Serverless and cloud-native fully-managed services provide higher-level simplified APIs so that administrators don’t have to deal with the undifferentiated heavy lifting. These higher-level services and APIs are called and orchestrated using infrastructure-as-code, templates, and cloud development kits. It enables developers to focus more on building and improving applications rather than managing infrastructure manually. Infrastructure-as-code allows managing, provisioning, and operating infrastructure components using definitions, templates, or code. Infrastructure-as-code provides automation, consistency, and traceability. It also avoids configuration drift. It’s a fundamental building block for supporting DevOps and SysOps pipelines and operations at scale. AWS CloudFormation provides a powerful and scalable way to manage and provision AWS infrastructure. With AWS CloudFormation, you use a declarative syntax in simple text files called templates. These templates model all the infrastructure resources and configuration you need. Similar to application code, infrastructure as code is maintainable and versioned in repositories. The surrounding services and processes introducing DevOps and SysOps at scale are also modernized with Infrastructure as Code. This is facilitated with the large choice of fully managed services for continuous integration, testing, and continuous deployment such as AWS CodePipeline. |
7. Enhanced documentation | Discoveries for both automated refactor (AWS Blu Insights) and replatform (Micro Focus Enterprise Analyzer) generate applications analysis, complexity and interdependencies reports. It gives more confidence to technical leaders and developers, to make faster changes. Transformed and refactored applications to Java is documented with a generated Javadoc for technical documentation. |
8. Stronger collaboration | By modernizing processes with DevOps, SysOps, and enforced by a Cloud Center of Excellence, teams remove silos and increase processes observability for better knowledge sharing. This improves collaboration on projects to deliver on time, meeting organizations standards. Modernizing mainframe data onto AWS and leveraging cloud-native services create new opportunities to unleash collaboration with data analytics, and AI teams to address new business requirements. |
9. Improved Control and Visibility | AWS Mainframe Modernization managed service removes the burden of managing mainframe infrastructure and enables organizations to focus on innovating and building new capabilities. Customers have control over their AWS infrastructure with a range of services fostering observability with Amazon CloudWatch, and Security, Identity, and Compliance services. Pay-as-you-go elastic pricing and no upfront or termination fee facilitate a low cost of entry and faster experiments for migration and innovation. In addition, you can select committed plans for additional savings. AWS Cost Management tools provide visibility into spending and forecasting across business lines. |
10. Sustainability tools | AWS Billing offers features to track, measure, review, and forecast the carbon emissions generated from your AWS usage using the AWS Customer Carbon Footprint Tool. Opportunities to rearchitect any migrated workloads according to organization’s sustainability objectives may be considered. AWS provides guidance thanks to AWS Well-Architected Framework – Sustainability pillar. |
Go modernize
Mainframe applications inherently carry technical debt, which needs to be reduced by organizations aiming to achieve their business and IT objectives. Modernization patterns can be either tactical or strategic. AWS Mainframe Modernization service enables modernization for application core assets and data, reducing technical debt at scale. The automated tools, the prescriptive methodology, and the fully managed runtime environments accelerate strategic core modernization value while providing resiliency and mitigating risks.
We invite you to start your modernization journey today and evaluate AWS Mainframe Modernization service for addressing core technical debt at scale. Feel free to contact an AWS mainframe specialist and we will be glad to assist you in achieving your modernization goals.
About the authors: