Ephemeral Environments
Temporary deployments that have self-contained versions of your application, generally every feature branch
How do databases work in ephemeral environments?
Prepopulated data - it contains representative, anonymized data - to pass security audits, all Personally-Identifiable Information must be scrubbed from databases to be used in such envs
Undoable - if data is deleted or modified, it should be easy to reset the database to its original state
Migrated - Database uses the schema currently used in PROD and has proposed migrations run against it
On of the most common cases of problems uncovered by ephemeral environments are broken or non-preformat database migrations
Ephemeral environments lifecycle management:
Option A: tie the lifecycle to the life of a pull request or merge request
Option B: Create a ChatOps bot that allows creating a new environment for a specific branch with a small timeout
Option C: Create an ephemeral environment for every commit, and hibernate them the second they are provisioned, then wake them up as they are required
DYI ephemeral environments:
Budget 6-12 months of engineering time for setup, then dedicated person for managing these envs
Will need clould service provider
Create slackbot that responds to
/env-create-for-mybrach <link>
Last updated