Présentation de l’architecture pour Azure DevOps Server

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

Notes

Azure DevOps Server a été précédemment nommé Visual Studio Team Foundation Server.

Pour mieux planifier et gérer 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 de nombreux serveurs ; ou dans un domaine, un groupe de travail ou plusieurs 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 des informations supplémentaires sur les exemples de déploiement. 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 la manière dont elle affecte votre déploiement, vous devez tenir compte des éléments suivants :

  • les couches application logique, données et client de Azure DevOps, et si vous souhaitez utiliser un ou plusieurs serveurs pour les couches application et données, ou si vous souhaitez que les couches application et données soient hébergées 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 pouvez avoir besoin pour prendre en charge vos pratiques de développement, ou si vous utiliserez Azure Pipelines services cloud pour créer et déployer vos applications logicielles
  • le besoin potentiel d’Azure DevOps serveur Proxy

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 connaître les services Web, les bases de données et les modèles d’objet Azure DevOps Server utilisés. en outre, vous devez connaître les ports réseau et protocoles que Azure DevOps Server utilise par défaut et les ports réseau que vous pouvez personnaliser. enfin, vous devez comprendre les autorisations que vous devez définir dans Azure DevOps Server, ainsi que 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 Azure DevOps Server les concepts et les 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 le guide d’installation de Azure DevOps Server.

Important

vous ne devez modifier manuellement aucune des bases de données Azure DevOps Server, sauf si vous y êtes invité 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 des Azure DevOps Services, qui peuvent 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 grandement 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 la 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 votre couche application, votre couche données et vos serveurs 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 de Azure DevOps en écrivant une application basée sur son modèle d’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 comprend 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 couches application logique, données et client pour les Azure DevOps. Certaines fonctionnalités, telles que le tableau de tâches et les fonctionnalités d’équipe du backlog, sont entièrement basées sur le Web et accessibles uniquement par le biais d’un portail Web, un service Web côté client. D’autres, telles que les fonctionnalités de contrôle de version, sont accessibles par le biais d’un portail Web ou d’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 les niveaux de service principaux

services Azure DevOps Server facultatifs

clients Azure DevOps Server

Services au niveau de la collection

Les services au niveau de la collection 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éveloppement d’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 pour les opérations de 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
  • Project Service de collecte
  • 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 d’SQL Server Azure. dans un déploiement local de Azure DevOps Server, la couche de données logique se compose des magasins opérationnels suivants dans 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 la 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 de 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 à partir de 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 qui est 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. c’est le cas, que vous déployiez Azure DevOps Server localement ou que vous utilisiez 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, d’Internet Information Services (IIS) et du système d’exploitation Windows. dans le cas de la topologie choisie, Azure DevOps Server peut également dépendre de produits SQL Server Reporting Services ou SharePoint. par conséquent, les informations de configuration de 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 différentes topologies de déploiement local et l’emplacement de stockage de ces ressources, consultez exemplesde topologie simple, exemples de topologie modéréeet exemples de topologie complexe. lorsque vous gérez un déploiement local de Azure DevOps Server, vous devez prendre en compte 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 comprend une console d’administration et plusieurs utilitaires de ligne de commande pour vous aider à effectuer ces modifications. Pour plus d’informations, consultez référence rapide des 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 couche application démarre.
  • un groupe de Active Directory est ajouté à un groupe de Azure DevOps.

La période de temps spécifiée dans le travail planifié s'écoule. la valeur par défaut est d’une heure, et tous les groupes de Azure DevOps Server sont 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 de Active Directory, consultez gestion des Azure DevOps Server dans un groupe de travail.

Groupes et autorisations

dans un déploiement local, Azure DevOps Server possède son propre ensemble de groupes et d’autorisations par défaut que vous pouvez définir au niveau du projet, de la collection 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 aux deux composants sur lesquels les déploiements locaux de Azure DevOps Server peuvent dépendre : SharePoint produits et Reporting Services. Si votre déploiement utilise ces programmes, vous devez y ajouter des utilisateurs et des groupes et accorder les autorisations appropriées pour que ces utilisateurs ou groupes fonctionnent correctement dans toutes les opérations de 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 de Azure DevOps Services.

Ports et protocoles réseau

par défaut, un déploiement local de Azure DevOps Server est configuré pour utiliser des ports réseau et des protocoles 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 ports réseau et des protocoles 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 comprend les composants pour Visual Studio Lab Management. (Notez que Lab Management est 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 d’un déploiement de 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 Protocole Port
Couche Application - Services web HTTP/HTTPS 8080/443 *
couche Application – Administration des produits SharePoint HTTP 17012 * si SharePoint produits ont été installés avec Azure DevOps Server ; Sinon, généré de manière aléatoire
couche Application : SharePoint produits et Reporting Services HTTP
Service Windows Management Instrumentation (WMI) (obligatoire pendant l'installation pour spécifier et vérifier les URL chargées de signaler les services)
80 * port dynamique
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.
Azure DevOps Serveur proxy-client à proxy HTTP 8081 *
Azure DevOps Serveur proxy-proxy vers couche application HTTP/HTTPS 8080/443 *
Couche cliente - Reporting Services HTTP 80 *
Couche cliente - Services web HTTP/HTTPS 8080/443 *
Contrôleur de build vers 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 exécuter 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 les couches application, données et cliente 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 pour utiliser https et SSL (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) (SSL) pour Azure DevOps Server.

Service Protocole Port
Services web avec SSL HTTPS Configuré par l'administrateur
SharePoint HTTPs de l’administration centrale 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