認識 Team Foundation Build 系統
您可以使用 Team Foundation Build 在自動化和分散式系統中編譯、測試及部署您的軟體。 除了已臻成熟的軟體開發事業之外,這個軟體還設計成能夠支援「雛型」(Start-up) 的小型軟體工作。 這套系統的設計,可以幫助您隨著小組和程式碼基底的成長,向外擴展您的建置系統。
本主題內容
組建電腦
Team Foundation Build Service
使用虛擬機器做為組建電腦
組建控制器
組建代理程式
建置系統拓撲範例
後續步驟
組建電腦
若要使用 Team Foundation Build,您必須至少有一部組建電腦。 在任何中大型的軟體工作中,您可能需要多部組建電腦。 本主題稍後會提供您數個建置系統組態的範例。
組建電腦是已安裝和設定 Team Foundation Build Service 的電腦。 該電腦可以是實體電腦 (例如,桌邊的個人電腦或實驗室的工作站)。 您也可以善用具有彈性的虛擬機器做為組建電腦。
注意事項 |
---|
您可以在方便您使用的任何電腦上設定臨機操作的組建電腦。 例如,如果個別的開發人員具有額外的電腦可用,則他可以設定該電腦做為使用 Team Foundation Build Service 功能的組建電腦。 |
雖然有關組建電腦的設定、修改和管理作業是直接在執行 Team Foundation Build Service 的電腦上進行,但組態資料本身則是儲存在 Team 專案集合中。
Team Foundation Build Service
若要設定組建電腦,請安裝、設定並執行 Team Foundation Build Service。
Team Foundation Build Service 是列在作業系統內不同位置的 Windows 服務。 它的列出位置取決於 Team Foundation Build Service 是以 Windows 服務的方式執行,還是以互動式服務的方式執行 (如需如何設定此選項的詳細資訊,請參閱設定組建電腦)。
當 Team Foundation Build Service 是以 Windows 服務的方式執行時:
在 [服務] 節點中,Team Foundation Build Service 是列為 [Visual Studio Team Foundation Build Service Host]。 您可以在下列其中一個位置檢視 [服務] 節點:
在伺服器作業系統 (例如 Windows Server 2008) 上的伺服器管理員
用戶端作業系統 (例如 Windows Vista) 上的電腦管理
在 [工作管理員] 的 [服務] 索引標籤中,Team Foundation Build Service 是列為 [Visual Studio Team Foundation Build Service Host]。
注意事項 |
---|
您也可以在上述清單中的位置停止或重新啟動組建服務。 停止或重新啟動服務時,實際上會停止或重新啟動組建電腦。 不過,您可以使用 [Team Foundation 管理主控台],以更便利的方式管理組建電腦。 如需詳細資訊,請參閱管理您的建置系統。 |
當 Team Foundation Build Service 以互動服務的方式執行時:
- 在 [工作管理員] 的 [應用程式] 索引標籤中,Team Foundation Build Service 是列為 [TFSBuildServiceHost]。
使用虛擬機器做為組建電腦
您可以將 Team Foundation Build Service 部署在虛擬機器上 (例如執行 Windows Server 2008 之實體電腦上所執行的 Hyper-V 虛擬機器)。 採取這種策略可以讓您輕鬆執行下列工作:
從任何狀態和任何時間點重新建置系統。 例如,如果系統發生損毀,您可以快速還原為乾淨環境的快照並重新建置系統。
製作虛擬機器的快照、匯出該快照,然後進行封存或是與其他小組成員共用。
使用虛擬機器的主要缺點,是運作上會比實體機器還要慢。 如果您的組建所需的工作量較小,或者如果您不常執行組建 (例如夜間執行),則虛擬機器可能就足以做為您系統的組建電腦。
您可以執行下列工作來改善 Team Foundation Build Service 在虛擬機器上執行的效能:
在具有多核心處理器的實體機器上執行虛擬機器。 例如,如果實體機器具有四核心處理器,則您可以同時執行四部虛擬機器,而且在許多情況下,這些虛擬機器都可以將組建電腦的工作處理地相當好。
讓每個虛擬機器都有專屬的掛接實體硬碟。
組建控制器
每個組建控制器都專屬於單一的 Team 專案集合。 控制器會接受指定的 Team 專案集合中任何 Team 專案所提出的組建要求。
每個組建控制器都會統籌處理和管理一個或多個組建代理程式的服務, 並將需要大量處理器資源的作業 (例如編譯程式碼或執行測試) 分散到集區內的組建代理程式。
組建控制器會處理工作流程並執行最為輕量的作業,例如決定組建名稱、建立版本控制中的標籤、記錄附註與報告組建的狀態。
因為組建控制器一般並不會佔用太多處理器時間,所以虛擬機器通常就足以做為組建控制器的服務平台。 不過,某些情況下組建控制器需要大量的記憶體。 因此,對於安裝組建控制器的實體機器或虛擬機器,請務必要確認有提供足夠的記憶體。
組建代理程式
每個組建代理程式都由專屬的單一組建控制器所控制。 組建代理程式會進行需要大量處理器資源和大量磁碟資源的作業。 這些作業包括對版本控制取得或簽入檔案、提供工作區、編譯程式碼和執行測試。
在您組合建置系統時,可以從少數代理程式開始。 然後,隨著小組成員的加入、程式碼基底的成長,以及建置系統所需完成的作業增長,您可以藉由新增更多的組建代理程式來擴充您的建置系統。
如果您將代理程式設定為具有特製化的功能,則應該指派標記給這些代理程式。 只要遵循這項策略,您就可以建立能夠使用這些特製化代理程式的組建定義。 例如,您可以將 BVT 標記套用至設計用來執行 BVT 測試的代理程式集區。 接著您可以定義夜間組建,讓其僅使用這些組建代理程式。
因為組建代理程式會進行大部分需要大量處理器資源的作業,請務必要確認組建電腦具有足夠強大的硬體,能夠讓組建代理程式在可接受的時間內進行作業。
建置系統拓撲範例
Team Foundation Build Service 的設計可讓您從較小較不複雜的建置系統開始。 隨著程式碼基底的擴充以及小組規模的增長,您可以在既有的系統中加入組建電腦,輕鬆地逐步擴充您的系統。
單一電腦系統 (與應用程式層共用)
下列組態可以支援非常小型的小組,特別是針對不常執行組建並且是在離峰期間執行的小組 (例如僅執行單一夜間組建的情況)。
在大部分的情況下,具有單一組建電腦的拓撲並不夠,原因如下:
組建代理程式會大量耗用處理器資源,而這可能導致應用程式層的效能大幅降低。
組建控制器會竭力耗用系統的記憶體,特別是在控制器同時管理許多作用中的組建代理程式的情況下。
安裝 Team Foundation Build Service 會使組建電腦受攻擊的範圍變大。 例如,惡意使用者可能建構組建定義來執行有害的程式碼,以控制伺服器或竊取資料。
單一電腦系統 (獨立)
下列組態對小型小組而言是很好的起始點。
因為組建代理程式會在個別電腦上執行需要大量處理器資源的作業,所以在執行組建時,這些組建代程式並不會影響應用程式層的效能。
您也可以在專屬的組建電腦上執行組建控制器。 不過,圖例中的組態有一個好處,就是讓建置系統的變更比較不容易受到干擾,例如在您必須修復或取代組建電腦時。
從處理器的觀點來看,讓組建控制器與應用程式層存在於相同電腦上,通常不會有什麼問題。 然而,基於下列原因,您可能要提升到更具延展性的拓撲上:
組建控制器會竭力耗用系統的記憶體,特別是在控制器同時管理許多作用中的組建代理程式的情況下。
安裝 Team Foundation Build Service 會使組建電腦受攻擊的範圍變大。 例如,惡意使用者可能建構組建定義來執行有害的程式碼,以控制伺服器或竊取資料。
多重電腦系統
中大型的小組通常需要有多部組建電腦來支援他們的工作。 下列範例中部署兩部組建電腦。
藉由使用多部組建電腦,您可以讓每部電腦各司其職,如下列範例所述:
一部組建電腦可以專用於處理連續整合組建的組建代理程式。 小組需要這類的組建 (特別是閘道簽入組建) 才能快速執行,這樣其作業才不會因等候其他組建而停滯。 您應該使用建置流程參數設定,確保組建可以快速執行。 這些設定包括不清除工作區、只執行最優先測試,以及將 [最長執行時間] 設成較低的值。
另一部組建電腦可以專用於需要大量處理時間的排程組建和臨機操作組建。 例如,您可設定以此電腦上組建代理程式為目標的組建定義,讓這些定義清除工作區、執行所有測試並執行程式碼分析。
搭配多重控制器的多重電腦系統
下列拓撲範例可以支援企業層級的軟體工作。
每個 Team 專案集合都必須有自己的組建控制器,如下圖所示。 請注意這個拓撲隔離組建電腦的方式。 在 Team Project Collection A 中工作的小組成員只能使用 Build Controller A 所控制的組建代理程式。
後續步驟
現在您已經了解 Team Foundation Build 系統的運作方式,可以準備進行後續的步驟: