1

我正在自动部署到测试服务器和生产环境。生产部署回滚

我有一个ci服务器(构建,编译,junit)和一个工件存储库管理器(存储构建部署/发布)。

目前我可以用脚本部署到测试服务器(用ci-server执行)。目前没有回滚,db-backups或db-updates。所有的服务器都有Suse(linux)。

我想知道是否有更好的部署方法,具有回滚能力?也许还有其他免费软件工具?否则,即使只是一些笔记将有助于弄清楚我必须做些什么才能做回滚和不要搞乱生产。

回答

6

回滚包含关系数据库的应用程序非常棘手。传统上这是通过从升级之前执行的备份恢复来完成的。

更现代的方法是将数据库迁移工具(如liquibase)集成到应用程序的安装过程中。 liquibase跟踪数据库模式的每个更改,使其能够生成用于升级和回滚的脚本。

+0

当我制定部署计划时,我也注意到了liquibase。现在一个同事已经备份和回滚脚本了,所以我想知道我是否应该继续使用该工具或将其作为将来的更多用途?目前无法讲述利弊。 – user1338413

+0

@ user1338413我个人会支持这两种方法。从备份恢复(如果它正确完成)将您带回到已知的时间点。问题是数据丢失,备份和回滚之间的时间。具有回滚模式更改(保留数据)的额外功能非常有用。最后,像liquibase这样的工具对构建开发和测试系统非常有用 –

+0

“像liquibase这样的工具对建立开发和测试系统非常有用”。对于生产服务器?或者在这两个环境之间有什么区别? – user1338413