Q: Your CI/CD pipeline deploys directly to production on every merge to `main`. One Friday afternoon, a developer merges a PR and goes offline. The deployment silently fails halfway through โ 30% of pods are running new code, 70% are running old code. There are no automated rollback hooks. How do you recover, and how do you prevent this situation architecturally?
Immediate recovery:
#CI/CD #๐ Supply Chain Security & Advanced CI/CD #L3 #DevOps #Automation #Pipelines
๐๏ธ Candidate Opening & Architectural Context
""In enterprise CI/CD, you cannot rely on manual interventions; every rollback and promotion must be declarative. The interviewer is testing: Deployment readiness, automated rollback, on-call accountability.. I structure my answer around systematic triage first, root cause analysis second, and permanent remediation third.""
Advertisement
๐ ๏ธ Production Runbook & Step-by-Step Resolution
1๏ธโฃ
Initial Diagnostics & Root Cause Analysis
Immediate recovery:
- Identify current state:
kubectl rollout status deployment/apiโ ifProgressingis stuck, the rollout is hanging. - Manually roll back:
kubectl rollout undo deployment/apiโ Kubernetes reverts to the previous ReplicaSet revision immediately. Verify withkubectl rollout history deployment/api. --atomicon Helm, or rollout analysis on Argo Rollouts โ if the deployment does not reach 100% healthy within a timeout, it automatically rolls back.
2๏ธโฃ
Remediation & Permanent Safeguards
Architectural prevention:
- Deployment freeze rules: Block merges to
mainafter 3 PM on Fridays via a GitHub branch protection check that queries the current time. Simple but highly effective. - Require on-call acknowledgement: The pipeline sends a Slack message with "Deployment starting, confirm you're watching" and waits 60 seconds for a reaction emoji before proceeding. If no reaction, the pipeline pauses and pages on-call.
๐ก The Senior SRE Gold Nugget (Key Architectural Takeaway)
"Pro-Tip: Identify current state: kubectl rollout status deployment/api โ if Progressing is stuck, the rollout is hanging.."
โก 60-Second Elevator Pitch Talking Points
- Identify current state: kubectl rollout status deployment/api โ if Progressing is stuck, the roll...
- Manually roll back: kubectl rollout undo deployment/api โ Kubernetes reverts to the previous Repl...
- --atomic on Helm, or rollout analysis on Argo Rollouts โ if the deployment does not reach 100% he...
Advertisement