想象一下,我有一个带有Java webapp的vanilla持续交付场景。
此方案具有: - 一个运行cruisecontrol的构建服务器 - 运行Tomcat并运行tomcat管理器的一个Web服务器
在构建服务器上运行的Ant构建目标之一构建war文件,然后使用catalina-ant使用Tomcat管理器远程部署Web服务器。
要真正有用 - 我们需要能够回滚部署。鉴于这种香草设置,我需要能够回滚到最后一个已知良好配置的额外部分吗?
答案 0 :(得分:2)
主要工具似乎是AntHill Pro和UDeploy(都来自UrbanCode - 现在是IBM的一部分)。似乎Anthill OS已经退休了。
看起来Go CD Sever也可用于此目的。
答案 1 :(得分:0)
进行build-once-deploy-many-times方法
在某个存储库中保存二进制文件(war文件)(比如最后10个版本)
跟踪当前部署的版本
要回滚新版本,只需根据#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工作。