Architekturübersicht für Azure DevOps Server

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

Um Ihre Bereitstellung optimal zu planen und zu verwalten, sollten Sie sich zunächst mit der zugrunde liegenden Architektur Azure DevOps Server vertraut machen. Mit dem Verständnis in Bezug auf die Architektur können Sie die allgemeine Integrität der Bereitstellung beibehalten und die gesamte Verfügbarkeit der Server und Dienste sicherstellen, die für das Entwicklungsteam unerlässlich sind.

Sie können Azure DevOps Server auf verschiedene Arten bereitstellen: auf einem Server, auf vielen Servern, in einer Domäne oder Arbeitsgruppe oder domänenübergreifend. Alternativ können Sie Azure DevOps Services verwenden, bei dem alle Serverelemente Ihrer Bereitstellung für Sie von Microsoft gehostet werden. Durch das Verständnis der Architektur können Sie besser entscheiden, welche Topologie am ehesten zu Ihren Geschäftsanforderungen passt. Unabhängig von der Topologie Können Sie die physischen und logischen Anforderungen besser verwalten, wenn Sie die Azure DevOps Server zugrunde liegende Architektur verstehen. Dieser Artikel bietet eine einfache Übersicht über die verschiedenen Architekturen mit Links zu weiteren Informationen zu Beispielbereitstellungen. Außerdem bietet es technische Informationen über die Dienste, die Datenbanken, die Konfigurationsinformationen und die Netzwerkports und die Protokolle der lokalen Bereitstellungen.

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

  • Die logischen Anwendungs-, Daten- 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 Anwendung und die Datenebenen in der Cloud mithilfe von Azure DevOps Services
  • Die Position der physischen oder virtuellen Server, die diese Ebenen hosten
  • Team Foundation Build und die Anzahl und den Speicherort der Buildcomputer, die in Ihrer Umgebung ausgeführt werden, einschließlich der Anzahl, die Sie möglicherweise benötigen, um Ihre Entwicklungsmethoden zu unterstützen, oder ob Sie Azure Pipelines-Clouddienste zum Erstellen und Bereitstellen Ihrer Softwareanwendungen verwenden
  • Potenzieller Bedarf an 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öchten, müssen Sie sicherstellen, dass Ihre Clients auf den Dienst an 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 verwenden. 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 den eigenen Diensten ist Azure DevOps Server von anderen Diensten abhängig, um zu funktionieren. 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 unter Azure DevOps Server Installationshandbuch.

Wichtig

Sie sollten keine der Azure DevOps Server Datenbanken manuell ändern, es sei denn, Sie werden dazu durch Microsoft-Support angewiesen oder sie führen die beschriebenen Verfahren zum manuellen Sichern der Datenbanken aus. Alle anderen Änderungen können dazu führen, dass die Vereinbarung zum Servicelevel ungültig wird.

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. Der Quellcode, die Arbeitsaufgaben, die Buildkonfigurationen und die Teamfunktionen werden 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.

Wenn Sie die Azure DevOps Services verwenden, verwenden Sie einen Webbrowser, um über Ihr Microsoft-Konto 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 den Aufwand für die Verwaltung der Server zu verursachen. Azure DevOps Services hostet Ihre Anwendungsebene, Datenebene und Buildserver in der Cloud.

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

Das Objektmodell

Mit der gehosteten oder 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. Sie können in allen Bereitstellungstypen Anwendungen schreiben, die Clientfunktionen erweitern. Wenn Sie jedoch die Serverfunktionen erweitern möchten, muss die Anwendung auf dem Anwendungsebenenserver 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, die die logischen Anwendungs-, Daten- und Clientebenen für Azure DevOps hosten. Einige Features, z. B. das Taskboard und teambasierte Backlogfunktionen, sind vollständig webbasiert und können ausschließlich über ein Webportal, einen clientseitigen webbasierten Dienst, zugegriffen werden. Auf andere, z. B. die Versionsverwaltungsfeatures, kann entweder über ein Webportal oder über eine Clientanwendung zugegriffen werden. Die folgenden Abbildungen bieten eine allgemeine Ansicht von Webdiensten, Anwendungen und Datenbanken für lokale Bereitstellungen von Azure DevOps Server.

Azure DevOps Server Standard Dienstebenen

Optionale Azure DevOps Server-Dienste

Azure DevOps Server Clients

Dienste auf Auflistungsebene

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. Der Registrierungsdienst funktioniert beispielsweise sowohl auf der Auflistungsebene als auch auf der Serverebene und wird in beiden Listen angezeigt.

