Architekturübersicht für Azure DevOps Server

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

Um Ihre Bereitstellung am besten zu planen und zu verwalten, sollten Sie zunächst die zugrunde liegende Architektur von Azure DevOps Server verstehen. Das Verständnis der Architektur kann Ihnen helfen, die allgemeine Integrität der Bereitstellung aufrechtzuerhalten und die gesamtverfügbarkeit der Server und Dienste sicherzustellen, die Ihre Entwicklungsteams benötigen.

Sie können Azure DevOps Server auf verschiedene Arten bereitstellen: auf einem Server; auf vielen Servern; oder in einer Domäne oder Arbeitsgruppe oder über Domänen hinweg. Alternativ können Sie Azure DevOps Services verwenden, bei denen alle Serverelemente Ihrer Bereitstellung von Microsoft für Sie gehostet werden. Das Verständnis der Architektur kann Ihnen helfen, zu entscheiden, welche Topologie am ehesten Ihren Geschäftlichen Anforderungen entspricht. Unabhängig von Ihrer Wahl der Topologie können Sie die physischen und logischen Anforderungen besser verwalten, wenn Sie die der Architektur zugrunde liegende Struktur von Azure DevOps Server verstehen. Dieser Artikel bietet eine einfache Übersicht über die verschiedenen Architekturen mit Links zu weiteren Informationen zu Beispielbereitstellungen. Außerdem werden technische Informationen zu den Diensten, Datenbanken, Konfigurationsinformationen und Netzwerkports und Protokollen lokaler Bereitstellungen bereitgestellt.

Um die Architektur von Azure DevOps Server und ihre Auswirkungen auf Ihre Bereitstellung zu verstehen, sollten Sie Folgendes berücksichtigen:

  • Die logischen Anwendungsebenen, Datenebenen und Clientebenen von Azure DevOps, und ob Sie einen oder mehrere Server für die Anwendungs- und Datenebenen verwenden möchten oder ob Sie die Anwendungs- und Datenebenen mit Azure DevOps Services in der Cloud hosten lassen möchten.
  • Der Standort der physischen oder virtuellen Server, die diese Schichten hosten
  • Team Foundation Build sowie die Anzahl und der Speicherort von Buildcomputern, die in Ihrer Umgebung ausgeführt werden, einschließlich der Anzahl, die Sie möglicherweise zur Unterstützung Ihrer Entwicklungspraktiken benötigen, oder ob Sie Azure Pipelines-Clouddienste verwenden, um Ihre Softwareanwendungen zu erstellen und bereitzustellen
  • Die potenzielle Notwendigkeit für Azure DevOps-Proxyserver

Darüber hinaus müssen Sie die Interaktionen zwischen diesen Entitäten berücksichtigen. Wenn Sie beispielsweise den gehosteten Azure DevOps Server-Dienst verwenden, müssen Sie sicherstellen, dass Ihre Clients auf den Dienst auf Port 443 zugreifen können. Wenn Sie Azure DevOps Server lokal bereitstellen möchten, müssen Sie wissen, welche Webdienste, Datenbanken und Objektmodelle Azure DevOps Server verwendet. Außerdem müssen Sie wissen, welche Netzwerkports und Protokolle Azure DevOps Server standardmäßig verwendet und welche Netzwerkports Sie anpassen können. Schließlich müssen Sie wissen, welche Berechtigungen Sie in Azure DevOps Server und den Komponenten und Programmen festlegen müssen, von denen Ihre Bereitstellung abhängt.

Neben eigenen Diensten hängt Azure DevOps Server von anderen Diensten ab, um funktionieren zu können. Weitere Informationen zu diesen Diensten finden Sie unter Azure DevOps Server-Konzepte und -Komponenten des Azure DevOps Server Data Warehouse. Weitere Informationen zu den Anforderungen und Abhängigkeiten für die Installation finden Sie im Installationshandbuch für Azure DevOps Server.

Wichtig

Sie sollten keine der Azure DevOps Server-Datenbanken manuell ändern, es sei denn, Sie werden von Microsoft Support angewiesen, dies zu tun, oder Sie folgen den beschriebenen Verfahren zum manuellen Sichern der Datenbanken. Alle anderen Änderungen können Ihren Servicevertrag ungültig gestalten.

Azure DevOps Services

Azure DevOps Services

Microsoft bietet die Möglichkeit, Azure DevOps Services zu verwenden, die alle serverseitigen Aspekte von Azure DevOps Server für Sie hosten kann. Ihr Quellcode, Arbeitsaufgaben, Buildkonfigurationen und Teamfeatures werden alle in der Cloud gehostet. Aus architektonischer Sicht vereinfacht dies die Verwendung von Azure DevOps Server erheblich, da die einzigen Aspekte der Architektur, die Sie berücksichtigen müssen, die Clientkomponenten und deren Internetzugriff sind.

