Azure DevOps Server的架構概觀

Azure DevOps Server 2022 |Azure DevOps Server 2020 |Azure DevOps Server 2019 |TFS 2018

若要最佳規劃和管理部署,您應該先瞭解Azure DevOps Server的基礎架構。 了解結構可協助您維護部署的整體健康狀態,並有助於確定您的開發團隊所需的伺服器和服務的整體可用性。

您可以透過數種方式部署Azure DevOps Server:在一部伺服器上、多部伺服器上;或是在一個網域或工作組或跨網域部署。 或者,您可以選擇使用 Azure DevOps Services,其中部署的所有伺服器元素都由 Microsoft 為您裝載。 了解結構可協助您決定何種拓撲最可能符合您的業務需求。 不論您選擇的拓撲為何,如果您瞭解架構基礎Azure DevOps Server,您可以更妥善地管理實體和邏輯需求。 本文提供各種架構的簡單概觀,並提供範例部署的詳細資訊連結。 同時提供服務、資料庫、組態資訊及本機部署的網路通訊埠和通訊協定等技術資訊。

若要瞭解Azure DevOps Server的架構及其如何影響部署,您應該考慮下列事項:

  • Azure DevOps 的邏輯應用程式、資料和用戶端層,以及您想要針對應用程式和資料層使用一或多部伺服器,還是要使用 Azure DevOps Services
  • 裝載這些階層的實體或虛擬伺服器位置
  • Team Foundation Build 和在您的環境中執行的組建電腦數目和位置,包括您可能需要多少支援開發做法,還是要使用 Azure Pipelines 雲端服務來建置和部署軟體應用程式
  • Azure DevOps Proxy 伺服器的潛在需求

此外,您還必須考量以上這些項目之間的互動。 例如,如果您選擇使用裝載的Azure DevOps Server服務,您必須確定用戶端可以在埠 443 上存取服務。 如果您選擇在本機部署Azure DevOps Server,您必須知道Azure DevOps Server使用的 Web 服務、資料庫和物件模型。 此外,您也必須知道預設 Azure DevOps Server會使用哪些網路埠和通訊協定,以及您可以自訂的網路埠。 最後,您必須瞭解您必須在Azure DevOps Server中設定的許可權,以及部署相依的元件和程式。

除了自己的服務之外,Azure DevOps Server取決於其他服務才能運作。 如需這些服務的詳細資訊,請參閱Azure DevOps Server概念Azure DevOps Server資料倉儲的元件。 如需安裝需求和相依性的詳細資訊,請參閱安裝指南Azure DevOps Server

重要

除非您指示Microsoft 支援服務或遵循手動備份資料庫所述的程式,否則您不應該手動修改任何Azure DevOps Server資料庫。 任何其他修改都可能會使您的服務合約失效。

Azure DevOps Services

Azure DevOps Services

Microsoft 提供使用 Azure DevOps Services 的選項,這可為您裝載Azure DevOps Server的所有伺服器端層面。 您的原始程式碼、工作項目、組建組態和小組功能均裝載在雲端上。 從架構的觀點來看,這可大幅簡化您使用Azure DevOps Server,因為您需要考慮的架構唯一層面是用戶端元件及其網際網路存取。

使用 Azure DevOps Services 時,您會使用網頁瀏覽器,使用 Microsoft 帳戶連線到服務。 您可以建立專案、將成員新增至小組,並如同在本機安裝Azure DevOps Server一樣運作,而不需要管理伺服器的額外負荷。 Azure DevOps Services裝載應用層、資料層,以及在雲端中建置伺服器。

若要深入瞭解雲端服務與內部部署,請檢閱Azure DevOps Services與Azure DevOps Server

物件模型

透過裝載或本機部署的架構,您可以撰寫以伺服器或用戶端物件模型為基礎的應用程式,來擴充 Azure DevOps 的特性和功能。 在所有部署類型中,您都可以撰寫可擴充用戶端功能的應用程式。 不過,如果您想要擴充伺服器功能,您的應用程式必須在應用層伺服器上執行。 若要擴充用戶端功能,您必須在與 Team Explorer 相同的電腦上執行應用程式。

