Vue d’ensemble de l’architecture pour Azure DevOps Server

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

Pour planifier et gérer au mieux votre déploiement, vous devez d’abord comprendre l’architecture sous-jacente de Azure DevOps Server. La compréhension de l'architecture peut vous aider à assurer l'intégrité globale du déploiement et à garantir la disponibilité globale des serveurs et des services dont vos équipes de développement ont besoin.

Vous pouvez déployer Azure DevOps Server de plusieurs façons : sur un serveur, sur plusieurs serveurs, ou dans un domaine ou un groupe de travail ou entre des domaines. Vous pouvez également choisir d’utiliser Azure DevOps Services, où tous les éléments serveur de votre déploiement sont hébergés pour vous par Microsoft. La compréhension de l'architecture peut vous aider à choisir la topologie la plus à même de répondre aux besoins de votre organisation. Quel que soit votre choix de topologie, si vous comprenez l’architecture sous-jacente Azure DevOps Server, vous pouvez mieux gérer les exigences physiques et logiques. Cet article fournit une vue d’ensemble simple des différentes architectures, avec des liens vers plus d’informations sur les exemples de déploiements. Il fournit également des informations techniques relatives aux services, aux bases de données, aux données de configuration et aux ports réseau et protocoles de déploiements locaux.

Pour comprendre l’architecture de Azure DevOps Server et son impact sur votre déploiement, vous devez prendre en compte les éléments suivants :

  • Les niveaux application logique, données et client d’Azure DevOps, et si vous souhaitez utiliser un ou plusieurs serveurs pour les niveaux Application et Données, ou si vous souhaitez que les niveaux Application et Données soient hébergés dans le cloud pour vous à l’aide de Azure DevOps Services
  • L'emplacement des serveurs physiques ou virtuels qui hébergent ces couches
  • Team Foundation Build et le nombre et l’emplacement des ordinateurs de build qui s’exécutent dans votre environnement, y compris le nombre dont vous pourriez avoir besoin pour prendre en charge vos pratiques de développement, ou si vous allez utiliser les services cloud Azure Pipelines pour créer et déployer vos applications logicielles
  • Le besoin potentiel pour le serveur proxy Azure DevOps

De plus, vous devez considérer les interactions entre ces entités. Par exemple, si vous choisissez d’utiliser le service Azure DevOps Server hébergé, vous devez vous assurer que vos clients peuvent accéder au service sur le port 443. Si vous choisissez de déployer Azure DevOps Server localement, vous devez savoir quels services Web, bases de données et modèles objet Azure DevOps Server utilise. En outre, vous devez savoir quels ports réseau et protocoles Azure DevOps Server utilise par défaut et quels ports réseau vous pouvez personnaliser. Enfin, vous devez comprendre les autorisations que vous devez définir dans Azure DevOps Server et les composants et programmes dont dépend votre déploiement.

Outre ses propres services, Azure DevOps Server dépend d’autres services pour fonctionner. Pour plus d’informations sur ces services, consultez Concepts Azure DevOps Server et Composants de l’entrepôt de données Azure DevOps Server. Pour plus d’informations sur la configuration requise et les dépendances pour l’installation, consultez Azure DevOps Server guide d’installation.

Important

Vous ne devez pas modifier manuellement les bases de données Azure DevOps Server, sauf si vous êtes invité à le faire par Support Microsoft ou si vous suivez les procédures décrites pour la sauvegarde manuelle des bases de données. Toutes les autres modifications peuvent invalider votre contrat de service.

Azure DevOps Services

Azure DevOps Services

Microsoft offre la possibilité d’utiliser Azure DevOps Services, qui peut héberger tous les aspects côté serveur de Azure DevOps Server pour vous. Le code source, les éléments de travail, les configurations de build et les fonctionnalités d'équipe sont hébergés dans le cloud. D’un point de vue architectural, cela simplifie considérablement l’utilisation de Azure DevOps Server, car les seuls aspects de l’architecture que vous devez prendre en compte sont les composants clients et leur accès à Internet.

Lorsque vous utilisez le Azure DevOps Services, vous utilisez un navigateur web pour vous connecter au service à l’aide de votre compte Microsoft. Vous pouvez créer des projets, ajouter des membres à votre équipe et travailler comme vous le feriez avec un Azure DevOps Server installé localement, sans la surcharge liée à l’administration des serveurs. Azure DevOps Services héberge vos serveurs de couche Application, de couche Données et de build dans le cloud.

Pour en savoir plus sur les services cloud et les déploiements locaux, passez en revue Azure DevOps Services et Azure DevOps Server.

Modèle d'objet

