Markdown Editor

Deployment and Release Runbook Template

Deployment runbook: release metadata, pre-deploy checklist, go/no-go, steps with verification, canary rollout, rollback, comms

परिचालनमानकdeploymentrunbook
एडिटर में खोलें.md डाउनलोड करें

उपयोग कैसे करें: Use it for every production release that is not fully automated, or as the documented procedure behind a pipeline. Write and test the rollback section before the deployment steps. The main pitfall is debugging forward in production instead of rolling back when a threshold is crossed.

प्रीव्यू

Deployment Runbook: [Service name] [Release version]

Step-by-step runbook for deploying one release to production: release metadata, pre-deployment checks, go/no-go decision, deployment steps with commands and verification, progressive rollout, monitoring, rollback, post-deployment checks and communication. Based on common release engineering practice. Replace every [bracketed] value and every row marked Example.

FieldValue
Runbook ID[DRB-SERVICE-001]
Service[Service name]
Release version[v2.14.0]
Release type[Standard / Hotfix / Emergency]
Change request[CHG-nnnn]
Deployment windowYYYY-MM-DD [hh:mm] to [hh:mm] [time zone]
Release manager[@name]
Deployer[@name]
Reviewer / second pair of eyes[@name]
Status[Planned / In progress / Completed / Rolled back]

1. Release metadata

ItemValue
ArtefactExample: registry.example.com/checkout-api:2.14.0
Artefact digestExample: sha256:[digest]
Source commit / tagExample: v2.14.0 at [commit hash]
Previous version (rollback target)Example: v2.13.2, digest sha256:[digest]
Release notes[Link]
Database migrationsExample: Yes, 0047_add_order_channel (backward compatible, additive)
Feature flagsExample: new-checkout-flow ships OFF; enabled separately
Configuration changesExample: New env var PAYMENT_TIMEOUT_MS=4000
DependenciesExample: Requires payment service v5.2 or later (already deployed)

1.1 Scope of change

[Summarise in two or three sentences what changes for users and for operations. Example: "Adds the order channel field to the orders table and API responses. No user-visible change until the feature flag is enabled."]

2. Pre-deployment checklist

#CheckEvidenceDone
1Build pipeline green for the release tag[Pipeline link][ ]
2All automated tests passed (unit, integration, end-to-end)[Report link][ ]
3Security scans show no new high or critical findings[Report link][ ]
4Release deployed to staging and smoke tests passed[Link][ ]
5Rollback tested in staging with the same artefact[Link][ ]
6Database migration tested on a production-sized copy; duration measuredExample: 3 min 40 s[ ]
7Database backup or snapshot completed within the last [1 hour][Snapshot ID][ ]
8Change request approved[CHG-nnnn][ ]
9No conflicting changes or freezes in the window[Change calendar link][ ]
10On-call engineer and dependent teams informed[Message link][ ]
11Dashboards and alerts for the release are ready[Dashboard link][ ]
12Customer-facing notice sent if downtime or visible change[Link or "not needed"][ ]

3. Go / no-go decision

Hold the go/no-go check [30 minutes] before the window starts.

CriterionStatusComment
Pre-deployment checklist complete[Go / No-go][Comment]
Production currently healthy (no open SEV1 or SEV2, error budget available)[Go / No-go][Comment]
Required people present (deployer, reviewer, on-call, DBA if migration)[Go / No-go][Comment]
Rollback path confirmed[Go / No-go][Comment]
DecisionDecided byTime
[Go / No-go / Postpone to YYYY-MM-DD][@release-manager][hh:mm]

4. Deployment steps

StepActionCommand or locationExpected resultDone at
4.1Announce start in [channel]Template 9.1Message posted[hh:mm]
4.2Pause automated deploys for the service[Pipeline setting]Auto-deploy disabled[hh:mm]
4.3Run database migration[migration tool] migrate --target 0047Exit code 0; migration recorded in schema table[hh:mm]
4.4Verify migration[query to check new column exists]Column present; no locks held[hh:mm]
4.5Apply configuration change[config tool] set PAYMENT_TIMEOUT_MS=4000New config version visible[hh:mm]
4.6Deploy to canary (stage 1 in section 5)[deploy tool] deploy checkout-api:2.14.0 --canary 5%Canary pods ready; health checks pass[hh:mm]
4.7Observe canary for the hold timeDashboard in section 6Metrics within thresholds[hh:mm]
4.8Promote through remaining stages[deploy tool] promote --stepEach stage healthy before next[hh:mm]
4.9Confirm all instances run the new version[command listing running versions]100% on 2.14.0[hh:mm]
4.10Re-enable automated deploys[Pipeline setting]Auto-deploy enabled[hh:mm]

