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:

  1. Automatic Code Conversion — The COBOL programs were automatically transpiled (without any changes) to Java source while preserving business logic integrity.
  2. CICS Emulation — Heirloom’s Java framework recreated the CICS environment in the cloud, allowing seamless operation.
  3. Data Migration — VSAM data structures were mapped to PostgreSQL tables, ensuring efficient data storage, management, and retrieval.
  4. 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: