2012-11-09 54 views
1

對於我們公司的網站,我們開發的風格最爲準確地稱爲持續部署(http://toni.org/2010/05/19/in-praise我們有一個Web場,每個站點都位於兩臺服務器上,以實現故障轉移目的。我們希望自動化部署到我們的開發服務器,測試服務器和prod服務器的過程。 Out網站是ASP.Net網站(而不是Web應用程序),所以我們不會構建,只是推送頁面。根據許多變數,我們通常每天從2-20次改變我們的主站點。這些更改可以是添加新頁面/功能的簡單文本/ html更改。具有連續部署模型的ASP.Net網站的自動部署

目前我們使用TFS進行源碼控制,每個站點都是自己的倉庫。我們沒有分支機構,當您需要審查開發時,您手動將更改發送給開發人員(我們在本地計算機上開發),然後在簽出後檢入更改並手動推送它們(這可確保源文件是什麼實際上產生和合併發生在那時)。很明顯,在這裏有很多錯誤的空間,很少發生,開發人員會忘記關鍵文件並將整個站點關閉。

似乎大多數部署工具都是建立在構建過程之上的,這不是我們可能會採取的行動,因爲我們需要非常靈活地滿足我們的業務需求。我們真的希望,我們認爲,是類似如下:

  1. 開發獲取最新版本的網站,從源頭控制,基本上是生產
  2. 開發確實對自己的工作盒的拷貝。
  3. 當它準備通過任務所有者審查他創造某種形式的變更的(無論是在改變或者別的什麼檢查),然後工具將推動這一變化到dev
  4. 審覈後(並進一步可能發生的變化) dev然後是能夠讓工具推動所有這項任務的變化進行測試(UAT)
  5. 在此簽署後,更改將自動推送到prod並簽入prod分支,或其他任何人,以獲得

我們已經玩弄了在TFS中有三個代碼分支的想法,但我們不知道如何從一個分支(產品),但檢入開發分支(我們都不是TFS大師)。

那麼,其他人怎麼處理這種情況呢?如果我們想要做我們想做的事情,也不需要垂直解決方案,我們就不會將其作爲源控制提供商,我們也非常樂意插入不同的組件,只要它們可以插入如果必須的話,甚至可以開發自己的產品。

在此先感謝。

回答

0

我相信你可以用TFS做到這一點,但我已經成功地完成了你用Mercurial描述的內容,並且它工作得很好。使用Mercurial(我假設Git的方式是相同的),你可以從一個倉庫中取出,然後推送到另一個倉庫。所以你可以從Prod中取出,做你的改變,在本地提交,推到Dev,然後當你快樂的時候,把變更集推入Prod(無論是從開發者還是從本地,無所謂)。

要開始,您需要一個Prod回購,然後將其克隆到Dev回購 - 這兩個都在您的服務器上。此時它們是相同的。

Windows上的TortoiseHG使您能夠輕鬆選擇要與之同步的存儲庫。您可以在列表中保留Prod和Dev倉庫,並決定在推或拉時使用哪一個。

+0

其實我沒有看到用TFS做這件事的方法,但我們會考慮Mercurial。謝謝你的提示 – user1812849