持续交付方案 - 实施回滚

时间:2013-08-21 11:55:54

标签: tomcat ant rollback cruisecontrol continuous-deployment

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

此方案具有:   - 一个运行cruisecontrol的构建服务器   - 运行Tomcat并运行tomcat管理器的一个Web服务器

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

要真正有用 - 我们需要能够回滚部署。鉴于这种香草设置,我需要能够回滚到最后一个已知良好配置的额外部分吗?

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

  1. 进行build-once-deploy-many-times方法

  2. 在某个存储库中保存二进制文件(war文件)(比如最后10个版本)

  3. 跟踪当前部署的版本

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

答案 2 :(得分: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.如果是回滚,只需更改链接即可切换到上一个副本。

答案 3 :(得分:0)

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

一旦选择了构建,在没有任何SQL服务器的情况下,回滚就会简单得多。如果您有数据库,请参阅我的答案以逐步管理SQL更改 - How to continuously delivery SQL-based app?

免责声明:我在CloudMunch工作。