Cloud Environments - CDCgov/prime-simplereport GitHub Wiki

Intro

SimpleReport is spread across multiple environments for the purposes of development, testing, demonstration, and production purposes. Some are deployed to automatically as part of our pipeline when code is merged to main, while others require manual updates and are considered "volatile".

Cloud Environments Overview

Name Frontend API Deployment Intended Use
prod /app/static/commit.txt /api/actuator/info Dispatched on success of stg deploy Used by end users
demo /app/static/commit.txt /api/actuator/info Worflow on success of stg deploy Used internally to demo the application to potential end users
training /app/static/commit.txt /api/actuator/info Dispatched on success of stg deploy Used externally by potential users to get a better understanding of the product
stg /app/static/commit.txt /api/actuator/info Push to main To validate the application work in the cloud and works with prod like data
dev /app/static/commit.txt /api/actuator/info Action Development testing/PR validation before merging to main
dev2 /app/static/commit.txt /api/actuator/info Action Development testing/PR validation before merging to main
dev3 /app/static/commit.txt /api/actuator/info Action Development testing/PR validation before merging to main
dev4 /app/static/commit.txt /api/actuator/info Action Development testing/PR validation before merging to main
dev5 /app/static/commit.txt /api/actuator/info Action Development testing/PR validation before merging to main
dev6 /app/static/commit.txt /api/actuator/info Action Development testing/PR validation before merging to main
test /app/static/commit.txt /api/actuator/info Push to main Automated testing agsinst main (e2e/load)
pentest /app/static/commit.txt /api/actuator/info Action Penetration testing (no alerting enabled)

The url for each environment follows the pattern {env}.simplereport.gov/app.

Development Environments

Name:

  • dev
  • dev2
  • dev3
  • dev4
  • dev5
  • dev6

Update Strategy: These environments are updated on-demand with GitHub Actions. They should not be relied upon to be in sync with main.

Intended Use: Developers should use these environments to test enhancements and bug fixes and to verify deployment behavior in a cloud environment. This environment's data is volatile and should not be relied upon for feature testing or demonstration.

Testing Environments

Name: test

Update Strategy: This environment is automatically updated on a push to main.

Intended Use: Used for automated end-to-end and load testing. This environment's data is volatile and should not be relied upon for feature testing or demonstration.

Name: pentest

Update Strategy: This environment is updated on-demand with GitHub Actions. It should not be relied upon to be in sync with main.

Intended Use: Used for security and penetration testing, including by automated toolsets. Alerting is disabled in this environment to facilitate testing. This environment's data is volatile and should not be relied upon for feature testing or demonstration.

Training/Demonstration Environments

Name: training

Update Strategy: This environment is automatically updated on a push to main, contingent on a successful automated deployment to stg.

Intended Use: Used externally by potential and onboarding users to better understand the product. This environment's data is ephemeral; the database is wiped and re-seeded every 24 hours.

Name: demo

Update Strategy: This environment is automatically updated on a push to main, contingent on a successful automated deployment to stg.

Intended Use: Used externally by product managers, support staff, and other personnel to demonstrate the production version of the application to potential end users.

Pre-Production Environments

Name: stg

Update Strategy: This environment is automatically updated on a push to main.

Intended Use Used as a validation gate for code, deployment, and infrastructure changes on a prod-like environment before new code from main is rolled to active demonstration/production environments. A failure to deploy to stg blocks deployments downstream to demo, training, and prod.

Production Environments

Name: prod

Update Strategy: This environment is automatically updated on a push to main, contingent on a successful automated deployment to stg.

Intended Use: Used for live data collection and processing by end users. This is the SimpleReport.