【问题标题】:Continuous Delivery Scenario - implementing Rollback持续交付场景 - 实施回滚
【发布时间】:2013-08-21 11:55:54
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: tomcat ant rollback cruisecontrol continuous-deployment


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:
      1. 采用一次构建多次部署的方法

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

      3. 跟踪当前部署的版本

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

      【讨论】:

      • 当然——我将如何实现#4?还是您建议从存档手动完成回滚?
      【解决方案3】:

      你可以尝试一些不同的方法,步骤是:
      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. 回滚时可以切换到上一个副本,只需更改链接即可。

      【讨论】:

      • 谢谢 - 您是否建议我必须手动重新创建这些文件夹?
      • 响应较晚,需要通过脚本创建
      【解决方案4】:

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

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

      免责声明:我在 CloudMunch 工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-11
        • 1970-01-01
        • 2018-12-05
        • 1970-01-01
        • 2017-11-16
        • 2015-04-20
        • 1970-01-01
        • 2013-04-20
        相关资源
        最近更新 更多