Automatic Rollbacks
Automatic rollbacks are mechanisms within the deployment process that revert an application to a previous stable version upon detection of errors or significant performance degradation after a new release.
Goal
The goal is to minimise downtime and impact on users by quickly addressing deployment issues, ensuring the application remains stable and available.
Context
Our goal is to get new features into the hands of customers as quickly as possible so that we can validate if the features are solving the customer's problems. Mistakes will happen but instead of introducing a blocking testing or deployment step, we should focus on the speed of recovery when things go wrong. This allows us to keep up the speed that we need while also keeping the system stable and reliable.
Inputs
Artifact | Description | Benefits |
---|---|---|
Monitoring Metrics | Data points collected from the application, providing insights into performance, usage, and behaviour. | |
Service Level Objectives (SLOs) | Agreed-upon performance and reliability targets for the service. |
Outputs
Artifact | Description | Benefits |
---|---|---|
Stable Application State | Confidence in the application's reliability and availability, minimising user impact. | Reduced Downtime |
Anti-patterns
- Over-reliance on Rollbacks: Depending too much on rollbacks instead of addressing underlying issues in the deployment pipeline.
- Poor Rollback Coverage: Not having rollbacks in place for all critical components, leaving parts of the system vulnerable.