Blue Green Deployments
Since we have a narrowly defined architecture of just stateless Kubernetes deployments, GCP Pub/Sub, and GCP Cloud Functions we follow these blue/green deployment practices for zero-downtime deployments.
Check out our Versions Terraform module!
- Our stateless Kubernetes servers only have one version deployed per project.
These services interact with the
greenversion of our schema and serverless microservices.
- Our schemas and functions are deployed with both the
blueschemas. These deployments are named with their version in Terraform so a versioned schema or function deploy can switch between
bluewith Terraform needing to destroy and recreate the deployment.
- When publishing a new schema, we first deploy it as the
blueversion. Then after the schema and functions have successfully deployed, we then take that same hash map and turn it into the
greenversion, and take the current
greenversion and make it the
blueversion is reserved for rollbacks if needed, and will cease to exist when creating the next versioned
bluedeployment for release.