Azure DevOps Server物件模型

本機部署的 Web 服務和資料庫

Azure DevOps Server包含一組 Web 服務和資料庫,您可以在裝載 Azure DevOps 之邏輯應用程式、資料和用戶端層的伺服器上個別安裝及設定。 某些功能,例如工作面板和待辦專案小組型功能,全都是以 Web 為基礎,而且只能透過入口網站、用戶端 Web 服務存取。 其他功能,例如版本控制功能,可以透過入口網站或用戶端應用程式來存取。 下圖提供 Web 服務、應用程式和資料庫的高階檢視,以用於本機部署Azure DevOps Server。

Azure DevOps Server主要服務層級

選擇性Azure DevOps Server服務

Azure DevOps Server用戶端

集合層級服務

集合層級服務提供專案集合層級作業的功能。 您可以使用其中一些服務來建立擴充Azure DevOps Server的應用程式。 如需建立Azure DevOps Server應用程式的詳細資訊,請參閱開發擴充功能

注意

某些服務會出現在多個層級。 例如,集合層級和伺服器層級的登錄服務功能會出現在兩個清單中。

架構服務:

  • 註冊服務
  • 註冊服務 (與舊版Azure DevOps Server) 的相容性
  • 屬性服務
  • 事件服務
  • 安全性服務
  • 位置服務
  • 身分識別管理服務
  • 版本控制 Web 服務
  • 工作項目追蹤 Web 服務
  • Team Foundation Build Web 服務
  • Lab Management Web 服務
  • VMM 管理 Web 服務
  • 測試代理程式控制器 Web 服務

伺服器層級服務

伺服器層級服務 (也稱為應用層級服務) 提供Azure DevOps Server作為軟體應用程式的作業功能。 您可以使用其中一些服務來建立擴充Azure DevOps Server的應用程式。

架構服務:

  • 註冊服務
  • 事件服務
  • 專案集合服務
  • 屬性服務
  • 安全性服務
  • 位置服務
  • 身分識別管理服務
  • 管理服務
  • 集合管理服務
  • 目錄服務

資料層

資料層包含資料、預存程序和其他相關邏輯。 當您使用Azure DevOps Services時,資料層會為您裝載SQL Server Azure。 在Azure DevOps Server的本機部署中,邏輯資料層包含下列作業存放區SQL Server。 這些存放區可能位於一個實體伺服器上或散佈在許多伺服器上。 您可以使用其中一些作業存放區來建立擴充Azure DevOps Server的應用程式。

  • 組態資料庫 (TFS_Configuration)
  • 應用程式倉儲 (TFS_Warehouse)
  • Analysis Services 資料庫 (TFS_Analysis)
  • 專案集合的資料庫 (TFS_CollectionName)

下表提供Azure DevOps Server在本機部署中使用的資料庫清單。 除非另有註明,否則您可以將這個清單中的所有資料庫從安裝所在的原始伺服器及執行個體移動,並將它們還原至另一個伺服器或執行個體。

資料庫名稱 描述 伺服器
TFS_Configuration 此資料庫會儲存資源的目錄,以及Azure DevOps Server的組態資訊。 此資料庫包含Azure DevOps Server的操作存放區。 安裝及設定Azure DevOps Server時所使用的SQL Server實例。
TFS_Warehouse 此資料庫會儲存報表的資料。 安裝及設定Azure DevOps Server時所使用的SQL Server實例。
TFS_Analysis 這個多維度資料庫會儲存來自專案集合的匯總資料。 安裝及設定SQL Server Analysis Services時所使用的SQL Server實例。
專案集合的資料庫 每個專案集合都有一個資料庫,其中包含該集合中所有專案的資料。 與Azure DevOps Server相容的SQL Server實例。

用戶層

用戶層會透過伺服器物件模型與應用程式層進行通訊,並使用該層中所列的相同 Web 服務。 無論您在本機部署Azure DevOps Server,還是使用 Azure DevOps Services,這都是如此。 除了該模型以外,用戶層還包含 Visual Studio 產業夥伴 (VSIP) 元件、Microsoft Office 整合、命令列介面和簽入原則的架構。

