0% found this document useful (0 votes)
163 views45 pages

c09 Aws Blu Age Custom Architecture 2405

The document outlines the AWS Blu Age Assessment and Custom Architecture, focusing on modernization goals such as maintaining functionality and improving code quality. It details the AWS Blu Age workflow, custom code architecture, and runtime library, emphasizing the transformation of legacy code to modern Java applications. Additionally, it discusses the integration of various databases and the deployment topologies for AWS Mainframe Modernization services, targeting solution architects and application developers.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
163 views45 pages

c09 Aws Blu Age Custom Architecture 2405

The document outlines the AWS Blu Age Assessment and Custom Architecture, focusing on modernization goals such as maintaining functionality and improving code quality. It details the AWS Blu Age workflow, custom code architecture, and runtime library, emphasizing the transformation of legacy code to modern Java applications. Additionally, it discusses the integration of various databases and the deployment topologies for AWS Mainframe Modernization services, targeting solution architects and application developers.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 45

AWS Blu Age Assessment

AWS Blu Age Custom Architecture

L2 - Course 09

© 2024,
2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Important
Please note that all materials (including the presentation deck) are AWS Content subject to the terms of the AWS
Agreement (https://aws.amazon.com/agreement/) or other agreement with AWS governing your use of AWS
services. All materials are Amazon Confidential Information and are shared with you under the applicable non-
disclosure agreement. In addition to normal confidentiality requirements, you may not allow anyone who is not
participating in the AWS Blu Age T3 session to access the materials.

Also, some of the contents have been prepared using the CardDemo application which is an open-source application
(https://github.com/aws-samples/aws-mainframe-modernization-carddemo/). Please read and respect the license
Apache License 2 that manages it.

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
AWS Blu Age T3 - Section d25h1505

Custom code architecture

Sylvain EVEILLARD
Senior Software Dev Engineer, AWS Blu Age,
AWS Mainframe Modernization
AWS

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Custom code architecture

 Modernization Goals:
 Absolute first requirement: Like for like functionality

 And then: Code quality

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
AWS Blu Age Workflow / Transformation
BLU AGE MODERN

Added Busines Value

[refactored] GENERATE
JAVA / Spring Boot
DSLs ANGULAR / TypeScript
JSON
Generic code
refactorings on
the shelf

REFACTOR Specific
LEGACY BLU AGE
project code Benefits:
refactorings • Agile cycles
COBOL, PL/1, RPG, CL, • Horizontal scalability
• Shorter time to golive
BMS, MFS, DSPF, PRTF, TRANSFORM [transformed] • Automated regression tests
JCL, PROC, CTL, • Easier impact analysis
COPYBOOK, PF, LF, JF, DSLs • DevOps pipeline
• Cloud-native app
DDL, SQL, JSON • Cloud services
CSD, LISTCAT, DBD, BTG, …
Time

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Custom code architecture

 Generate:
 Based on templates available in cartridges
 New cartridges could be added
 For example: JCL
 Default cartridge: Groovy script
 Alternate cartridge: Java Spring Batch

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Custom code architecture

 Alternative cartridges that could be created:


 New Front End technology
 Other Java frameworks
 Adapt to Java « specificities »
 Specific Javadoc rules
 Use new Java constructs
 Etc.
 Another JVM language

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Custom code architecture

 Things that are not possible:


 Language not running on the JVM (would need to rewrite the
whole GapWalk library)
 Remove or change the usage of the core APIs:
 POJO instead of Data Simplifier Entities
 Custom method signatures
 Direct program invocations through Spring beans

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
AWS Blu Age Runtime library
• Java transaction manager • API to replace VSAM and GDG data access (seq, indexed, seq indexed)
• Replaces CICS and IMS MFS • 3 modes: embedded in app, server, distributed server
• XA support both as a resource and for coordinating internal transactions • Main features: Optimized & externalized indexes to reproduce all legacy
• Programs, Run Unit and CICS Task/Transactions have REST & JAX-RS file data access but with Database, Sub millisecond access, Manage
interfaces polymorphism, Write-Behind, Admin api/gui for data migration, data load,
• Batch & Transactions may be deployed on distributed architecture on any of cache loading, data compression
the following compute: AWS EC2, AWS ECS, AWS EKS, AWS Lambda, Docker • Backend for caching: AWS Elasticache, Redis, Ehcache, etc.
& K8 on premise, VM & Physical hosts • Backend for data store: AWS Aurora, AWS RDS, Any RDBMS on cloud VM,
• Backend: Spring Boot & Spring Cassandra, etc.

BluSAM
JICS
AWS Blu Age Runtime library Gapwalk application
Data Simplifier
• User session management & screen
choreography
• API to replace former Legacy record structure JHDB Batch utils
• Session saved in distributed cache for
with Java OO stateless deployment
• Eliminate all side effect and data aliasing of • API to replace Hierarchical • SORT, SYNCSORT, • Distributed cache for statelessness:
mainframe in-memory data types databases such as IMS DB AWS Elasticache, REDIS
... Utilities to
• Removes Redefines, Level 77, Level 88, etc. • Schema and data mimic mainframe • App screen: SPA application (Angular),
• Java Fluent API to use synthetic getter and transformation utilities found in can be deployed on AWS Cloudfront
setter • Backend database: Aurora batch
(PostgreSQL mode), any AWS
RDS, Any other RDBMS
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
9
Blu Age Gapwalk
Gapwalk is the internal name of AWS Blu Age Gapwalk
Gapwalk application is in charge of transactions choreography (dynamic behavior) and user sessions. It’s
a library containing all roadblocks solutions to reach functional equivalence when patterns does not
exist in Java natively

BluAge Gapwalk BluAge JICS

Shared JICS Context


SpringBoot RestController JICS DB
Transaction-Runner ExecutionController
& LinkBuilder

Transaction-message

Json params
(Transaction-ID &
Transaction Java
Transaction Java Service
Transaction-message) Transaction JavaProgram
Program

Server container

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
AWS Blu Age Runtime endpoints
End point Description

gapwalk-application/ Display gapwalk application status


gapwalk-application/programs Displays the register program list
gapwalk-application/scripts Displays the register groovy scripts list
gapwalk-application/triggerscripts Displays the register triggered scripts list
gapwalk-application/triggeredscripts/{status:.+} List Triggered scripts, possibly filtering on status and name.Z
gapwalk-application/killablescripts Displays the register Killable scripts list
gapwalk-application/kill/{identifier:.+} Kill triggered script execution.
gapwalk-application/services Displays buckloads services
gapwalk-application/script/{scriptId:.+} Execute groovy in an "headless" (no frontend terminal) environment
Execute groovy in an "headless" (no frontend terminal) environment, * immediately returning after script
gapwalk-application/triggerscript/{scriptId:.+} launch
gapwalk-application/post/script/{scriptId:.+} Exec groovy post.
gapwalk-application/getuserinfo Gets the user info.
gapwalk-application/setuserinfo Sets the user info.
gapwalk-application/service/{serviceId:.+} Exec service.
gapwalk-application/program/{programId:.+} Exec "stateless" program, providing its linkage input.
gapwalk-application/utils/forcedate/{date} Force date and freeze it
gapwalk-application/utils/forcedate/{date}/{frozen} Force date and frozen mode
gapwalk-application/utils/resetdate Reset date.
gapwalk-application/transactions Displays the register transactions list
gapwalk-application/jicstransrunner/{jtrans:.+} Exec jics transaction with ABEND mode.
gapwalk-application/jicstransaction/{jtrans:.+} Exec jics transaction without ABEND mode.
gapwalk-application/transaction The main entry point for executing "transactions" launched from the gapwalk-web frontend.
gapwalk-application/restarts List retarts point
gapwalk-application/restart/{hashcode} Restart from a checkpoint
gapwalk-application/triggerrestart/{hashcode} Restart from a checkpoint (trigger mode).
gapwalk-
application/settriggerthreadlimit/{threadlimit:.+} Sets thread limit for triggering scripts.
gapwalk-application/countrunningtriggeredscripts Count running triggered scripts.
gapwalk-application/purgejobinformation/{age:.+} Purge job information.

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Blu Age Gapwalk
Two different implementations natively supported

• Non-conversational or pseudo conversational case (e.g. CICS)


• Only http sessions need to be saved in cache to achieve statelessness
• Native horizontal scaling: scaling triggering delegated to underlying compute platform
Done by Gapwalk in Redis
Does not require sticky session to scale horizontally

• Conversational case (e.g. iSeries)


• Execution flow remains blocked on the line of code waiting for an answer
• Replicated by serializing all of the thread context
However Java does not support Coroutine as of today: see Continuations and Tail-Calls for the JVM.
• Only the application data can be serialized but not the stack of the underlying threads in the JVM
• Horizontal scaling is native and delegated to underlying compute platform
Requires session stickiness: defined on ALB for instance

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Blu Age JICS

JICS is implemented in Java and Atomikos


• Exposes former transactions with REST APIs
• Exposes batch jobs with REST APIs
• Locally transactions and batch can be called directly using regular Java mechanism
JICS is a Transaction Manager
• Supports XA resources for JICS deployed transactions and as an XA resources
JICS replaces
• CICS and BMS
• IMS MFS
• AS/400 transactions and DSPF
• And locally replaces in-house frameworks

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Blu Age Velocity - JICS Administration Console (JAC)

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Blu Age generated Java application integration
MQ are preserved, Blu Age Velocity supports the CTG
following: Existing application making use of CTG
Protocol level compliance Replace façade/interface/factory with new
IBM MQ implementation
JMS Only the façade requires to be updated in
the customer code
REST with protocol level compliance Replaced by JICS (preserves both common and
Regular REST APIs working areas)
JAX-RS for 2PC
New service orchestration based on REST
(and other integration patterns such as
JMS) to target Microservices

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Java Hierarchical DB (JHDB)

JHDB is an API replacing hierarchical database access with a relational or a graph database, it
replaces databases such as IMS DB
• Support for access type: HSAM, SHSAM, HISAM, SHISAM, HDAM, HIDAM, MSDB, DEDB, GSAM
• Support of all access mode: GU, GN, GNP, ISRT, etc.
API for
• Schema
• Data transformation
• Data navigation and modification
Backend database Graph implementation
• RDBMS: API implemented with SQL CTE (Common Table Expression)
Orient DB
• Graph database: API implemented with Tinkerpop Gremlin
Janus Graph

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Blu Age Data Simplifier

Blu Age Data Simplifier is an API which replaces former data definition with regular Java OO
• Data polymorphism to OO
• Eliminate aliasing
• Redefine removals
• Levels 77, 88, etc. removals
• All data side effects: padding, etc.
• Fixed point accuracy computation
• COMPs
• Low/high values, etc.
• EBCDIC to Unicode
• More: all mainframe specific data behavior
• Fluent API for data navigation

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Boundary effects: data aliasing (in-memory overwrite)

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
AWS Blu Age Gapwalk: nested/distributed transactions

Blu Age JICS

Server
Sub-transaction as XA
resources
Inbound Blu Age JICS exposed as XA Blu Age XA
client-side resource at the granularity coordinator
IBM MQ classes for JMS
transaction of the service transaction Modernized Extended Transactional
application program (XA) Clients
into Java
Q as XA resources, bufferize
then fire (commit) or forget
(rollback)

DB as XA resources

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
AWS Blu Age Gapwalk: nested/distributed transactions

Blu Age JICS


DB as XA resources
Blu Age XA
coordinator Sub-transaction as XA
resources
Blu Age JICS as
an XA resource
MQ as XA resources Modernized
application
Blu Age XA program into Java Q as XA resources,
coordinato bufferize then fire
Server
r (commit) or forget
(rollback)
Client app
coordinating
resources
DB as XA resources
MQ as XA resources

DB as XA resources

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Databases

 Source databases:
 Hierarchical (IMS)
 Inverted Index (Datacom, ADABAS, DB2 iSeries)
 Codasyl (IDMS, Oracle Codasyl, IDS)
 DB2 zOS

 Target databases:
 Any RDBMS (PostGres by default)

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
AWS Blu Age T3 - Section d25h1605 - Custom architecture

Target Cloud Architecture for the Mainframe


Modernization custom
Yann Kindelberger
Specialist Solutions Architect,
AWS WWSO Mainframe Modernization
AWS

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Custom Architecture
AWS Blu Age T3 - Section d25h1605 - Custom architecture

Overview
In this session, you will learn what are the various possible deployment topologies of the
AWS Mainframe Modernization Service custom runtime and database server.

Performance objective
Trainee is able to design a target architecture on AWS of the AWS Mainframe
Modernization Service custom runtime and its database server.

Target audience
Solution Architect, Application Developer, Engagement Manager

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
AWS Mainframe Modernization service offerings

AWS Mainframe Modernization AWS Mainframe Modernization


Service Managed offering Service Custom offering
AWS Cloud native – More automation – Available publicly Fully configurable – More flexibility – Available privately

Delivered via AWS Console:


• AWS M2 BluInsights
Delivered via Blu Age ProServe:
• AWS M2 Developer for Blu Age
• AWS M2 Build Tools for Blu Age
• AWS M2 Build Tools for Blu Age
• AWS M2 Blu Age Runtime Anywhere
• AWS M2 CI/CD pipeline for Blu Age
• AWS M2 Blu Age Managed Runtime

AWS M2 supports all capabilities provided by Blu Age


The pricing model is aligned between M2 Managed and M2 Custom offerings
AWS M2 service team and customer success team provide Managed vs Custom deployment guidance

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Mainframe Modernization Service Custom vs Managed (1/2)

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Mainframe Modernization Service Custom vs Managed (2/2)

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Standard deployment topology

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Multi applications in standard deployment topology

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Multi application server deployment topology

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Split front-end & back-end deployment topology

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Database server deployment topology

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Application deployment topology – Collocation of front-end and back-end

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Application deployment topology – Split of front-end and back-end

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Compute deployment topology – EC2

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Compute deployment topology – ECS

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Compute deployment topology – EKS

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Compute deployment topology – Red Hat OpenShift

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
AWS Blu Age T3 – Section d25h1630 - Custom architecture

Custom architecture - Demo

Kevin Yung
Principal Solution Architect Mainframe Modernization,
AWS WWSO Mainframe Modernization
AWS

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Custom architecture - Demo
AWS Blu Age T3 – Section d25h1630 - Custom architecture

Overview
In this demo session, you will see a real world customer POC using AWS mainframe
modernisation custom architecture. Introduce the common use cases of M2 custom
architecture and their varieties.

Performance objective
Trainee is able to evaluate the choices of custom architecture, based on customer’s
requirement to design a custom architecture on AWS.

Target audience
Solution Architect, Application Developer, Engagement Manager, QA / Senior Assistance

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Customer Requirements

• Hands-on test, debug and troubleshoot


Blu Age Application  Access to OS level
• Automation to achieve zero-downtime
 Third party tool integrations
(e.g. BlueGreen Deployment)
• AWS Mainframe Modernisation Service is  Advanced automation

not in the region yet  Service not in region


• Third party software integrations (e.g.
scheduler, printing, output management)

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Debugging in Amazon EC2
• Access Amazon EC2 from AWS console

• Debug Blu Age application through Amazon System Manager console

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Automate deployment using AWS CodePipeline
• AWS CodePipeline to automate Blu Age application release process

• AWS CodeDeploy to automate zero-down


time deployment

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Amazon Aurora Database
• Migrate data to Amazon Aurora PostgreSQL database using Blu Age modernized
database scripts

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
AWS Blu Age on EC2 Architecture Design
AWS Cloud
Availability Zone 1 Availability Zone 2 Availability Zone 3

Virtual Private Cloud (VPC)


4
Execute
Application Blue/Green AWS Services
AWS CodeDeploy Application Load
Packages Configs Deployment Balancer Endpoints
Release
1

(Green) Auto Scaling group


3
Batch Application Batch Application
Prepare Instance Instance
Amazon Simple Storage AWS CodeBuild Blue/Green
Service (Amazon S3) Deployment
(Blue) Auto Scaling group
2 Batch Application Batch Application
Instance Instance

Trigger Pipeline
Deployment Session 5
Manager login
AWS CodePipeline troubleshooting
AWS Systems Manager Amazon Aurora (Multiple-AZs)
IAM Role
Developers
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL
Thank you!

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. CONFIDENTIAL

You might also like