Pairing infrastructure as code with automated deployment pipelines enabled frictionless control of ephemeral cloud environments that can be deployed and destroyed as needed with the click of a button. Each parallel environment was built using the same IaC with environment specific configuration which deployed into multiple AWS accounts. This provided segregation across environments, making each environment mutually exclusive and tunable from one another to allow for code promotion and security best practices.
To deploy the infrastructure, a robust deployment pipeline was designed using a layered approach, allowing layers to be built in dependency order as well as destroyed in reverse order. The layer segregation enabled concurrent development of multiple layers while reducing deployment times. In the fully automated deployment pipeline a new environment can be built in less than 45 minutes. The pipeline supports validation and stage gates for human approvals before deploying to production environments, ensuring the right code is deployed to the right environment with minimal risk to business operations.
The ability to manage ephemeral environments via automated pipeline contains cloud spend when an environment is not needed. Each environment can be destroyed, and then later redeployed to continue development. This enables the creation and usage of temporary environments for things such as performance testing, which must be scaled like production and can be costly to keep running. This also allows for environments to be taken down in the offseason when races are not occurring.
The solution was delivered to NASCAR and the competition applications are being integrated and tested in the cloud environments over the 2023 and 2024 seasons.