2010-05-06 71 views
4

Tipically在生產中部署不涉及只是一個單純的源代碼更新(建立),但需要很多像其他重要的任務,例如:你如何跟蹤你在生產中發佈的內容?

  1. Db的腳本
  2. 配置文件(從測試\型動物生產)
  3. 批處理調度
  4. 可執行文件移動到正確的路徑
  5. 等等,等等

在我們公司,我們只是發送一封電子郵件到「釋放電子郵件地址」,描述任務的順序,需要發佈哪些變更集(TFS),哪些SP需要更新,數據庫腳本等。

我相信沒有一個神奇的工具可以自動完成這些任務,包括回滾;但可能有比電子郵件更好的東西,有助於跟蹤生產中的發佈。

你有什麼工具可以分享建議或做法嗎?

回答

5

當需要多個任務來支持完整的項目部署時(並且經常是這種情況,以我的經驗),我建議使用構建/部署工具。過去,我曾經使用過螞蟻,但是知道Capistrano,Maven等人發誓的其他人。

使用Ant,我寫了一個腳本,將:

  1. 拉具體的修訂從我VCS
  2. 想創建遠程機器上的目標目錄的壓縮包(倘若需要回滾)
  3. 創建MySQL轉儲數據庫的文件(也可用於回滾目的)
  4. 刪除遠程目錄和SSH從VCS
  5. 剛剛拉開新的內容進行各種其他日誌(設置文件權限,所有權等)
  6. 在VCS上創建發佈分支
  7. 創建一個具有適當版本信息的標籤,因此我在該部署時始終擁有代碼庫快照。

希望有助於一些。我已經寫了一些關於這可能(或可能不會)有用的博客文章。它們現在已過時,但一般信息仍應足夠穩定。

+0

@Rob感謝您的詳細解答;你不記得你的螞蟻腳本的歷史? – systempuntoout 2010-05-06 14:40:28

+0

我的劇本的歷史?對於每個項目,我都有一個'_meta /'目錄,用於存儲相關組件,如部署腳本(Ant),數據庫DDL腳本等等。那樣的話,是的,我保留了歷史記錄。我使用的屬性文件對每個部署進行了更改。 – 2010-05-06 15:02:37

0

SVN怎麼樣?您可以將所有代碼放入存儲庫,然後當您準備從生產環境中發佈時,可以將測試中的東西帶過來。然後,您將對發生的事情進行非常具體的修改。 SVN跟蹤它的全部內容。

+0

@ wilbbe01我們使用TFS的版本開發你可能會感興趣的Team Foundation Build Recipes網站,來展示一些構建腳本控制系統。我在這裏問的是如何跟蹤所有部署任務。 – systempuntoout 2010-05-06 13:21:50

1

使用SDC任務庫和MSBuildTasks

+0

+1回答關於TFS。我們使用MSBuild實現了整個構建的自動化(從獲取源代碼的完整副本,構建它到生成最終安裝程序)。在發佈時,我們(a)將安裝程序複製到客戶發佈文件夾中,以便我們將它們的副本與構建系統分開,並提供一個描述構建版本,變更集以及發佈到哪個客戶的文本文件,和(b)標記TFS,以便我們可以輕鬆地返回到構建來自的變更集。 (MSBuild自動標記每個版本,但很高興爲我們自己的標籤提供實際版本) – 2010-05-10 21:52:31