Safe schema updates - Near-zero downtime database deployments
Blog post from Octopus Deploy
In part 7 of his series on safe schema updates, Alex Yates discusses strategies for achieving near-zero downtime during database deployments, emphasizing the importance of small, frequent changes over large, infrequent ones to align with evolving business needs. He elaborates on the necessity of minimizing downtime to increase deployment frequency and reduce complexity, highlighting that deployments and releases are distinct processes. Yates explores deployment patterns that support zero downtime by separating code deployment from release, using infrastructure-based techniques like blue/green deployments and application-based approaches such as feature toggles. He also presents a phased method for database schema changes that ensure forward and backward compatibility, involving expansion, rollout, and contraction steps to safely manage schema evolution without scheduled downtime. Yates stresses that while such processes require rigorous planning and testing, especially in tightly coupled systems, they ultimately lead to safer and more efficient database updates.