Azure DevOps Server的架構概觀

Azure DevOps Server 2022 |Azure DevOps Server 2020 |Azure DevOps Server 2019

若要最佳規劃和管理部署,您應該先瞭解 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 由系統管理員進行設定