Architekturübersicht für Azure DevOps Server

Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2013

Hinweis

Azure DevOps Server wurde zuvor als Visual Studio Team Foundation Server bezeichnet.

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 verschiedene Weise bereitstellen: auf einem Server; auf vielen Servern; oder in einer Domäne oder Arbeitsgruppe oder domänenübergreifend. Alternativ können Sie auch Azure DevOps Services verwenden, in dem alle Serverelemente Ihrer Bereitstellung von Microsoft für Sie 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 ihrer Topologieauswahl können Sie die physischen und logischen Anforderungen besser verwalten, wenn Sie die zugrunde liegende Architektur Azure DevOps Server 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 deren 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 Anwendung und Die Datenebenen verwenden möchten oder ob die Anwendung und die Datenebenen in der Cloud gehostet werden sollen, indem Sie Azure DevOps Services
  • Die Position der physischen oder virtuellen Server, die diese Ebenen hosten
  • Team Foundation Build und anzahl und Speicherort von Buildcomputern, die in Ihrer Umgebung ausgeführt werden, einschließlich der Anzahl, die Sie möglicherweise zur Unterstützung Ihrer Entwicklungsmethoden benötigen, oder ob Sie Azure Pipelines Clouddienste verwenden, um Ihre Softwareanwendungen zu erstellen und bereitzustellen
  • Die potenzielle Notwendigkeit Azure DevOps Proxyservers

Darüber hinaus müssen Sie die Interaktionen zwischen diesen Entitäten berücksichtigen. Wenn Sie sich beispielsweise für die Verwendung des gehosteten Azure DevOps Server-Diensts entscheiden, müssen Sie sicherstellen, dass Ihre Clients über Port 443 auf den Dienst 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 verstehen, welche Berechtigungen Sie in Azure DevOps Server sowie die Komponenten und Programme festlegen müssen, von denen Ihre Bereitstellung abhängt.

Neben den eigenen Diensten sind Azure DevOps Server von anderen Diensten abhängig, 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 Azure DevOps Server Installationshandbuchs.

Wichtig

Sie sollten keine der Azure DevOps Server Datenbanken manuell ändern, es sei denn, Sie werden durch Microsoft-Support dazu aufgefordert, oder Sie befolgen die beschriebenen Verfahren zum manuellen Sichern der Datenbanken. 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 Architektursicht 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 Ihre 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 dass die Server verwaltet werden müssen. 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, auf denen die logische Anwendung, die Daten und die Clientebenen für Azure DevOps hosten. Einige Features, z. B. das Taskboard und teambasierte Backlogfeatures, sind vollständig webbasierte Features und greifen ausschließlich über ein Webportal, einen clientseitigen webbasierten Dienst, auf sie zu. Auf andere, z. B. die Features der Versionskontrolle, kann entweder über ein Webportal oder über eine Clientanwendung zugegriffen werden. Die folgenden Abbildungen bieten eine übersichtliche Übersicht über Webdienste, 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

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 (zur 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 Sammlungsdienst
  • 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 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 Sammlung enthält. Instanz von SQL Server, die mit dem -Azure DevOps Server.

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 Azure DevOps Server lokal bereitgestellt wird oder wenn Sie Azure DevOps Services. 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 ab. Abhängig von Ihrer gewählten Topologie kann Azure DevOps Server auch von der SQL Server Reporting Services oder SharePoint abhängig sein. 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 ist Teil der Konfigurationsdatenbank.
  • Windows-Registrierung.

Beispiele für verschiedene lokale Bereitstellungstopologien und deren Speicherung finden Sie unter Beispielefür einfache Topologien, Beispielefür mittlere Topologien 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 Befehlszeilen-Hilfsprogramme, mit deren Hilfe Sie diese Änderungen vornehmen können. Weitere Informationen finden Sie in der Kurzreferenz zu administrativen Aufgaben.

Active Directory und Synchronisierung von Gruppenidentitäten

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

  • Der Server auf Anwendungsebene wird gestartet.
  • Eine Active Directory-Gruppe wird einer gruppe Azure DevOps 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, die Active Directory nicht verwenden, 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-, Sammlungs- 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 Products 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 in allen Vorgängen in diesem Azure DevOps Server. 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 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. 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. (Beachten Sie Lab Management für TFS 2017 und höher 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 werden für die Kommunikation zwischen den Computern in Azure DevOps die in der folgenden Tabelle gezeigten Protokolle und Ports verwendet. Wenn der Portnummer ein Sternchen (*) folgt, können Sie diesen Port anpassen.

Ebene und Dienst Protokoll Port
Anwendungsebene – Webdienste HTTP/HTTPS 8080/443*
Anwendungsebene – SharePoint Products Administration HTTP 17012* , wenn SharePoint Products mit installiert Azure DevOps Server; 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*
Build controller to application tier 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 hostbasierter Verbindungen
Gehostete Dienste HTTPS 443

Anpassbare Netzwerkeinstellungen

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

Hinweis

Um die Azure DevOps Server https und Secure Sockets Layer konfigurieren zu können, 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
SharePoint HTTPS der 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