Avec l’architecture hébergée ou déployée localement, vous pouvez étendre les fonctionnalités d’Azure DevOps en écrivant une application basée sur son modèle objet serveur ou client. Dans tous les types de déploiement, écrivez les applications qui étendent les fonctionnalités clientes. Cependant, si vous souhaitez étendre les fonctions de serveur, votre application doit s'exécuter sur le serveur de couche Application. Pour étendre les fonctionnalités du client, vous devez exécuter l’application sur le même ordinateur que Team Explorer.

Modèle objet Azure DevOps Server

Services web et bases de données pour les déploiements locaux

Azure DevOps Server inclut un ensemble de services web et de bases de données que vous installez et configurez séparément sur le ou les serveurs qui hébergent les niveaux application logique, données et client pour Azure DevOps. Certaines fonctionnalités, telles que le tableau des tâches et les fonctionnalités basées sur l’équipe de backlog, sont entièrement basées sur le web et accessibles uniquement via un portail web, un service web côté client. D’autres, telles que les fonctionnalités de gestion de version, sont accessibles via un portail web ou via une application cliente. Les illustrations suivantes fournissent une vue d’ensemble des services web, des applications et des bases de données pour les déploiements locaux de Azure DevOps Server.

Azure DevOps Server main niveaux de service

Services Azure DevOps Server facultatifs

Azure DevOps Server clients

Services au niveau de la collection

Les services au niveau du regroupement fournissent les fonctionnalités pour les opérations au niveau de la collection de projets. Vous pouvez créer des applications qui étendent Azure DevOps Server à l’aide de certains de ces services. Pour plus d’informations sur la création d’applications pour Azure DevOps Server, consultez Développer des extensions.

Notes

Certains services s'affichent dans plusieurs niveaux. Par exemple, les fonctions du service Registre au niveau de la collection et au niveau serveur, et apparaît dans les deux listes.

Services d’infrastructure :

  • Service de registre
  • Service d’inscription (pour la compatibilité avec les versions antérieures de Azure DevOps Server)
  • Service de propriété
  • Service d'événement
  • Service de sécurité
  • Service de localisation
  • Service de gestion des identités
  • Service web de contrôle de version
  • Service web de suivi des éléments de travail
  • Service web Team Foundation Build
  • Service web Lab Management
  • Service web d'administration VMM
  • Service web du contrôleur d'agent de test

Services au niveau du serveur

Les services au niveau du serveur (également appelés services au niveau de l’application) fournissent les fonctionnalités d’opérations pour Azure DevOps Server en tant qu’application logicielle. Vous pouvez créer des applications qui étendent Azure DevOps Server à l’aide de certains de ces services.

Services d’infrastructure :

  • Service de registre
  • Service d’événements
  • Service de collection de projets
  • Service de propriété
  • Service de sécurité
  • Service de localisation
  • Service de gestion des identités
  • Service d'administration
  • Service de gestion de collection
  • Service de catalogue

Couche Données

La couche Données inclut des données, des procédures stockées et une autre logique associée. Lorsque vous utilisez Azure DevOps Services, la couche Données est hébergée pour vous à l’aide de SQL Server Azure. Dans un déploiement local de Azure DevOps Server, la couche Données logiques se compose des magasins opérationnels suivants au sein de SQL Server. Ces magasins peuvent se trouver sur un serveur physique ou être distribués sur plusieurs serveurs. Vous pouvez créer des applications qui étendent Azure DevOps Server à l’aide de certains de ces magasins opérationnels.

  • Base de données de configuration (TFS_Configuration)
  • Entrepôt d'application (TFS_Warehouse)
  • Base de données Analysis Services (TFS_Analysis)
  • Bases de données pour les collections de projets (TFS_CollectionName)

Le tableau suivant fournit une liste des bases de données que Azure DevOps Server utilise dans les déploiements locaux. Sauf indication contraire, vous pouvez déplacer toutes les bases de données de cette liste à partir du serveur d'origine et de l'instance où elles sont installées, puis les restaurer sur un autre serveur ou une autre instance.

Nom de la base de données Description Serveur
TFS_Configuration Cette base de données stocke le catalogue de ressources et les informations de configuration pour Azure DevOps Server. Cette base de données contient les magasins opérationnels pour Azure DevOps Server. Instance de SQL Server utilisée lors de l’installation et de la configuration de Azure DevOps Server.
TFS_Warehouse Cette base de données stocke les données pour les rapports. Instance de SQL Server utilisée lors de l’installation et de la configuration de Azure DevOps Server.
TFS_Analysis Cette base de données multidimensionnelle stocke les données agrégées des collections de projets. Instance de SQL Server utilisée lors de l’installation et de la configuration de SQL Server Analysis Services.
Bases de données pour les collections de projets Une base de données pour chaque collection de projets, contenant les données de tous les projets de cette collection. Instance de SQL Server compatible avec Azure DevOps Server.

Couche cliente

