0

想象一下,我有一个带有 Java webapp 的普通持续交付场景。

这个场景有: - 一个运行 Cruisecontrol 的构建服务器 - 一个运行 Tomcat 并运行 Tomcat 管理器的 Web 服务器

构建服务器上运行的 Ant 构建目标之一构建一个 war 文件,然后使用 catalina-ant 使用 Tomcat 管理器远程部署 Web 服务器。

为了真正有用——我们需要能够回滚部署。鉴于这种香草设置,我需要哪些额外的难题才能回滚到最后一个已知的良好配置?

4

4 回答 4

2

主要工具似乎是AntHill ProUDeploy(都来自 UrbanCode - 现在是 IBM 的一部分)。Anthill OS似乎已经退役。

看起来Go CD Sever也可以用于此。

于 2013-08-22T22:04:40.597 回答
0
  1. 采用一次构建多次部署的方法

  2. 在某个存储库中维护您的二进制文件(战争文件)(例如最近 10 个构建)

  3. 跟踪当前部署的版本

  4. 要回滚新版本,只需根据 #3 重新部署旧版本表单 #2

于 2013-08-22T11:23:11.717 回答
0

您可以尝试一些不同的方法,步骤是:
1. 假设您有名为 /opt/wars
的文件夹 2. 在此文件夹中,您有带有版本的子文件夹,例如

/opt/wars
        |-my-server-0.0.1/
        |--my-server.war
        |-my-server-0.0.2/
        |--my-server.war
        |-my-server-0.0.3/
        |--my-server.war
        |-current --> my-server-0.0.3

3. 在部署之前,您总是使用新版本创建新文件夹,例如版本 0.0.4

/opt/wars
        |-my-server-0.0.1/
        |--my-server.war
        |-my-server-0.0.2/
        |--my-server.war
        |-my-server-0.0.3/
        |--my-server.war
        |-my-server-0.0.4/
        |--my-server.war
        |-current --> my-server-0.0.3

4.一旦使用看到该版本准备就绪,您需要将“当前”链接更改为 my-server-0.0.4 文件夹
5.在回滚的情况下,您可以切换到以前的副本,只需更改链接即可。

于 2013-09-02T20:24:10.537 回答
0

考虑使用 CloudMunch 来解决这个问题。CloudMunch 存储您的构建的完整历史和链接到它们的工件,并允许您执行基于标签的搜索以找到正确的构建(除了明显的最后一个最好的构建并修复给定的缺陷等)

一旦你选择了构建,在没有任何 SQL 服务器的情况下,回滚会简单得多。如果您有数据库,请参阅我的答案以增量管理 SQL 更改 -如何持续交付基于 SQL 的应用程序?

免责声明:我在 CloudMunch 工作。

于 2014-04-16T10:54:26.257 回答