3 ways of cloning an application and a database per git branch
Blog post from Qovery
Feature branching, a development practice where each feature is developed in its own branch, faces challenges when applied to stateful applications that rely on a shared database, potentially violating the isolation principle and causing data safety issues. To address this, the article explores the concept of maintaining separate database copies for each branch, offering three approaches: manual, partially automated, and fully automated, each with its pros and cons. The manual approach involves configuring services and databases manually, which is fast to start but difficult to maintain. The partially automated approach, suitable for large corporations, automates some configurations using tools like Terraform but requires significant setup and maintenance. The fully automated approach, exemplified by Qovery, allows seamless application and database duplication for each branch, adhering to the feature branching concept without changing developer habits, though it requires knowledge of Dockerfile creation and is limited to certain platforms and repositories.