Bei Verwendung der Azure DevOps Services verwenden Sie einen Webbrowser, um mithilfe Ihres Microsoft-Kontos eine Verbindung mit dem Dienst herzustellen. Sie können Projekte erstellen, Mitglieder zu Ihrem Team hinzufügen und wie bei einem lokal installierten Azure DevOps Server arbeiten, ohne dass der Aufwand für die Verwaltung der Server besteht. Azure DevOps Services hosten Ihre Anwendungsebene, Datenebene und erstellen Server in der Cloud.

Weitere Informationen zu den Clouddiensten und lokalen Bereitstellungen finden Sie unter Azure DevOps Services im Vergleich zu Azure DevOps Server.

Das Objektmodell

Mit der gehosteten oder der lokal bereitgestellten Architektur können Sie die Features und Funktionen von Azure DevOps erweitern, indem Sie eine Anwendung schreiben, die auf ihrem Server- oder Clientobjektmodell basiert. In allen Bereitstellungstypen können Sie Anwendungen schreiben, die Clientfunktionen erweitern. Wenn Sie die Serverfunktionen jedoch erweitern möchten, muss Ihre Anwendung auf dem Server auf der Anwendungsebene ausgeführt werden. Um die Clientfunktionen zu erweitern, müssen Sie die Anwendung auf demselben Computer wie Team Explorer ausführen.

Das Azure DevOps Server-Objektmodell

Webdienste und Datenbanken für lokale Bereitstellungen

Azure DevOps Server enthält eine Reihe von Webdiensten und Datenbanken, die Sie separat auf dem Server oder den Servern installieren und konfigurieren, auf denen die logische Anwendung, Daten- und Clientebenen für Azure DevOps gehostet werden. Einige Features, z. B. das Task Board und teambasierte Funktionen, sind vollständig webbasiert und können ausschließlich über ein Webportal, einen clientseitigen webbasierten Dienst, aufgerufen werden. Andere, z. B. die Versionsverwaltungsfeatures, können über ein Webportal oder über eine Clientanwendung aufgerufen werden. Die folgenden Abbildungen enthalten eine allgemeine Übersicht über Webdienste, Anwendungen und Datenbanken für lokale Bereitstellungen von Azure DevOps Server.

Hauptdienstebenen von Azure DevOps Server

Optionale Azure DevOps Server-Dienste

Azure DevOps Server-Clients

Dienste auf Sammlungsebene

Dienste auf Sammlungsebene stellen die Funktionalität für Vorgänge auf der Ebene der Projektsammlung bereit. Sie können Anwendungen erstellen, die Azure DevOps Server erweitern, indem Sie einige dieser Dienste verwenden. Weitere Informationen zum Erstellen von Anwendungen für Azure DevOps Server finden Sie unter Entwickeln von Erweiterungen.

Hinweis

Einige Dienste werden in mehr als einer Ebene angezeigt. Beispielsweise funktioniert der Registrierungsdienst auf Sammlungsebene und auf Serverebene und wird in beiden Listen angezeigt.

Frameworkdienste:

  • Registrierungsdienst
  • Registrierungsdienst (zur Kompatibilität mit früheren Versionen von Azure DevOps Server)
  • Immobiliendienst
  • Ereignisdienst
  • Sicherheitsdienst
  • Standortdienst
  • Identitätsverwaltungsdienst
  • Versionssteuerungswebdienst
  • Webdienst für die Nachverfolgung von Arbeitsaufgaben
  • Team Foundation Build-Webdienst
  • Laborverwaltungswebdienst
  • VMM-Verwaltungswebdienst
  • Test Agent Controller-Webdienst

Dienste auf Serverebene

Dienste auf Serverebene (auch als Dienste auf Anwendungsebene bezeichnet) stellen die Funktionalität für Vorgänge für Azure DevOps Server als Softwareanwendung bereit. Sie können Anwendungen erstellen, die Azure DevOps Server erweitern, indem Sie einige dieser Dienste verwenden.

Frameworkdienste:

  • Registrierungsdienst
  • Ereignisdienst
  • Projektsammlungsdienst
  • Immobiliendienst
  • Sicherheitsdienst
  • Standortdienst
  • Identitätsverwaltungsdienst
  • Verwaltungsdienst
  • Sammlungsverwaltungsdienst
  • Katalogdienst

Datenschicht