La couche Application communique avec cette couche via le modèle d'objet serveur et utilise les mêmes services web qui sont répertoriés pour cette couche. Cela est vrai si vous déployez Azure DevOps Server localement ou si vous utilisez Azure DevOps Services. Outre ce modèle, la couche cliente est constituée de composants Visual Studio Industry Partners (VSIP), de l'intégration Microsoft Office, des interfaces en ligne de commande et d'une infrastructure pour les stratégies d'archivage.

Configuration

Le service hébergé dépend des services clients déployés localement et d'une connexion Internet à l'application et aux couches Données hébergées dans le cloud. Un déploiement local de Azure DevOps Server dépend de SQL Server, des services INTERNET (IIS) et du système d’exploitation Windows. En fonction de la topologie choisie, Azure DevOps Server peuvent également dépendre de SQL Server Reporting Services ou de produits SharePoint. Par conséquent, les informations de configuration pour Azure DevOps Server peuvent être stockées dans l’un des emplacements suivants :

  • Magasins de données IIS.
  • Fichiers de configuration pour Azure DevOps Server.
  • Sources de données pour Reporting Services (par exemple, données TFSREPORTS).
  • Base de données de configuration pour Azure DevOps Server. Le registre Azure DevOps Server fait partie de la base de données de configuration.
  • Registre Windows.

Pour obtenir des exemples de topologies de déploiement local différentes et où ces ressources sont stockées, consultez Exemples de topologie simple, Exemples de topologie modérée et Exemples de topologie complexe. Lorsque vous gérez un déploiement local de Azure DevOps Server, vous devez tenir compte de ces sources de configuration. Pour modifier la configuration d'une quelconque façon, vous pouvez avoir besoin de modifier des informations qui sont stockées à plusieurs endroits. Vous devrez peut-être modifier également les informations de configuration pour les couches Données et Cliente. Azure DevOps Server inclut une console d’administration et plusieurs utilitaires de ligne de commande pour vous aider à effectuer ces modifications. Pour plus d’informations, consultez Informations de référence rapides sur les tâches d’administration.

Active Directory et synchronisation des identités de groupe

Dans les déploiements locaux où Azure DevOps s’exécute dans un domaine Active Directory, les informations de groupe et d’identité sont synchronisées lorsque l’un des événements suivants se produit :

  • Le serveur de la couche Application démarre.
  • Un groupe Active Directory est ajouté à un groupe Azure DevOps.

La période de temps spécifiée dans le travail planifié s'écoule. La valeur par défaut est une heure, et tous les groupes dans Azure DevOps Server mis à jour toutes les 24 heures.

Les services de gestion des identités (IMS, Identity Management Services) se synchronisent avec Active Directory et les identités modifiées se propagent du serveur aux clients. Par défaut, tous les groupes sont mis à jour dans les 24 heures, mais vous pouvez personnaliser ce paramètre afin de répondre au mieux aux besoins de votre déploiement. Pour plus d’informations, consultez Considérations relatives aux approbations et aux forêts pour Azure DevOps Server. Pour les déploiements locaux qui n’utilisent pas Active Directory, consultez Gestion des Azure DevOps Server dans un groupe de travail.

Groupes et autorisations

Dans un déploiement local, Azure DevOps Server a son propre ensemble de groupes et d’autorisations par défaut que vous pouvez définir au niveau du projet, du regroupement ou du serveur. Vous pouvez créer des groupes personnalisés et personnaliser des autorisations au niveau des groupes et des individus. Toutefois, les utilisateurs ou les groupes que vous ajoutez à Azure DevOps Server ne sont pas automatiquement ajoutés à deux composants sur lesquels les déploiements locaux de Azure DevOps Server peuvent dépendre : produits SharePoint et Reporting Services. Si votre déploiement utilise ces programmes, vous devez y ajouter des utilisateurs et des groupes et leur accorder les autorisations appropriées pour que ces utilisateurs ou groupes fonctionnent correctement dans toutes les opérations dans Azure DevOps Server. Pour plus d’informations, consultez Gérer les utilisateurs ou les groupes dans Azure DevOps Server.

Pour les déploiements hébergés, l'accès est contrôlé par une combinaison de comptes Microsoft et d'appartenance à une équipe. Pour plus d’informations, consultez la vue d’ensemble Azure DevOps Services.

Ports et protocoles réseau

Par défaut, un déploiement local de Azure DevOps Server est configuré pour utiliser des protocoles et des ports réseau spécifiques. L’illustration suivante montre le trafic réseau pour Azure DevOps Server dans un déploiement simple.

Installation locale simple

De même, le service hébergé pour Azure DevOps Server est configuré pour utiliser des protocoles et des ports réseau spécifiques. L'illustration suivante montre le trafic réseau dans un déploiement hébergé.

Azure DevOps Server hébergé

 

