2012-08-06 60 views
3

產品是一個不斷髮展的CMS,新功能補丁總是在不斷推出。該產品託管在多臺服務器上,其中一些服務器只有FTP憑證和數據庫訪問權限,而其他服務器則擁有完全的root訪問權限。現在,只要測試完成後發佈新功能,我就必須手動對所有服務器上的ftp文件和SQL查詢進行操作。這非常耗時,容易出錯並且效率低下。我怎樣才能使它更強大,更簡單或自動化呢? CMS基於PHP,MySQL,JS,HTML和CSS。管理部分對所有人來說都很常見。皮膚和一些自定義模塊是爲不同的客戶開發的,我們更新的唯一部分是admin。如何有效地修補在多個主機上運行的代碼?

更新

爲了管理我們使用GIT代碼,SQL是不是這個GIT結構的一部分,我將討論產品經理/業主有它的版本控制之下。

+0

您是否使用任何類型的版本控制系統? (CVS,SVN,git)? – Matt 2012-08-06 17:43:02

+0

最近我一直在處理類似的話題,並且遇到了這篇文章:http://net.tutsplus.com/articles/from-ftp-to-git-a-deployment-story/。它提供了一些有關部署人員和文件傳輸之間差異的有趣想法。另外請確保查看Git Hooks(http://net.tutsplus。com/tutorials/tools-and-tips/quick-tip-automation-with-git-hooks /),這對你來說可能是一個非常有趣的方法。 – Quasdunk 2012-08-06 17:56:28

回答

2

這是未打包代碼的一個重要問題。

就我個人而言,我有一個PHAR,它在執行時將代碼提取到特定文件夾並執行所需的查詢。

+0

我會偏愛系統的本地軟件包。對於我工作過的產品之一,我們曾經推出RPM軟件包。每週五發布次要版本。只需安裝軟件包並更新所有內容。但在目前的情況下,一些主機是rackspace cloudsites,有些不屬於我們,有些則是簡單的共享主機解決方案。 – Kumar 2012-08-06 17:47:51

+0

現在是2012年。我沒有看到SFTP作爲要求存在什麼問題。我敢打賭,你現在通過FTP登錄的每臺主機都會更喜歡使用SFTP isntead。 – 2012-08-06 21:56:15

1

我已經在數十臺服務器上處理數以億計的訪問者/月的Web部署。

SQL變更管理總是成爲一個野獸。你只希望要麼滾動自己的房子(我所做的),要麼使用EMS DB Comparer之類的東西。

要處理的文件同步,你將需要大量的工具,所有熟練製作的共同努力,其中包括:

  1. 源代碼版本控制(BZR,SVN等),那被適當支鏈的(穩定分支,Dev分支,需要測試分支),
  2. 持續集成服務器,
  3. 每個服務器上支持SFTP,
  4. 希望單元和綜合測試,以確定生成質量,
  5. Rsync的每個服務器上,
  6. 構建腳本(我在Phing做這些),
  7. 部署腳本(在Phing爲好),
  8. 知道怎麼辦。

一般過程需要大約20個小時來徹底研究,大約40個小時才能建立。當我編寫文檔時,涉及到40多個不同的步驟。創建SQL更改管理實用程序需要20-30小時。再加上10小時的測試,並且您正在尋找100-120小時的項目,但是將來可以大大節省您在未來的部署時間,同時減少部署時間,直到點擊按鈕爲止。

這就是爲什麼我會在設置整個過程方面進行協商,並且通常需要5個小時才能在客戶端的網絡上進行設置。

+0

從商業角度看,這一切看起來非常昂貴。我們沒有每臺服務器的SFTP,如果我們已經寫了一個腳本來將代碼推送到所有服務器,運行post部署步驟等。 – Kumar 2012-08-06 18:05:13

+0

@Kumar實際上,除SQL更改管理應用程序之外,你*可以*在內部製作)是開源且免費的。這些工具不會花錢,而是知識,失誤,以及讓事情正確無誤。 – 2012-08-06 21:55:09

+0

它不是應用程序,但人工小時將進入設置。該產品來自一個非常小的企業,是非常非常本地化的產品。實際上我正在研究WordPress更新的工作方式。無論目前的產品如何,我都會探索你所提到的任何東西,只是爲了科學:-) – Kumar 2012-08-07 04:49:56

相關問題