Comparison
ReversibilityvsRollback
Reversibility
you shipped it because you knew exactly how you would undo it, not because you were sure.
How cheaply a change can be undone, treated as a design property in its own right. It is what lets a team move fast without being reckless: high reversibility means being wrong is survivable, so decisions can be made with less information. Most of modern delivery practice — flags, canaries, small batches, backward-compatible migrations — is the pursuit of this one property, and framing it that way makes the practices arguable rather than ceremonial.
Full entry →Rollback
the deploy broke something so you put the previous version back rather than trying to fix forward under pressure.
Returning to the previously known-good version. It is the correct default response to a bad deploy, and its speed is a top-tier reliability metric. It is only available if every change is backward compatible with the previous version's data — an unrecoverable migration makes rollback impossible exactly when you need it.
Full entry →