Frameworkdienste:

  • Registrierungsdienst
  • Registrierungsdienst (aus Gründen der Kompatibilität mit früheren Versionen von Azure DevOps Server)
  • Eigenschaftendienst
  • Ereignisdienst
  • Sicherheitsdienst
  • „Positionsdienst”
  • Identitätsverwaltungsdienst
  • Webdienst zur Versionskontrolle
  • Webdienst zur Arbeitsaufgabenverfolgung
  • Team Foundation Build-Webdienst
  • Lab Management-Webdienst
  • VMM-Verwaltungs-Webdienst
  • 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
  • Project Collection Service
  • Eigenschaftendienst
  • Sicherheitsdienst
  • „Positionsdienst”
  • Identitätsverwaltungsdienst
  • Verwaltungsdienst
  • Auflistungsverwaltungsdienst
  • Katalogdienst

Datenschicht

Die Datenebene enthält Daten, gespeicherte Prozeduren und weitere zugeordnete Logiken. 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 innerhalb SQL Server. Diese Speicher befinden sich möglicherweise auf einem physischen Server oder sind über mehrere Server verteilt. Sie können Anwendungen erstellen, die Azure DevOps Server erweitern, indem Sie einige dieser Betriebsspeicher verwenden.

  • Konfigurationsdatenbank (TFS_Configuration)
  • Anwendungs-Warehouse (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 aus dem ursprünglichen Server und der Instanz, in der sie installiert sind verschieben und sie auf einem anderen Server oder einer anderen Instanz wiederherstellen.

Datenbankname BESCHREIBUNG Server
TFS_Configuration In dieser Datenbank werden der Ressourcenkatalog und die Konfigurationsinformationen für Azure DevOps Server gespeichert. 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 In dieser Datenbank werden die Daten für Berichte gespeichert. 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 verwendet wird, wenn SQL Server Analysis Services installiert und konfiguriert 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.

Clientebene

Die Clientebene kommuniziert mit der Anwendungsebene über das Serverobjektmodell und verwendet die gleichen Webdienste, die in der Anwendungsebene 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 VSIP-Komponenten (Visual Studio Industry Partners), Microsoft Office-Integration, Befehlszeilenschnittstellen und einem Framework für Eincheckrichtlinien.

Konfiguration

Der gehostete Dienst ist von den lokal bereitgestellten Clientdiensten abhängig und von einer Internetverbindung mit den Anwendungs- und 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 gewählten Topologie können Azure DevOps Server auch von SQL Server Reporting Services oder SharePoint-Produkten abhängen. 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 Topologien. Wenn Sie eine lokale Bereitstellung von Azure DevOps Server verwalten, müssen Sie diese Konfigurationsquellen berücksichtigen. Zur Änderung der Konfiguration müssen Sie ggf. Informationen in verschiedenen Speicherorten ändern. Möglicherweise müssen Sie auch Konfigurationsinformationen für die Daten- und Clientebene ändern. Azure DevOps Server enthält eine Verwaltungskonsole und mehrere Befehlszeilenprogramme, mit denen Sie diese Änderungen vornehmen können. Weitere Informationen finden Sie unter Schnellübersicht zu verwaltungstechnischen Aufgaben.

Active Directory und Synchronisierung von Gruppenidentitäten

In lokalen Bereitstellungen, in 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.
  • Einer Azure DevOps-Gruppe wird eine Active Directory-Gruppe hinzugefügt.

Der im geplanten Auftrag angegebene Zeitraum läuft ab. Der Standardwert ist eine Stunde, und alle Gruppen in Azure DevOps Server alle 24 Stunden aktualisiert.

Identitätsverwaltungsdienste (Identity Management Services, IMS) werden mit Active Directory synchronisiert, und geänderte Identitäten werden vom Server an die Clients weitergegeben. Standardmäßig werden alle Gruppen innerhalb von 24 Stunden aktualisiert. Sie können das aber anpassen, damit die Updates den Anforderungen der Bereitstellung besser gerecht werden. Weitere Informationen finden Sie unter Überlegungen zu Vertrauensstellungen und Gesamtstrukturen für Azure DevOps Server. Informationen zu lokalen Bereitstellungen ohne Active Directory finden Sie unter Verwalten 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-, Auflistungs- oder Serverebene festlegen können. Sie können benutzerdefinierte Gruppen erstellen und Berechtigungen auf Gruppen- und Benutzerebene anpassen. Benutzer oder Gruppen, die Sie Azure DevOps Server hinzufügen, werden jedoch nicht automatisch 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 die entsprechenden Berechtigungen erteilen, damit diese Benutzer oder Gruppen für alle Vorgänge 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 durch eine Kombination aus Microsoft-Konten und Teammitgliedschaft gesteuert. Weitere Informationen finden Sie in der Übersicht über Azure DevOps Services.

Netzwerkanschlüsse 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 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. In der folgenden Abbildung ist der Netzwerkdatenverkehr in einer gehosteten Bereitstellung dargestellt.

Gehostete Azure DevOps Server

 

Die folgende Abbildung zeigt 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.)

