我阅读了有关Blue/Green部署的这篇文章,然后通过一些搜索了解了这篇关于Canary Release的文章。
我有一个疑惑:数据库会发生什么?我们应该如何使它们同步?
我有两种可能的情况:
- 假设有两个单独的数据库,每个环境都有一个(绿色和蓝色),当蓝色处于活动状态时,新记录将被插入到它的数据库中,绿色不知道这些更改,除非我们提供触发器等机制来更新绿色数据库。
- 第二种情况建议在两个环境之间共享向后兼容的数据库,但是处理数据库时向后兼容性并不容易,我们必须在发布应用程序之前发布数据库更改。
可能还有第三种情况,即在主Blue/Green部署内部实现数据库的Blue/Green部署。
你认为哪种解决方案更好,为什么?你建议采用其他实践或众所周知的模式吗?
谢谢