Migrating AWS Card to STACKIT
Introduction
To illustrate Heirloom’s capabilities, we migrated AWS Card—an open-source COBOL/CICS/JCL/VSAM mainframe application that processes financial transactions, to the STACKIT cloud platform.
This demonstration is a simple but powerful illustration of the potential for even the most entrenched legacy systems to thrive in sovereign cloud environments.
The Challenge
The AWS Card open-source application represents a typical mainframe workload with:
- COBOL-based business logic
- CICS for online transaction processing
- JCL for batch processing
- VSAM data storage
The Heirloom Solution
Using Heirloom, this open-source mainframe application was transformed into a cloud-native solution deployed on STACKIT’s Cloud Foundry runtime with PostgreSQL as the database layer:
- Automatic Code Conversion — The COBOL programs were automatically transpiled (without any changes) to Java source while preserving business logic integrity.
- CICS Emulation — Heirloom’s Java framework recreated the CICS environment in the cloud, allowing seamless operation.
- Data Migration — VSAM data structures were mapped to PostgreSQL tables, ensuring efficient data storage, management, and retrieval.
- CI/CD Integration Potential — The application can be easily integrated into modern DevOps pipelines for continuous deployment.
Technical Implementation: Architects’ Guide
For technical architects interested in the high-level implementation details, here’s an overview of how the AWS Card application was deployed to the STACKIT sovereign cloud platform.
Cloud Foundry Configuration
Once we have created a Java application package card.war, the next step is to configure the target infrastructure on the STACKIT cloud. The application environment was configured using a standard manifest.yml file to describe the Cloud Foundry runtime:
applications:
- name: card-app
memory: 2G
instances: 1
path: card.war
buildpacks:
- java_buildpack
env:
JBP_CONFIG_OPEN_JDK_JRE: '{ jre: { version: 17.+ } }'
JBP_CONFIG_TOMCAT: '{ tomcat: { version: 9.0.+ } }'
JBP_CONFIG_DEBUG: '{enabled: true}'
timeout: 180
STACKIT Cloud Foundry Deployment Steps & Application Execution
Deploying the application to the STACKIT Cloud Foundry environment was very straightforward:
$ cf push heirloom-demos -p card.war
As soon as the application is deployed, we can execute it (and until we shut down the instance, you can too):
https://heirloom-demos.apps.01.cf.eu01.stackit.cloud/servlet
USER ID: USER0001
PASSWORD: PASSWORD
This is what the menu item “06. Transaction List” looks like:
