Web-Server
Web 應用程序部署 - 是否簽出
在部署 Python Web 應用程序時,使用以下方法部署應用程序的優缺點是什麼:
- 使用 VCS 在伺服器上進行結帳
- 使用 FTP/SSH/rsync 傳輸本地結帳的副本
- 創建一個適當的包並將其傳輸到伺服器
(注 1 - 我目前使用方法 1。但是我的儲存庫可能包含許多其他與項目相關的人工製品以及實際應用程序,因此這似乎最適用於 SVN,我只能檢查相關文件夾 - 使用 DVCS all 或這看起來不是一個好主意)。(注 2 - 我目前正在切換到 DVCS)
我選擇 4:在伺服器上進行複製,然後將其存檔並部署(如我的git push 部署工具 Giddyup 所示)。
根據我的經驗,其他方法的問題是:
- VCS 簽出:您的簽出包含版本控制元數據,(如果您忽略使用網路伺服器配置對其進行適當保護)可能會將您的原始碼暴露給攻擊者或終端好奇者。
- FTP/rsync:這種方法沒有什麼特別的問題,儘管一個簡單的實現(FTP,或 rsync 到一個空目錄)需要更多的時間和頻寬來傳輸所有內容。還有一個不愉快的習慣,即部署未簽入的東西(總是冒險診斷那個),因為它只是在您的本地工作副本周圍。(您可以解決此問題,但它們主要歸結為“進行本地結帳”,這會演變為(1)。
- 雖然我是個打包狂,但我發現打包大多數 (TM) webapps 是多餘的——它們是數據,而不是程序(從伺服器的角度來看),所以將它包裝在一個包中最終是不必要的(假設您有一個良好的部署機制,包括記錄您的部署、詳盡地對它們進行修訂控制等等)。