組態

裝載的服務會視用戶端服務、本機部署,以及與裝載在雲端中的應用程式層和資料層的網際網路連線而定。 Azure DevOps Server的本機部署取決於SQL Server、Internet Information Services (IIS) 和 Windows 作業系統。 視您選擇的拓撲而定,Azure DevOps Server也可能取決於SQL Server Reporting Services或 SharePoint 產品。 因此,Azure DevOps Server的組態資訊可以儲存在下列任何位置:

  • IIS 資料存放區。
  • Azure DevOps Server的組態檔。
  • Reporting Services 的資料來源 (例如,TFSREPORTS 資料)。
  • Azure DevOps Server的組態資料庫。 Azure DevOps Server登錄是組態資料庫的一部分。
  • Windows 登錄。

如需不同本機部署拓撲和這些資源儲存位置的範例,請參閱 簡單拓撲的範例中度拓撲的範例,以及 複雜拓撲的範例。 當您維護Azure DevOps Server的本機部署時,必須將這些設定來源納入考慮。 若要以任何方式變更組態,則可能需要修改儲存在多個位置的資訊。 您也可能需要變更資料層和用戶層的組態資訊。 Azure DevOps Server包含管理主控台和數個命令列公用程式,可協助您進行這些變更。 如需詳細資訊,請參閱 系統管理工作快速參考

Active Directory 和群組身分識別的同步處理

在 Azure DevOps 在 Active Directory 網域中執行的本機部署中,當發生下列任何事件時,群組和身分識別資訊就會同步處理:

  • 應用層伺服器隨即啟動。
  • Active Directory 群組會新增至 Azure DevOps 群組。

在排程的工作經過中指定的時段。 預設值為一小時,且Azure DevOps Server每隔 24 小時更新一次的所有群組。

身分識別管理服務 (IMS) 會與 Active Directory 同步,並且變更的身分識別會從伺服器傳播至用戶端。 根據預設,所有的群組都會在 24 小時內更新,但是您可自訂這個設定,以便符合您的部署需求。 如需詳細資訊,請參閱Azure DevOps Server的信任和樹系考慮。 如需不使用 Active Directory 的本機部署,請參閱在工作組中管理Azure DevOps Server

群組和權限

在本機部署中,Azure DevOps Server有自己的預設群組和許可權集,您可以在專案、集合或伺服器層級設定。 您可以建立自訂群組,以及自訂群組和個別層級的權限。 不過,您新增至Azure DevOps Server的使用者或群組不會自動新增至本機部署Azure DevOps Server可以相依的兩個元件:SharePoint 產品與Reporting Services。 如果您的部署使用這些程式,您必須將使用者和群組新增至這些程式,並授與適當的許可權,讓這些使用者或群組在Azure DevOps Server中的所有作業都能正常運作。 如需詳細資訊,請參閱管理Azure DevOps Server中的使用者或群組

對於裝載的部署,存取權限是透過 Microsoft 帳戶和小組成員資格的組合來控制。 如需詳細資訊,請參閱Azure DevOps Services概觀

網路連接埠和通訊協定

根據預設,Azure DevOps Server的本機部署會設定為使用特定的網路埠和通訊協定。 下圖顯示簡單部署中Azure DevOps Server的網路流量。

簡單的內部部署安裝

同樣地,Azure DevOps Server的託管服務會設定為使用特定的網路埠和通訊協定。 下圖顯示裝載部署中的網路流量。

裝載Azure DevOps Server

 

下圖顯示更複雜的部署網路流量,其中包含 Visual Studio Lab Management 的元件。 (請注意,TFS 2017 和更新版本的實驗室管理已被取代。)

應用程式層

虛擬環境

虛擬機器

虛擬機器使用連接埠 80,與任何測試控制器針對實驗室管理代理程式的下載作業進行通訊。 如果您有任何通訊問題,請檢查是否已啟用這個連接埠。

預設的網路設定

