如何在蓝/绿部署中管理共享数据库?

时间:2015-02-25 00:37:02

标签: java spring hibernate deployment flyway

我们有一个托管应用程序,我们开始启动蓝/绿部署。该应用程序有3个后台服务,不参与蓝色/绿色方面。在任何给定时间只有一个实例运行。我们在tomcat下有两个Web应用程序作为面向公众的应用程序。一个是用户界面,另一个是我们的宁静api。我们前面有一个代理服务器,所以我们可以进行蓝/绿切换。所有这些服务共享一个数据库。

我的问题是如何管理蓝/绿部署而不是创建向后共享数据库的不兼容更改?我担心我们的蓝色应用程序会启动并进行数据库更改,从而将绿色应用程序从水中吹走。

顺便说一句,我们的应用程序是使用flyway在启动时迁移数据库的Spring hibernate java应用程序。

1 个答案:

答案 0 :(得分:2)

您可以使用Refactoring Practices中引入的做法。 这些实践可以帮助您以向后兼容性迁移数据库。例如,如果要在蓝色部署中重命名列,则必须使用旧列,直到绿色可用。

另外,spring有一个good example,其中包含FlyWayDB的详细信息。