SRE Release Engineering & CI/CD 4 — Questions and Answers
Question 1: What is a 'blue-green deployment' and what problem does it solve?
- A deployment that uses two container orchestrators to balance load
- Maintaining two identical production environments to enable instant, zero-downtime cutover and rollback (Correct answer)
- A color-coded alerting system for deployment failures
- A strategy where blue teams deploy during day and green teams at night
Correct answer: Maintaining two identical production environments to enable instant, zero-downtime cutover and rollback
Blue-green deployments keep two environments so traffic can be instantly switched to the new version and rolled back if needed.
Question 2: In the context of release engineering, what is 'environment parity'?
- Ensuring all environments have equal compute resources
- Keeping development, staging, and production environments as similar as possible to reduce 'works on my machine' issues (Correct answer)
- Matching the number of environments to the number of teams
- Using the same CI server for all environments
Correct answer: Keeping development, staging, and production environments as similar as possible to reduce 'works on my machine' issues
Environment parity minimizes differences between environments so that behavior in staging reliably predicts production behavior.
Question 3: What does 'mean time to restore' (MTTR) measure in the context of deployments?
- Average time to deploy a new release
- Average time to recover service after a deployment-caused outage (Correct answer)
- Average time for a CI build to complete
- Time between successive deployments
Correct answer: Average time to recover service after a deployment-caused outage
MTTR measures how quickly a team can restore service after an incident, including those caused by bad deployments.
Question 4: Which testing type should run in a CI pipeline to catch integration issues between services before deployment?
- Unit tests only
- Manual exploratory testing
- Integration tests that exercise interactions between components (Correct answer)
- User acceptance testing by stakeholders
Correct answer: Integration tests that exercise interactions between components
Integration tests validate that multiple components work correctly together, catching issues unit tests miss.
Question 5: What is 'immutable infrastructure' in the context of release engineering?
- Infrastructure that cannot be scaled horizontally
- Servers or containers that are never modified after deployment; new releases replace rather than update them (Correct answer)
- Infrastructure defined in YAML that cannot be edited
- Read-only file systems used in production
Correct answer: Servers or containers that are never modified after deployment; new releases replace rather than update them
Immutable infrastructure means never patching running servers; instead, new images are built and deployed to replace old ones.
Question 6: What does 'change failure rate' measure as a DORA metric?
- The percentage of CI builds that fail
- The percentage of deployments that cause a production incident or require a rollback (Correct answer)
- The rate at which feature flags are toggled off
- How often developers revert commits locally
Correct answer: The percentage of deployments that cause a production incident or require a rollback
Change failure rate is the proportion of deployments that result in degraded service and require remediation.
Question 7: An SRE notices that every deployment requires manual SSH into servers to update config files. What practice should they implement?
- Add a reminder step in the deployment checklist
- Configuration as code — version-control config and apply it automatically as part of the deployment pipeline (Correct answer)
- Increase the deployment frequency to reduce config drift
- Delegate manual config updates to a dedicated ops team
Correct answer: Configuration as code — version-control config and apply it automatically as part of the deployment pipeline
Configuration as code ensures config changes are versioned, reviewed, and deployed automatically alongside application changes.
What is a 'blue-green deployment' and what problem does it solve?