执行 Web 应用程序的补丁/增量发布

执行 Web 应用程序的补丁/增量发布

首先,我的问题(简化版)简而言之:

我工作中的发布周期是,每次发布我们都会对 Web 应用程序进行完整复制/部署。简而言之,我们生成一个 tarball,将其 SCP 到生产服务器,然后安装它。就这么简单。技术堆栈是 LAMP,因此目前没有代码编译步骤。

问题是,这个 tarball 越来越大,我们需要将这个 tarball 部署到许多服务器上。虽然这是一个非常可靠的过程,但执行此部署的开销和时间加起来会很多。

我想要做的是针对这个不需要完整 tarball 部署的 LAMP Web 应用程序执行增量/补丁版本。

我正在使用 SVN 作为 VCS,并且我不希望我部署的应用程序是 SVN 工作副本。我尝试过使用补丁(Linux CLI 工具)和补丁文件,但这种方法存在漏洞。例如,多次修补同一个文件时,开发/运维人员需要跟踪生产站点上哪些文件被修补、从哪个版本到哪个版本(当执行多个连续修补时,这很快就会变得复杂)。

最终,我需要一种可靠的方法来为 LAMP Web 应用程序进行增量/补丁发布,而不需要生产 Web 服务器上的 SVN 工作副本。

其他人如何解决这个问题?您是否只是使用带有删除选项的 rsync,并避免使用补丁文件?

答案1

我会使用 rsync 从存储库的 HEAD 之一进行部署,svn export以更新您的应用服务器。Rsync 经过实战检验,久经考验,无需您做任何工作即可使用。根据您需要部署到的服务器数量,您可以查看同步如果文件大小开始变得非常大,并且你想通过多播快速部署到大量机器(除非你有很多服务器或很多给定增量中的数据(但当然是一种选择)。

答案2

我不希望我部署的应用程序是 SVN 工作副本

但你能同意吗使用生产环境中的 SVN 和 Web 根目录之外的 WC?在这种情况下,您可以根据需要更新 WC(流量较少)并将 WC 导出到 Web 空间

相关内容