Die Datenebene enthält Daten, gespeicherte Prozeduren und andere zugeordnete Logik. Wenn Sie Azure DevOps Services verwenden, wird die Datenebene für Sie mit SQL Server Azure gehostet. In einer lokalen Bereitstellung von Azure DevOps Server besteht die logische Datenebene aus den folgenden Betriebsspeichern in SQL Server. Diese Speicher befinden sich möglicherweise auf einem physischen Server oder werden auf vielen Servern verteilt. Sie können Anwendungen erstellen, die Azure DevOps Server erweitern, indem Sie einige dieser Betriebsspeicher verwenden.

  • Konfigurationsdatenbank (TFS_Configuration)
  • Anwendungslager (TFS_Warehouse)
  • Analysis Services-Datenbank (TFS_Analysis)
  • Datenbanken für Projektsammlungen (TFS_CollectionName)

Die folgende Tabelle enthält eine Liste der Datenbanken, die Azure DevOps Server in lokalen Bereitstellungen verwendet. Sofern nicht anders angegeben, können Sie alle Datenbanken in dieser Liste vom ursprünglichen Server und der Instanz verschieben, in der sie installiert sind, und sie auf einen anderen Server oder eine andere Instanz wiederherstellen.

Datenbankname BESCHREIBUNG Server
TFS_Configuration Diese Datenbank speichert den Katalog der Ressourcen und die Konfigurationsinformationen für Azure DevOps Server. Diese Datenbank enthält die Betriebsspeicher für Azure DevOps Server. Instanz von SQL Server, die verwendet wird, wenn Azure DevOps Server installiert und konfiguriert wird.
TFS_Warehouse Diese Datenbank speichert die Daten für Berichte. Instanz von SQL Server, die verwendet wird, wenn Azure DevOps Server installiert und konfiguriert wird.
TFS_Analysis Diese mehrdimensionale Datenbank speichert die aggregierten Daten aus Projektsammlungen. Instanz von SQL Server, die beim Installieren und Konfigurieren von SQL Server Analysis Services verwendet wird.
Datenbanken für Projektsammlungen Eine Datenbank für jede Projektsammlung, die Daten aus allen Projekten in dieser Auflistung enthält. Instanz von SQL Server, die mit Azure DevOps Server kompatibel ist.

Kundenebene

Die Clientebene kommuniziert mit der Anwendungsebene über das Serverobjektmodell und verwendet dieselben Webdienste, die für diese Ebene aufgeführt sind. Dies gilt unabhängig davon, ob Sie Azure DevOps Server lokal bereitstellen oder Azure DevOps Services verwenden. Neben diesem Modell besteht die Clientebene aus Visual Studio Industry Partners (VSIP)-Komponenten, Microsoft Office-Integration, Befehlszeilenschnittstellen und einem Framework für Check-In-Richtlinien.

Konfiguration

Der gehostete Dienst hängt von den Clientdiensten ab, die lokal bereitgestellt werden, und einer Internetverbindung mit der Anwendung und den Datenebenen, die in der Cloud gehostet werden. Eine lokale Bereitstellung von Azure DevOps Server hängt von SQL Server, Internetinformationsdienste (IIS) und dem Windows-Betriebssystem ab. Abhängig von Ihrer ausgewählten Topologie hängt Azure DevOps Server möglicherweise auch von SQL Server Reporting Services oder SharePoint-Produkten ab. Daher können Konfigurationsinformationen für Azure DevOps Server an einem der folgenden Speicherorte gespeichert werden:

  • IIS-Datenspeicher.
  • Konfigurationsdateien für Azure DevOps Server.
  • Datenquellen für Reporting Services (z. B. TFSREPORTS-Daten).
  • Konfigurationsdatenbank für Azure DevOps Server. Die Azure DevOps Server-Registrierung ist Teil der Konfigurationsdatenbank.
  • Windows-Registrierung.

Beispiele für verschiedene lokale Bereitstellungstopologien und wo diese Ressourcen gespeichert werden, finden Sie unter Beispiele für einfache Topologie, Beispiele für moderate Topologie und Beispiele für komplexe Topologie. Während Sie eine lokale Bereitstellung von Azure DevOps Server verwalten, müssen Sie diese Konfigurationsquellen berücksichtigen. Um die Konfiguration auf irgendeine Weise zu ändern, müssen Sie möglicherweise Informationen ändern, die an mehreren Speicherorten gespeichert sind. Möglicherweise müssen Sie auch Konfigurationsinformationen für die Daten- und Clientebenen ändern. Azure DevOps Server enthält eine Verwaltungskonsole und mehrere Befehlszeilenprogramme, mit denen Sie diese Änderungen vornehmen können. Weitere Informationen finden Sie in der Kurzübersicht zu administrativen Aufgaben.

