Lamp

為 Web 應用程序執行更新檔/增量發布

  • January 29, 2015

首先,簡而言之,我的(簡化的)問題:

我工作中的發布週期是,我們目前執行的每個發布都對 Web 應用程序進行完整的複制/部署。簡而言之,我們生成一個 tarball,將其 SCP 到生產伺服器,然後安裝它。就那麼簡單。技術棧是LAMP,所以此時沒有程式碼編譯步驟。

問題是,這個 tarball 越來越大,我們需要將這個 tarball 部署到許多伺服器上。雖然這是一個非常可靠的過程,但執行此部署的成本和時間都會增加。

我想做的是為這個 LAMP Web 應用程序執行 delta/patch 版本,它不需要完整的 tarball 部署。

我將 SVN 用於我的 VCS,並且我不希望我部署的應用程序成為 SVN 工作副本。我已經嘗試過使用更新檔(linux CLI 工具)和更新檔文件,但這在過程中有漏洞。例如,多次修補同一個文件,需要開發/操作成本來跟踪生產站點上修補了哪些文件,從什麼版本到什麼版本(當執行多個連續修補時,這很快變得複雜) .

最終,我需要一種可靠的方法來為 LAMP Web 應用程序發布 delta/patch 版本,這不需要生產網路伺服器上的 SVN 工作副本。

其他人如何解決這個問題?您是否只是將 rsync 與刪除選項一起使用,並避免使用更新檔文件?

我會使用 rsync 從svn export儲存庫的 HEAD 進行部署,以更新您的應用程序伺服器。Rsync 已經過實戰考驗,經過驗證,無需您進行任何工作即可開始使用。如果文件大小開始變得非常大並且您想通過多播快速部署到大量機器(除非您有很多伺服器,否則可能會過度滿足您的需求,這取決於您需要部署到多少台伺服器)或給定增量中的大量數據,但肯定是一種選擇)。

引用自:https://serverfault.com/questions/369893