5. Canary and progressive rollout

StageTraffic shareHold timePromotion criteria
15%15 minError ratio no worse than baseline +0.1 points; p99 latency within +10%
225%15 minSame as stage 1; no new error types in logs
350%15 minSame as stage 1; business metric (orders per minute) within normal range
4100%n/aDeployment complete

If the platform does not support traffic splitting, use [alternative, for example "one instance of N, then one availability zone, then all"].

6. Monitoring during rollout

SignalWhereBaselineRollback threshold
HTTP 5xx ratio[Dashboard link]Example: 0.08%> 0.5% for 5 min
p99 latency POST /orders[Dashboard link]Example: 420 ms> 700 ms for 5 min
Orders per minute[Dashboard link]Example: 180Drop > 20% versus same time last week
Pod restarts[Dashboard link]0Any crash loop
New error log signatures[Log query link]NoneAny unexplained new error
Database CPU and locks[Dashboard link]Example: 45% CPU> 80% CPU or lock waits > 1 s

The deployer watches these signals for the full rollout and [30 minutes] after reaching 100%. The on-call engineer is told when the watch period ends.

7. Rollback procedure

Decision rule: roll back immediately if any threshold in section 6 is crossed, or if the deployer or reviewer is unsure the release is healthy. Do not debug forward in production during the window.

StepActionCommand or locationExpected resultDone at
7.1Announce rollback in [channel]Template 9.3Message posted[hh:mm]
7.2Route all traffic to previous version[deploy tool] rollback checkout-api --to 2.13.2100% on 2.13.2[hh:mm]
7.3Revert configuration change[config tool] rollback PAYMENT_TIMEOUT_MSPrevious config version active[hh:mm]
7.4Decide on migrationAdditive migration 0047 stays in place (old code ignores the column)Documented in log[hh:mm]
7.5Verify recoverySignals in section 6 back to baselineBaseline within 10 min[hh:mm]
7.6Open incident if users were affectedIncident processIncident ID recorded[hh:mm]

Irreversible steps in this release: [list, or "none"]. If a destructive migration is unavoidable, split it into expand and contract releases so that each release can be rolled back independently.

8. Post-deployment checks

#CheckMethodResult
1Smoke tests in production pass[smoke test command][Pass / Fail]
2Key user journeys workExample: Place an order with the test account[Pass / Fail]
3No increase in support ticketsSupport queue[Result]
4Release recorded in deploy log and change request closed[CHG-nnnn][Done]
5Release notes published[Link][Done]
6Feature flag rollout plan scheduled (if applicable)[Ticket][Done]

9. Communication

AudienceChannelWhen
Engineering and on-call[#deployments]Start, each stage, end
Support team[#support]Before start if users may notice; at end
Customers[Status page / email]Only for downtime or visible change

9.1 Start

Deploying [service] [version] to production now. Change [CHG-nnnn]. Expected completion [hh:mm timezone]. Deployer @[name].

9.2 Completed

[Service] [version] is fully deployed and healthy. Watch period ends at [hh:mm]. Release notes: [link].

9.3 Rolled back

[Service] [version] has been rolled back to [previous version] because [short reason]. Service is [healthy / recovering]. Follow-up in [ticket].

10. Deployment log and sign-off

TimeEventBy
[hh:mm]Example: Go decision recorded[@name]
[hh:mm]Example: Canary at 5%, error ratio 0.07%[@name]
[hh:mm][Event][@name]
OutcomeSigned off byDate
[Completed / Rolled back / Partially deployed][@release-manager]YYYY-MM-DD

Based on common release engineering and progressive delivery practice. Original text written for this collection; commands are illustrative. Template licence: MIT.

संबंधित टेम्पलेट