L’illustration suivante montre le trafic réseau dans un déploiement plus complexe qui inclut les composants de Visual Studio Lab Management. (Notez que Lab Management a été déconseillé pour TFS 2017 et versions ultérieures.)

Niveau Application

Environnements virtuels

machines virtuelles

Les ordinateurs virtuels utilisent le port 80 pour communiquer avec un contrôleur de test concernant le téléchargement d'un agent Lab Management. Si vous rencontrez des problèmes de communication, vérifiez que ce port est activé.

Paramètres réseau par défaut

Par défaut, la communication entre les ordinateurs dans un déploiement d’Azure DevOps utilise les protocoles et les ports indiqués dans le tableau suivant. Si un astérisque (*) suit le numéro de port, vous pouvez personnaliser ce port.

Couche et service Protocol Port
Couche Application - Services web HTTP/HTTPS 8080/443*
Couche Application – Administration des produits SharePoint HTTP 17012* si les produits SharePoint ont été installés avec Azure DevOps Server ; sinon, générés de manière aléatoire
Couche Application – Produits et Reporting Services SharePoint HTTP
Service Windows Management Instrumentation (WMI) (obligatoire pendant l'installation pour spécifier et vérifier les URL chargées de signaler les services)
Port dynamique 80*
Couche Données MS-SQL TCP 1433*
Couche Données (SQL Server Analysis Services) MS-AS par défaut (2382 ou 2383)*
Le port par défaut varie selon la version de SQL Server que vous avez installée et le type d'instance. Utilisez le Gestionnaire de configuration SQL Server pour déterminer les ports utilisés par votre déploiement.
Serveur proxy Azure DevOps - client à proxy HTTP 8081*
Serveur proxy Azure DevOps - proxy vers la couche Application HTTP/HTTPS 8080/443*
Couche cliente - Reporting Services HTTP 80*
Couche cliente - Services web HTTP/HTTPS 8080/443*
Générer un contrôleur vers la couche Application HTTP/HTTPS 8080/443
Agent de build vers couche Application HTTP/HTTPS 8080/443
Release Management Server HTTP ou HTTPS 1000*
Release Management Client HTTP ou HTTPS 1000*
Release Management Agent HTTP ou HTTPS 1000*
Contrôleur de test vers couche Application HTTP/HTTPS 8080/443*
Couche Application vers contrôleur de test .NET Remoting 6901*
Couche Application vers DNS (Domain Name System) Mise à jour dynamique de DNS 53
Couche Application – Virtual Machine Manager HTTP 8100
Contrôleur de test vers agent de test .NET Remoting 6910*
Agent de test vers contrôleur de test .NET Remoting 6901*
Contrôleur de build vers agent de build SOAP sur HTTP 9191
Agent lab vers agent lab dans un environnement isolé Sockets TCP 9050
Agent de build vers contrôleur de build SOAP sur HTTP 9191
Console Administrateur Virtual Machine Manager – Virtual Machine Manager HTTP 8100
Virtual Machine Manager – Hôtes Virtual Machine Manager Administration à distance Windows (WinRM) pour exécuter des actions
Service de transfert intelligent en arrière-plan (BITS) pour transférer des données
80 pour exécuter des actions
443 pour transférer des données
Virtual Machine Manager – Serveur de bibliothèque Virtual Machine Manager WinRM pour exécuter des actions
BITS pour transférer des données
80 pour exécuter des actions
443 pour transférer des données
Couche Application – Hôtes Virtual Machine Manager Communication DCOM/WMI (Distributed Component Object Model/Windows Management Interface) pour transférer des données 135
Assigné dynamiquement dans la plage 49152 à 65535
Couche cliente – Hôtes Virtual Machine Manager Connexion basée sur hôte à l'ordinateur virtuel. 2179 pour effectuer des connexions basées sur l’hôte
Services hébergés HTTPS 443

Paramètres réseau personnalisables

Comme le montre le tableau précédent, vous pouvez modifier la communication entre l’application, les données et les niveaux client dans les déploiements locaux en modifiant Azure DevOps Server pour utiliser des ports personnalisés. Le tableau suivant décrit les exemples de modification apportées aux ports de HTTP vers HTTPS.

Notes

Pour configurer Azure DevOps Server utiliser HTTPS et Secure Sockets Layer, vous devez non seulement activer les ports pour le trafic réseau HTTPS, mais également effectuer de nombreuses autres tâches. Pour plus d’informations, consultez Configurer HTTPS avec SSL (Secure Sockets Layer) pour Azure DevOps Server.

Service Protocol Port
Services web avec SSL HTTPS Configuré par l'administrateur
Https administration centrale de SharePoint Configuré par l'administrateur
Produits SharePoint HTTPS 443
Reporting Services HTTPS 443
Services web clients HTTPS Configuré par l'administrateur
Gestion des versions HTTPS Configuré par l'administrateur