我们有一个托管应用程序,我们开始启动蓝/绿部署。该应用程序有3个后台服务,不参与蓝色/绿色方面。在任何给定时间只有一个实例运行。我们在tomcat下有两个Web应用程序作为面向公众的应用程序。一个是用户界面,另一个是我们的宁静api。我们前面有一个代理服务器,所以我们可以进行蓝/绿切换。所有这些服务共享一个数据库。
我的问题是如何管理蓝/绿部署而不是创建向后共享数据库的不兼容更改?我担心我们的蓝色应用程序会启动并进行数据库更改,从而将绿色应用程序从水中吹走。
顺便说一句,我们的应用程序是使用flyway在启动时迁移数据库的Spring hibernate java应用程序。
答案 0 :(得分:2)
您可以使用Refactoring Practices中引入的做法。 这些实践可以帮助您以向后兼容性迁移数据库。例如,如果要在蓝色部署中重命名列,则必须使用旧列,直到绿色可用。
另外,spring有一个good example,其中包含FlyWayDB的详细信息。