Database Feature Branch Deployments
Blog post from Octopus Deploy
Bob Walker discusses setting up a database deployment process for feature branches, emphasizing the challenges and solutions of adapting traditional static workflows to dynamic environments facilitated by Git. The static workflow of {Dev, Test, Staging, Production} is inefficient for feature branch deployments due to unfinished code merging into the master branch, unclear paths for bug fixes, and potential merge conflicts. Walker suggests combining the Dev and Test environments into a single dynamic Test environment with individual sandboxes for each feature branch, which are created by restoring a backup of Staging. The process includes the use of Octopus Deploy for managing deployments, AWS RDS for database management, and Infrastructure as Code (IaC) for automating the spin-up and tear-down of resources. Involving DBAs early in the process is crucial to ensure smooth production deployments, and Walker highlights the use of runbooks and step templates to facilitate database management tasks. The article underscores the importance of a flexible deployment strategy in agile development environments, allowing for the accommodation of multiple simultaneous feature developments while maintaining stability in Staging and Production environments.