根據預設,Azure DevOps 部署中電腦之間的通訊會使用下表所示的通訊協定和埠。 如果星號 (*) 後面加上連接埠號碼,您就可以自訂該連接埠。

層級和服務 通訊協定 連接埠
應用程式層 - Web 服務 HTTP/HTTPS 8080/443*
應用層 – SharePoint 產品管理 HTTP 17012* 如果 SharePoint 產品已安裝Azure DevOps Server,則為 ,否則會隨機產生
應用層 – SharePoint 產品與Reporting Services HTTP
Windows Management Instrumentation (WMI) 服務 (安裝時需要用來指定及驗證 Reporting Services 的 URL)
80* 動態埠
資料層 MS-SQL TCP 1433*
資料層 (SQL Server Analysis Services) MS-AS 預設值 (2382 或 2383)*
視您安裝的 SQL Server 版本及執行個體的類型而定,預設連接埠會有所不同。 使用 SQL Server 組態管理員判斷您的部署使用的連接埠。
Azure DevOps Proxy 伺服器 - 用戶端對 Proxy HTTP 8081*
Azure DevOps Proxy 伺服器 - Proxy 到應用層 HTTP/HTTPS 8080/443*
用戶層 - Reporting Services HTTP 80*
用戶層 - Web 服務 HTTP/HTTPS 8080/443*
建置控制器至應用層 HTTP/HTTPS 8080/443
組建代理程式到應用程式層 HTTP/HTTPS 8080/443
Release Management 伺服器 HTTP 或 HTTPS 1000*
Release Management 用戶端 HTTP 或 HTTPS 1000*
Release Management 代理程式 HTTP 或 HTTPS 1000*
測試控制器到應用程式層 HTTP/HTTPS 8080/443*
應用程式層到測試控制器 .NET Remoting 6901*
應用程式層到網域名稱系統 (DNS) DNS 動態更新 53
應用程式層 - Virtual Machine Manager HTTP 8100
測試控制器到測試代理程式 .NET Remoting 6910*
測試代理程式到測試控制器 .NET Remoting 6901*
組建控制器到組建代理程式 SOAP over HTTP 9191
實驗室代理程式到隔離環境中的實驗室代理程式 TCP 通訊端 9050
組建代理程式到組建控制器 SOAP over HTTP 9191
Virtual Machine Manager 系統管理員主控台 - Virtual Machine Manager HTTP 8100
Virtual Machine Manager - Virtual Machine Manager 主機 Windows Remote Management (WinRM) 執行動作
背景智慧型傳送服務 (BITS) 傳送資料
80 執行動作
443 傳送資料
Virtual Machine Manager - Virtual Machine Manager 程式庫伺服器 WinRM 執行動作
BITS 傳送資料
80 執行動作
443 傳送資料
應用程式層 - Virtual Machine Manager 主機 分散式元件物件模型/Windows Management Interface (DCOM/WMI) 通訊傳送資料 135
在 49152 到 65535 的範圍內以動態方式指派
用戶端層 - Virtual Machine Manager 主機 主機連接到虛擬機器。 2179 執行主機型連線
裝載的服務 HTTPS 443

可自訂的網路設定

如上表所示,您可以修改Azure DevOps Server以使用自訂埠,來變更本機部署中應用程式、資料和用戶端層之間的通訊。 下表描述將通訊埠從 HTTP 變更為 HTTPS 的範例。

注意

若要將Azure DevOps Server設定為使用 HTTPS 和安全通訊端層,您不僅必須啟用 HTTPS 網路流量的埠,還必須執行許多其他工作。 如需詳細資訊,請參閱為 Azure DevOps Server 設定具有安全通訊端層的 HTTPS (SSL)

服務 通訊協定 連接埠
具有 SSL 的 Web 服務 HTTPS 由系統管理員進行設定
SharePoint 管理中心 HTTPS 由系統管理員進行設定
SharePoint 產品 HTTPS 443
Reporting Services HTTPS 443
用戶端 Web 服務 HTTPS 由系統管理員進行設定
發行管理 HTTPS 由系統管理員進行設定