2010-04-06 88 views
2

SOX要求我們有一個單獨的小組將我們的ASP.NET網站部署到生產環境。部署和TFS,一般問題

目前,該組可以訪問VSS中的當前代碼存儲庫,並使用VSS將已簽入VSS的代碼部署到該服務器中。

Web應用程序通常如何部署?

作爲開發人員,我使用Visual Studio中的Deploy功能將代碼部署到與IS虛擬文件夾相對應的網絡共享中,但我認爲我們不認爲我們可以期望部署組將購買副本的Visual Studio只是爲了部署。

我們可以將代碼檢查到TFS中,但該組需要執行部署所需的最低軟件是什麼?團隊資源管理器客戶端訪問是否足夠?

我知道Team System具有自動構建應用程序的功能。通常情況下,人們是通過將aspx和dlls文件從QA環境複製到生產環境,還是通常直接從TFS甚至VS直接部署?在我看來,首選的方法是從QA環境進行部署,因爲這是必須批准發佈的環境,或者這些文件應該從TFS中檢入到TFS中並從TFS中部署,假設您可以從TFS中部署。

讓我困惑的是,bin(二進制)文件是否是項目本地的 - 是否進入TFS?是這樣嗎?這對其他開發人員是否會產生問題,因爲只有一個開發人員(具有二進制文件的開發人員)才能真正進行調試,因爲調試需要對二進制文件進行寫入訪問?這是否意味着二進制文件不應該被檢入到TFS中?但最終,如果從TFS部署,則必須將二進制文件添加到TFS中。它們是作爲單獨的(編譯的)應用程序節點添加的嗎?如果是這樣,這聽起來真醜。我會假設沒有。如何確保二進制文件與我們用特定版本號標記的源代碼相匹配?

顯然,我很無能。有人能給我一個關於如何處理版本控制和部署特別是使用TFS的一般概念嗎?

回答

0

一個最小的可能性(即相對簡單並使用自由軟件)使用Powershell腳本來使用MSBuild進行編譯。要使用源代碼管理,you can use Subversion,它也可以編寫腳本。

我建議您對持續集成方案進行一些研究,以更多地瞭解您所問的內容。

1

聽起來像你問什麼是使用TFS進行部署的最佳實踐。來自TFS團隊的這個book應該回答你的大部分問題。 TFS & VSS之間的巨大差異在於,默認情況下,TFS簽出不會「鎖定」某個文件被其他開發人員編輯。 TFS具有相當不錯的合併能力來處理對同一文件的更改。 TFS書籍更詳細地解釋了這一點,並解釋了它爲什麼是好事。

至於應用程序二進制文件的處理,它們通常應該由構建過程生成並自動部署到目標環境(dev,qa,staging)。您的代碼所依賴的第三方二進制文件將與您的源代碼一起簽入,以確保構建過程具有所有必需的程序集。

正如您所提到的,應該從開發人員無法訪問的qa或臨時環境手動觸發部署到生產環境,以符合SOX規則。

Jaxidian對於研究持續集成有一個很好的觀點。 TFS支持在檢入時觸發構建,這使得CI成爲可能。