Active Directory und Synchronisierung von Gruppenidentitäten

In lokalen Bereitstellungen, bei denen Azure DevOps in einer Active Directory-Domäne ausgeführt wird, werden Gruppen- und Identitätsinformationen synchronisiert, wenn eines der folgenden Ereignisse auftritt:

  • Der Anwendungsebenenserver wird gestartet.
  • Eine Active Directory-Gruppe wird einer Azure DevOps-Gruppe hinzugefügt.

Der Zeitraum, der im geplanten Auftrag angegeben ist, ist abgelaufen. Der Standardwert ist eine Stunde, und alle Gruppen in Azure DevOps Server werden alle 24 Stunden aktualisiert.

Identitätsverwaltungsdienste (Identity Management Services, IMS) werden mit Active Directory synchronisiert und geänderte Identitäten vom Server an die Clients verteilt. Standardmäßig werden alle Gruppen innerhalb von 24 Stunden aktualisiert, aber Sie können dies an die Anforderungen Ihrer Bereitstellung anpassen. Weitere Informationen finden Sie unter Vertrauensstellungen und Waldstrukturen: Aspekte für Azure DevOps Server. Informationen zu lokalen Bereitstellungen, die active Directory nicht verwenden, finden Sie unter Verwalten von Azure DevOps Server in einer Arbeitsgruppe.

Gruppen und Berechtigungen

In einer lokalen Bereitstellung verfügt Azure DevOps Server über einen eigenen Satz von Standardgruppen und Berechtigungen, die Sie auf Projekt-, Sammlungs- oder Serverebene festlegen können. Sie können benutzerdefinierte Gruppen erstellen und Berechtigungen auf Gruppen- und einzelnen Ebenen anpassen. Benutzer oder Gruppen, die Sie Azure DevOps Server hinzufügen, werden jedoch nicht automatisch zu zwei Komponenten hinzugefügt, von denen lokale Bereitstellungen von Azure DevOps Server abhängen können: SharePoint-Produkte und Reporting Services. Wenn Ihre Bereitstellung diese Programme verwendet, müssen Sie ihnen Benutzer und Gruppen hinzufügen und den entsprechenden Berechtigungen erteilen, damit diese Benutzer oder Gruppen in allen Vorgängen in Azure DevOps Server ordnungsgemäß funktionieren. Weitere Informationen finden Sie unter Verwalten von Benutzern oder Gruppen in Azure DevOps Server.

Für gehostete Bereitstellungen wird der Zugriff über eine Kombination aus Microsoft-Konten und Teammitgliedschaften gesteuert. Weitere Informationen finden Sie in der Übersicht über Azure DevOps Services.

Netzwerkports und Protokolle

Standardmäßig ist eine lokale Bereitstellung von Azure DevOps Server für die Verwendung bestimmter Netzwerkports und Protokolle konfiguriert. Die folgende Abbildung zeigt den Netzwerkdatenverkehr für Azure DevOps Server in einer einfachen Bereitstellung.

Einfache lokale Installation

Ebenso ist der gehostete Dienst für Azure DevOps Server für die Verwendung bestimmter Netzwerkports und Protokolle konfiguriert. Die folgende Abbildung zeigt den Netzwerkdatenverkehr in einer gehosteten Bereitstellung.

Gehosteter Azure DevOps-Server

 

Die folgende Abbildung zeigt den Netzwerkdatenverkehr in einer komplexeren Bereitstellung, die die Komponenten für Visual Studio Lab Management enthält. (Beachten Sie, dass lab Management für TFS 2017 und höhere Versionen veraltet ist.)

Anwendungsebene

Virtuelle Umgebungen

Virtuelle Computer

Virtuelle Computer verwenden Port 80, um mit jedem Testcontroller über den Download eines Laborverwaltungs-Agents zu kommunizieren. Überprüfen Sie, ob dieser Port aktiviert ist, wenn Kommunikationsprobleme auftreten.

Standardnetzwerkeinstellungen

Standardmäßig verwendet die Kommunikation zwischen den Computern in einer Bereitstellung von Azure DevOps die Protokolle und Ports, die in der folgenden Tabelle dargestellt sind. Wenn ein Sternchen (*) der Portnummer folgt, können Sie diesen Port anpassen.