Logikschicht

Virtuelle Umgebungen

virtuelle Computer

Virtuelle Computer verwenden Port 80 für die Kommunikation mit Testcontrollern zum Download eines Lab Management-Agents. Überprüfen Sie, ob dieser Port aktiviert ist, sollten 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 der Portnummer ein Sternchen (*) folgt, können Sie diesen Port anpassen.

Ebene und Dienst Protocol Port
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-Verwaltungsinstrumentation-Dienst (Windows Management Instrumentation, WMI) (erforderlich bei 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 der installierten SQL Server-Version und dem Instanztyp. Verwenden Sie den SQL Server-Konfigurations-Manager, um die von der Bereitstellung verwendeten Ports zu ermitteln.
Azure DevOps-Proxyserver – Client zu Proxy HTTP 8081*
Azure DevOps-Proxyserver– Proxy-zu-Anwendungsebene HTTP/HTTPS 8080/443*
Clientebene – Reporting Services HTTP 80*
Clientebene – Webdienste HTTP/HTTPS 8080/443*
Erstellen eines Controllers für die Anwendungsebene HTTP/HTTPS 8080/443
Build-Agent – Anwendungsebene HTTP/HTTPS 8080/443
Release Management Server HTTP oder HTTPS 1000*
Release Management Client HTTP oder HTTPS 1000*
Release Management Agent HTTP oder HTTPS 1000*
Testcontroller – Anwendungsebene HTTP/HTTPS 8080/443*
Anwendungsebene – Testcontroller .NET-Remoting 6901*
Anwendungsebene – Domain Name System (DNS) Dynamisches Update für DNS 53
Anwendungsebene – Virtual Machine Manager HTTP 8100
Testcontroller – Test-Agent .NET-Remoting 6910*
Test-Agent – Testcontroller .NET-Remoting 6901*
Buildcontroller – Build-Agent SOAP über HTTP 9191
Labor-Agent – Labor-Agent in einer isolierten Umgebung TCP-Sockets 9050
Build-Agent – Buildcontroller SOAP über HTTP 9191
Virtual Machine Manager-Administratorkonsole – Virtual Machine Manager HTTP 8100
Virtual Machine Manager – Virtual Machine Manager-Hosts Windows-Remoteverwaltung (Windows Remote Management, WinRM) zum Ausführen von Aktionen
Intelligenter Hintergrundübertragungsdienst (Background Intelligent Transfer Service, BITS) zum Übertragen von Daten
80 zum Ausführen von Aktionen
443 für Datenübertragung
Virtual Machine Manager – Virtual Machine Manager-Bibliotheksserver WinRM zum Auszuführen von Aktionen
BITS für Datenübertragung
80 zum Ausführen von Aktionen
443 für Datenübertragung
Anwendungsebene – Virtual Machine Manager-Hosts Kommunikation Distributed Component Object Model (DCOM)/Windows-Verwaltungsschnittstelle für Datenübertragung 135
Dynamisch im Bereich von 49152 bis 65535 zugewiesen
Clientebene – Virtual Machine Manager-Hosts Hostbasierte Verbindung zum virtuellen Computer. 2179 zum Ausführen von hostbasierten Verbindungen
Gehostete Dienste HTTPS 443

Anpassbare Netzwerkeinstellungen

Wie in der vorherigen Tabelle gezeigt, können Sie die Kommunikation zwischen den Anwendungs-, Daten- und Clientebenen in lokalen Bereitstellungen ändern, indem Sie Azure DevOps Server ändern, um benutzerdefinierte Ports zu verwenden. Die folgende Tabelle dient als Beispiel für Portänderungen von HTTP in HTTPS.

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.

Dienst Protocol Port
Webdienste mit SSL HTTPS Wird vom Administrator konfiguriert
HTTPS der SharePoint-Zentraladministration Wird vom Administrator konfiguriert
SharePoint-Produkte HTTPS 443
Reporting Services HTTPS 443
Client-Webdienste HTTPS Wird vom Administrator konfiguriert
Release Management HTTPS Wird vom Administrator konfiguriert