为Web应用程序执行修补程序/增量发行版

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

在我的发布周期中,每个版本我们目前都在执行Web应用程序的完整复制/部署。 简而言之,我们生成一个压缩包,将其SCP传送到生产服务器,然后安装它。 就那么简单。 技术堆栈是LAMP,所以目前没有代码编译步骤。

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

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

我为我的VCS使用SVN,我不希望我部署的应用程序成为SVN工作副本。 我已经尝试使用补丁(linux CLI工具)和补丁文件,但是这个过程中有漏洞。 例如,不止一次修补相同的文件,在生产站点(当执行多个连续的修补程序时这很快变得复杂),开发/操作开销会追踪哪个(哪些)文件被修补,从哪个版本到哪个版本, 。

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

别人怎么解决这个问题呢? 你是否简单地使用rsync删除选项,并避免补丁文件?

我会使用rsync从仓库的HEAD的svn export部署来更新您的应用程序服务器。 Rsync经过了战斗testing,certificate,并准备去没有你的任何工作。 根据需要部署的服务器数量,如果文件大小开始变得很大,并且希望通过多路广播快速部署到大量计算机上,则可以查看mrsync (除非有很多服务器或者给定增量中的大量数据,但肯定是一个选项)。

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

但是,你可以同意只使用 SVN生产,并在Web根外有WC吗? 在这种情况下,您可以根据需要更新WC(减lessstream量)并将WC导出到networking空间