Architecture
Architecture serveur
Azure DevOps repose sur une architecture multiniveaux évolutive. Sa structure principale comprend une couche application chargée du traitement de la logique et de la maintenance du portail d'application web (appelé Team Web Access ou TWA). Azure DevOps utilise les services web Windows Communication Foundation . Pour assurer l'évolutivité, la couche application peut être équilibrée en charge et la couche de données peut être mise en cluster.
Le conteneur principal est la collection de projets. Une collection de projets est une base de données regroupant des projets d'équipe. Les données issues de ces collections sont agrégées dans la base de données de l'entrepôt de données, qui les dénormalise avant leur chargement dans un cube Analysis Services. L'entrepôt et le cube permettent la création de rapports de tendances complexes et l'analyse des données.
Azure DevOps peut s’intégrer à une ferme SharePoint existante. Pour prendre en charge les équipes nécessitant une planification de projet d’entreprise, Azure DevOps s’intègre également à Microsoft Project Server .
Extensibilité
Microsoft fournit deux API redistribuées autonomes pour la connexion à Azure DevOps : un kit de développement logiciel (SDK) Java et un SDK .NET Framework . Ces API permettent la connectivité client à Azure DevOps. Grâce à son architecture orientée services , Azure DevOps peut communiquer avec pratiquement n’importe quel outil capable d’appeler un service web. Un autre mécanisme d’extension consiste à s’abonner aux alertes système : par exemple, les alertes signalant la modification d’un élément de travail ou la fin d’une compilation. Dans un scénario extensible, ces alertes peuvent être envoyées à un service web, déclenchant des actions de modification ou de mise à jour des éléments de travail (comme l’implémentation de règles métier avancées ou la génération programmatique d’éléments de travail en fonction d’un scénario donné).
L'entrepôt de données peut également être étendu grâce à la création d'adaptateurs d'entrepôt de données personnalisés.
Clients
Azure DevOps prend en charge Visual Studio 2010 et versions ultérieures, Microsoft Test Manager (MTM) 2012 et 2013. Eclipse, les versions antérieures de Visual Studio et d'autres environnements peuvent être intégrés à Azure DevOps à l'aide du fournisseur d'intégration Microsoft Source Code Control.
Microsoft Excel et Microsoft Project sont également pris en charge pour la gestion des éléments de travail, permettant leur mise à jour, leur saisie et leur exportation en masse. Microsoft Project peut être utilisé pour planifier le travail dans le cadre d'une méthodologie de développement logiciel en cascade. Excel et Project prennent tous deux en charge les mises à jour bidirectionnelles des données. Cela permet, par exemple, aux chefs de projet de créer un planning dans Project, d'importer ce travail dans Azure DevOps où les développeurs le mettent à jour, et enfin de mettre à jour le planning.
Avec Team Foundation Server 2012, Microsoft PowerPoint a été intégré à Azure DevOps pour accélérer le développement de storyboards et faciliter la gestion des exigences. Cette intégration propose des formes de storyboard extensibles permettant de créer tout type de maquette d'interface, animable ensuite grâce aux fonctions intégrées de PowerPoint. Ces storyboards peuvent être associés à des éléments de travail.
Afin de gérer la dispersion géographique croissante des équipes et d'impliquer les parties prenantes plus tôt et plus souvent dans le processus, Microsoft a ajouté le client Feedback. Cet outil permet aux utilisateurs de tester une application, d'annoter ce qu'ils voient avec de l'audio et de la vidéo, de capturer des écrans et de fournir des commentaires contextuels à l'équipe de développement.
Éléments de travail
Au cœur d’Azure DevOps se trouve l’« élément de travail », qui peut représenter une tâche à accomplir, un risque à suivre, un cas de test, un bogue, etc. Les éléments de travail sont définis par des documents XML et sont hautement extensibles. Ils sont ensuite regroupés dans un modèle de processus qui contient ces informations, ainsi que d’autres éléments, afin de fournir un cadre de développement. Azure DevOps inclut des modèles de processus pour le framework Microsoft Solutions Framework for Agile, Scrum et CMMI.
Les éléments de travail peuvent être liés entre eux par différentes relations afin de créer une arborescence hiérarchique ou une relation linéaire. Ils peuvent également être liés à des artefacts externes tels que des pages web, des documents, du code source, des résultats de compilation, des résultats de tests et des versions spécifiques d'éléments dans le système de gestion de versions.
La flexibilité du système d'éléments de travail permet à Azure DevOps de remplir de nombreuses fonctions, de la gestion des exigences au suivi des bogues, des risques et des problèmes, en passant par l'enregistrement des résultats des revues. Ses fonctionnalités de liaison extensibles garantissent la traçabilité des exigences, du code source aux cas de test et aux résultats, et permettent de les documenter à des fins d'audit et de compréhension de l'historique des modifications.
Contrôle de source
Azure DevOps prend en charge deux types différents de contrôle de version : son moteur de contrôle de version d’origine appelé Team Foundation Version Control (TFVC) et, depuis la sortie de TFS 2013, la prise en charge de Git comme référentiel de contrôle de version principal.
Contrôle de version de Team Foundation
de l'archivage .
Pour améliorer les performances des clients distants, Azure DevOps permet d'installer des serveurs proxy . Ces serveurs proxy permettent de mettre en cache le contenu du système de contrôle de version sur un site plus proche des développeurs, évitant ainsi les longs trajets réseau et la latence associée. Les validations étant toujours effectuées directement sur la couche application d'Azure DevOps, le serveur proxy est particulièrement utile en lecture.
Dans le cadre du moteur de contrôle de version, Azure DevOps prend en charge plusieurs fonctionnalités permettant aux développeurs de garantir que le code validé respecte des règles configurables. Azure DevOps prend également en charge une fonctionnalité d'analyse de code appelée FxCop lorsqu'elle est utilisée indépendamment .
Git
Avec la sortie de TFS 2013, Microsoft a intégré la prise en charge native de Git . Il ne s'agit pas d'une implémentation spécifique à Microsoft, mais d'une implémentation standard basée sur la bibliothèque libgit2 . Grâce à cette approche, tout client Git est désormais compatible avec Azure DevOps. Ainsi, les outils compatibles avec Git, quelle que soit la plateforme ou l'EDI, peuvent se connecter à Azure DevOps. De plus, les développeurs qui ne souhaitent pas utiliser le plug-in Team Explorer Everywhere de Microsoft pour Eclipse peuvent opter pour eGit afin de se connecter à Azure DevOps.
Signalement
L'infrastructure de reporting se compose d'un entrepôt de données , qui est une base de données relationnelle, et d'un cube de données SQL Server Analysis Services . Ces deux sources sont disponibles pour la génération de rapports via SQL Server Reporting Services (SSRS) lorsque cette option est installée. Comme il s'agit de structures de base de données et de cube standard, tout outil capable d'accéder à ces sources de données peut générer des rapports. Cela inclut des outils tels que Cognos, Tableau, Excel et d'autres outils de reporting. Chaque modèle de processus prêt à l'emploi inclut un ensemble de rapports pour les services de reporting, couvrant les informations de build, les résultats et la progression des tests, la gestion de projet, les rapports agiles (vue d'ensemble du backlog, graphique d'avancement des versions, graphique d'avancement des sprints et vélocité), ainsi que les données relatives aux bogues et aux problèmes. De nouveaux rapports peuvent être créés à l'aide de Report Builder pour SSRS et tous les rapports existants peuvent être modifiés.
TFS 2013 a introduit une nouvelle fonctionnalité appelée « reporting léger » qui permet de créer des rapports en temps réel basés sur les résultats de requêtes et qui ne dépendent pas de l'entrepôt de données ou du cube.
Renforcement d'équipe
Team Build (avant TFS 2015) est une application serveur de génération incluse dans Team Foundation Server. Team Build se compose de deux éléments : MSBuild et Windows Workflow Foundation . MSBuild est un langage XML déclaratif similaire à Apache Ant .
Windows Workflow contrôle le déroulement global du processus de génération, et Azure DevOps inclut de nombreuses activités de workflow prédéfinies pour gérer les tâches courantes effectuées lors d'une génération. Le système de génération est extensible : les utilisateurs peuvent créer leurs propres activités de workflow, intégrer MSBuild au processus et exécuter des processus externes.
Le processus de compilation peut être configuré pour différents types de compilations, notamment les compilations planifiées, l'intégration continue , l'intégration contrôlée et les compilations progressives.
Le processus de génération dans Azure DevOps fait partie intégrante du mécanisme de traçabilité, car Team Build centralise la plupart des artefacts créés et stockés dans Azure DevOps. Si les développeurs associent le code source aux éléments de travail lors de l'archivage, Team Build peut générer des rapports sur les modifications apportées à chaque génération : modifications du code source, modifications des éléments de travail et résultats des tests. À mesure que les bogues et les éléments du backlog produit (PBI) sont résolus et intégrés aux générations, les éléments de travail qui suivent ces artefacts sont automatiquement mis à jour pour indiquer dans quelle génération ils ont été intégrés avec succès. Combiné aux outils de test, cela permet aux testeurs d'obtenir une vue intégrée du code modifié dans chaque génération, mais aussi des bogues, éléments du backlog produit et autres modifications d'une génération à l'autre.
Gestion des mises en production
À la mi-2013, Microsoft a fait l'acquisition d'InRelease, un produit d'InCycle Software. InRelease a été entièrement intégré à Team Foundation Server 2013. Cette fonctionnalité a complété les processus automatisés de compilation et de test en permettant une véritable solution de déploiement continu . Les outils ont été renommés « Gestion des versions » pour TFS 2013. Les fonctionnalités de Gestion des versions permettent aux équipes d'effectuer des déploiements contrôlés, pilotés par un flux de travail (fourni par Windows Workflow Foundation ), vers les environnements de développement, de test et de production, et fournissent des tableaux de bord pour suivre la progression d'une ou plusieurs versions.
Histoire
Cette première version de Team Foundation Server a été publiée le 17 mars 2006.
| Nom du produit | Formulaire | Année de sortie | Numéro de version |
|---|---|---|---|
| Serveur Team Foundation 2005 | Sur site | 2006 | 8 |
| Serveur Team Foundation 2008 | Sur site | 2008 | 9 |
| Serveur Team Foundation 2010 | Sur site | 2010 | 10 |
| Aperçu du service Team Foundation | Nuage | 2012 | |
| Serveur Team Foundation 2012 | Sur site | 2012 | 11 |
| Visual Studio Online | Nuage | 2013 | |
| Serveur Team Foundation 2013 | Sur site | 2013 | 12 |
| Serveur Team Foundation 2015 | Sur site | 2015 | 14 |
| Services d'équipe Visual Studio | Nuage | 2015 | |
| Serveur Team Foundation 2017 | Sur site | 2017 | 15 |
| Serveur Team Foundation 2018 | Sur site | 2017 | 16 |
| Services Azure DevOps | Nuage | 2018 | |
| Azure DevOps Server 2019 | Sur site | 2019 | 17 |
| Azure DevOps Server 2020 | Sur site | 2020 | 18 |
| Azure DevOps Server 2022 | Sur site | 2022 |