
AWS Blu Age modernization projects use a test case approach based on customer inputs to validate the functional equivalence of modernized Java code. The number of test cases ranges from hundreds to thousands, depending on the project size. They are then integrated into a Regression Testing suite for regular replay. Processing test cases is crucial but can be time-consuming or costly due to repetitive data handling.
A test case involves database dumps before and after test execution to compare results. Different development workflows may involve separate teams for data migration, code transformation, test case setup, and debugging. Database restorations are essential but time-consuming, often taking hours for large projects.
Regression Testing Snapshot (RTS) allows team member to easily create snapshots, restore snapshots, and also create DB instances or delete them. RTS has a simple user interface (UI) and API. RTS can manage RDS database for development or database on EC2.
AWS Blu Age RTS is targeted for customers engaged in AWS Blu Age modernization project. The goal is to provide a tool that can be installed in AWS customer accounts and used by partners or customer’s delivery teams. This tool is a component of the development environment called AWS Blu Age Standard Delivery Environment, see AWS Blu Age Standard Delivery Environment (SDE).
RTS relies heavily on AWS services, it uses AWS meta-data such as tags and takes its configuration from SSM Parameter Store. It is a 2 tier application, with a Single Page Application implemented with React and a back end implemented with nodejs, EpxressJS, open-api, AWS SDK & Amplify/Cognito.

Redis used as a lock mechanism and also to keep track of restoration time, version 6.2.14
RTS is not intended for public access and by default accessible to all developers/testers/managers with access privilege to the VPC/subnet. Application Load Balancer is restricted to subnet mask IP.

For RDS, RTS holds a set of predefined parameters to create instances.
RTS has 5 main use cases around database host creation, data restoration, host termination, snapshot creation, and deletion. Furthermore, it is also possible to edit and push or modify configuration, allowing users to add or remove DB technologies or RDS configuration.
Some use cases are trivial, and do not have a model representation:
DB Host (EC2/RDS) edition. It allows user to change the tag “Name” or edit the instance type (i.e. t2.micro > t3.medium or db.t3.micro > db.t3.medium). Instance type change sends notification to slack or Chime
In this workflow user can create a DB instance with an empty volume. The system DB is initialized by the DB engine.

Send notification on slack (using workflow) or Chime (This is optional)
In this workflow, the user creates an RDS instance in development mode.
Restoration workflow with EC2/Docker
In this workflow, the user restore a DB by restoring.
Check docker health, it checks the healthy status of the container.

Optional - Send notification on Slack and or Chime