【发布时间】:2015-04-26 20:40:33
【问题描述】:
我们有一个托管应用程序,我们开始使用它开始蓝/绿部署。该应用程序有 3 个不参与蓝/绿方面的后台服务。它们中只有一个实例在任何给定时间运行。我们在 tomcat 下有两个 Web 应用程序作为我们面向公众的应用程序。一个是用户界面,另一个是我们的restful api。我们前面有一个代理服务器,所以我们可以进行蓝/绿切换。所有这些服务共享一个数据库。
我的问题是如何管理蓝/绿部署,而不是对共享数据库创建向后不兼容的更改?我担心我们的蓝色应用程序会启动并进行数据库更改,从而将绿色应用程序从水中吹走。
顺便说一下,我们的应用程序是 spring hibernate java 应用程序,它们使用 flyway 在启动时迁移数据库。
【问题讨论】:
-
很抱歉,这个问题在本网站上是题外话;您可以尝试使用 serverfault,并邀请您在area51.stackexchange.com/proposals/66151/devops 上将其作为示例问题发布(因为这确实是一个好问题)
-
您可以考虑将两个应用程序合二为一,或者让用户界面通过 API 连接而不是直接连接到数据库。你不一定想要martinfowler.com/bliki/IntegrationDatabase.html
-
感谢该文章的链接。 Martin Fowler 似乎总是能很好地表达我对设计的不良感受。我们目前正朝着微服务的方向发展,其中应用程序的每个部分都将拥有自己的数据库。
标签: java spring hibernate deployment flyway