Ebene und Service Protokoll Hafen
Anwendungsebene – Webdienste HTTP/HTTPS 8080/443*
Anwendungsebene – Verwaltung von SharePoint-Produkten HTTP 17012* wenn SharePoint-Produkte mit Azure DevOps Server installiert wurden; andernfalls zufällig generiert
Anwendungsebene – SharePoint-Produkte und Reporting Services HTTP
Windows-Verwaltungsinstrumentationsdienst (WMI) (erforderlich während der Installation, um die URLs für Reporting Services anzugeben und zu überprüfen)
80* Dynamischer Port
Datenschicht MS-SQL TCP 1433*
Datenebene (SQL Server Analysis Services) MS-AS Standard (2382 oder 2383)*
Der Standardport variiert je nach version von SQL Server, die Sie installiert haben, und dem Typ der Instanz. Verwenden Sie SQL Server Configuration Manager, um die ports zu bestimmen, die von Ihrer Bereitstellung verwendet werden.
Azure DevOps-Proxyserver – Client zu Proxy HTTP 8081*
Azure DevOps-Proxyserver – Proxy-zu-Anwendungsebene HTTP/HTTPS 8080/443*
Kundenstufe – Reporting Services HTTP 80*
Clientebene – Webdienste HTTP/HTTPS 8080/443*
Build-Controller auf der Anwendungsschicht HTTP/HTTPS 8080/443
Build-Agent auf Anwendungsebene HTTP/HTTPS 8080/443
Release-Verwaltungsserver HTTP oder HTTPS 1000*
ReleaseVerwaltungsclient HTTP oder HTTPS 1000*
Freigabemanagement-Agent HTTP oder HTTPS 1000*
Testcontroller auf Anwendungsebene HTTP/HTTPS 8080/443*
Anwendungsebene zum Testen des Controllers .NET-Remoting 6901*
Anwendungsebene für das Domain Name System (DNS) Dynamisches DNS-Update 53
Anwendungsebene – Virtual Machine Manager HTTP 8100
Test-Controller zum Testen des Agenten .NET-Remoting 6910*
Test-Agent zum Testen des Controllers .NET-Remoting 6901*
Build-Controller zum Bauen des Agenten SOAP über HTTP 9191
Lab-Agent zum Lab-Agent in einer isolierten Umgebung TCP-Sockets 9050
Build-Agent zum Erstellen des Controllers SOAP über HTTP 9191
Virtual Machine Manager-Administratorkonsole – Virtual Machine Manager HTTP 8100
Virtual Machine Manager – Virtual Machine Manager Hosts Windows Remote Management (WinRM) zum Ausführen von Aktionen
Intelligent Transfer Service (Background Intelligent Transfer Service, BITS) zum Übertragen von Daten
80 zum Ausführen von Aktionen
443 zum Übertragen von Daten
Virtual Machine Manager– Bibliotheksserver für Virtual Machine Manager WinRM zum Ausführen von Aktionen
BITS zum Übertragen von Daten
80 zum Ausführen von Aktionen
443 zum Übertragen von Daten
Anwendungsebene – Virtual Machine Manager-Hosts Distributed Component Object Model/Windows Management Interface (DCOM/WMI)-Kommunikation zum Übertragen von Daten 135
Dynamisch zugewiesene Werte im Bereich von 49152 bis 65535
Client-Schicht – Virtual Machine-Manager-Hosts Hostbasierte Verbindung mit dem virtuellen Computer. 2179 zum Ausführen hostbasierter Verbindungen
Gehostete Dienste HTTPS 443

Anpassbare Netzwerkeinstellungen

Wie in der vorherigen Tabelle gezeigt, können Sie die Kommunikation zwischen anwendung, Daten und Clientebenen in lokalen Bereitstellungen ändern, indem Sie Azure DevOps Server so ändern, dass benutzerdefinierte Ports verwendet werden. In der folgenden Tabelle werden Beispieländerungen in Ports von HTTP zu HTTPS beschrieben.

Hinweis

Um Azure DevOps Server für die Verwendung von HTTPS und Secure Sockets Layer zu konfigurieren, müssen Sie nicht nur Ports für HTTPS-Netzwerkdatenverkehr aktivieren, sondern auch viele andere Aufgaben ausführen. Weitere Informationen finden Sie unter Einrichten von HTTPS mit Secure Sockets Layer (SSL) für Azure DevOps Server.

Dienstleistung Protokoll Hafen
Webdienste mit SSL HTTPS Vom Administrator konfiguriert
HTTPS für die SharePoint-Zentraladministration Vom Administrator konfiguriert
SharePoint-Produkte HTTPS 443
Berichterstellungsdienste HTTPS 443
Clientwebdienste HTTPS Vom Administrator konfiguriert
Versionsverwaltung HTTPS Vom Administrator konfiguriert