Übersicht über die Architektur für Azure DevOps Server

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

Um Ihre Bereitstellung am besten zu planen und zu verwalten, sollten Sie zunächst die zugrunde liegende Architektur von Azure DevOps Server verstehen. 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 mehreren Arten bereitstellen: auf einem Server; auf vielen Servern oder in einer Domäne oder in einer Arbeitsgruppe oder in allen Domänen. Alternativ können Sie Azure DevOps Services verwenden, wobei 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 davon, welche Topologie Sie auswählen, wenn Sie die Architektur verstehen, die Azure DevOps Server zugrunde liegt, können Sie die physischen und logischen Anforderungen besser verwalten. In diesem Artikel finden Sie 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 zu verstehen und wie sie sich auf Ihre Bereitstellung auswirkt, sollten Sie folgendes berücksichtigen:

  • Die logische Anwendung, Daten und Clientebenen von Azure DevOps und ob Sie eine oder mehrere Server für die Anwendungs- und Datenebenen verwenden möchten, oder ob sie die in der Cloud gehosteten Anwendungs- und Datenebenen verwenden möchten, indem Sie Azure DevOps Services
  • Die Position der physischen oder virtuellen Server, die diese Ebenen hosten
  • Team Foundation Build und die Anzahl und Position von Buildcomputern, die in Ihrer Umgebung ausgeführt werden, einschließlich der Anzahl, die Sie möglicherweise benötigen, um Ihre Entwicklungspraktiken zu unterstützen, 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öchten, 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 werden. Außerdem müssen Sie wissen, welche Netzwerkports und Protokolle Azure DevOps Server standardmäßig verwendet werden und welche Netzwerkports Sie anpassen können. Schließlich müssen Sie verstehen, welche Berechtigungen Sie in Azure DevOps Server und den Komponenten und Programmen festlegen müssen, auf die Ihre Bereitstellung angewiesen ist.

Neben ihren eigenen Diensten hängt Azure DevOps Server von anderen Diensten ab, 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 in Azure DevOps Server Installationshandbuch.

Wichtig

Sie sollten keine der Azure DevOps Server Datenbanken manuell ändern, es sei denn, Sie sind angewiesen, dies zu tun, indem Sie Microsoft-Support oder die beschriebenen Verfahren zum manuellen Sichern der Datenbanken ausführen. 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 eine Verbindung mit dem Dienst mithilfe Ihres Microsoft-Kontos herzustellen. Sie können Projekte erstellen, Mitglieder zu Ihrem Team hinzufügen und wie mit einer lokal installierten Azure DevOps Server arbeiten, ohne den Aufwand für die Verwaltung der Server. Azure DevOps Services hosten Ihre Anwendungsebene, Datenebene und Erstellen von Servern in der Cloud.

Weitere Informationen zu den cloudbasierten Diensten und lokalen Bereitstellungen finden Sie unter Azure DevOps Services und 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 seinem 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 einen Satz von Webdiensten und Datenbanken, die Sie separat auf dem Server oder Servern installieren und konfigurieren, die die logische Anwendung, Daten und Clientebenen für Azure DevOps hosten. Einige Features, z. B. die Taskboards und die teambasierten Features, sind vollständig webbasiert und nur über ein Webportal, ein clientseitiger Webdienst. Andere, z. B. die Versionssteuerungsfeatures, können entweder über ein Webportal oder über eine Clientanwendung aufgegriffen werden. Die folgenden Abbildungen bieten eine hohe Ansicht von Webdiensten, Anwendungen und Datenbanken für lokale Bereitstellungen von Azure DevOps Server.

Azure DevOps Server Hauptdienstebenen

Optionale Azure DevOps Server Dienste

Azure DevOps Server Clients

Dienste auf Auflistungsebene

Auflistungsebenendienste bieten die Funktionalität für Vorgänge auf Ebene der Projektsammlung. 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.

Framework-Dienste:

  • Registrierungsdienst
  • Registrierungsdienst (für 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

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

Framework-Dienste:

  • Registrierungsdienst
  • Ereignisdienst
  • Project-Auflistungsdienst
  • 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)

In der folgenden Tabelle finden Sie eine Liste der Datenbanken, die Azure DevOps Server in lokalen Bereitstellungen verwendet werden. 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 Diese Datenbank speichert den Ressourcenkatalog 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 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, 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 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 unterschiedliche lokale Bereitstellungstopologien und die Speicherorte dieser Ressourcen finden Sie unter Beispiele für einfache Topologie, Beispiele für die 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 Kurzübersicht zu administrativen 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 eine der folgenden Ereignisse auftritt:

  • Der Server auf Anwendungsebene wird gestartet.
  • Eine Active Directory-Gruppe wird einer Azure DevOps-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 aktualisieren.

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, 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 Benutzerebene anpassen. Benutzer oder Gruppen, die Sie zu 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 durch eine Kombination aus Microsoft-Konten und Teammitgliedschaft gesteuert. Weitere Informationen finden Sie in der Azure DevOps Services Übersicht.

Netzwerkanschlüsse und Protokolle

Standardmäßig ist eine lokale Bereitstellung von Azure DevOps Server so konfiguriert, dass bestimmte Netzwerkports und Protokolle verwendet werden. 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 so konfiguriert, dass bestimmte Netzwerkports und Protokolle verwendet werden. In der folgenden Abbildung ist der Netzwerkdatenverkehr in einer gehosteten Bereitstellung dargestellt.

Gehostete 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 die Lab-Verwaltung für TFS 2017 und höhere Versionen veraltet ist.)

Anwendungsebene

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 angezeigt werden. Wenn der Portnummer ein Sternchen (*) folgt, können Sie diesen Port anpassen.

Ebene und Dienst Protokoll 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 auf Anwendungsebene HTTP/HTTPS 8080/443*
Clientebene – Reporting Services HTTP 80*
Clientebene – Webdienste HTTP/HTTPS 8080/443*
Buildcontroller auf 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 der Anwendung, den Daten und den 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 Protokoll 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