Partager via


Intégrer DevTest Labs et les pipelines CI/CD DevOps

DevOps est une méthodologie de développement logiciel qui intègre le développement logiciel (Dev) avec les opérations système (Ops). Le système vous aide à fournir de nouvelles fonctionnalités, mises à jour et correctifs logiciels qui s’alignent sur les objectifs métier.

La méthodologie DevOps couvre également les points suivants :

  • Conception de nouvelles fonctionnalités basées sur les objectifs, les modèles d’utilisation et les commentaires des clients.
  • Résolution, récupération et renforcement du système lorsque des problèmes se produisent.

L’un des composants de la méthodologie DevOps est le pipeline d’intégration continue (CI) et de livraison continue (CD). Un pipeline CI/CD déplace des informations, le code et les ressources d’une validation du contrôle de source à l’aide d’une série d'étapes pour produire le système. Les étapes incluent la génération, le test et la mise en production.

Vous pouvez utiliser Azure DevTest Labs dans des pipelines CI/CD. Cet article traite de l’utilisation de DevTest Labs dans les pipelines de build, de test et de mise en production CI/CD dans un environnement d’entreprise.

Avantages de l’utilisation de DevTest Labs dans les flux de travail DevOps

Un laboratoire doit être utilisé uniquement par une équipe qui travaille sur une zone de fonctionnalité. Ce focus permet des modifications plus rapides, mais limite les effets négatifs à un groupe plus petit. Les modifications ou problèmes se produisent dans l’environnement lab, sans affecter d’autre chose.

Ce focus permet également le partage de ressources spécifiques à la zone, telles que les outils, les scripts et les modèles Azure Resource Manager (ARM). Les développeurs peuvent utiliser des ressources partagées pour créer des machines virtuelles avec tout le code, les outils et la configuration dont ils ont besoin. Les modèles ARM créent des machines virtuelles de laboratoire et des environnements de laboratoire avec les ressources Azure appropriées. Les modèles créent des ressources dynamiquement ou en créant des images de base avec des personnalisations.

Par exemple, envisagez un scénario dans lequel le produit est un système autonome qui s’installe sur l’ordinateur d’un client. Pour activer des tests de boucle interne de code rapides, DevTest Labs peut créer des machines virtuelles de laboratoire qui ont des logiciels clients, des artefacts et des configurations installés.

Voici quelques avantages de l’utilisation de labos dans les flux de travail DevOps :

  • L’utilisation d’un laboratoire en tant que composant associe un écosystème spécifique à des personnes limitées. En règle générale, une équipe ou un groupe travaillant dans une zone commune ou une fonctionnalité spécifique dispose d’un laboratoire qui leur est attribué. Usually, a team or group working in a common area or a specific feature has a lab assigned to them.

  • Réplication de l’infrastructure dans le cloud. Un développeur peut rapidement configurer un écosystème de développement qui inclut une machine virtuelle de développeur avec du code source et des outils. Pour accélérer le développement de boucles internes, un développeur peut également créer un environnement presque identique à la configuration de production.

  • Pour activer des tests asynchrones, un laboratoire dans le pipeline CI/CD peut exécuter plusieurs environnements ou machines de préproduction différents en même temps. Vous pouvez déployer et gérer différentes infrastructures de support et créer des agents dans un laboratoire. You can deploy and manage different support infrastructures and build agents in a lab.

Utiliser des laboratoires dans des pipelines CI/CD

Le pipeline CI/CD est un composant DevOps critique. Le pipeline intègre le code de la demande de tirage (pull) d’un développeur avec le code existant, puis le déploie dans l’écosystème de production. Pour l’intégration de DevTest Labs, toutes les ressources ne doivent pas nécessairement se trouver dans un laboratoire. Par exemple, vous pouvez configurer un hôte Jenkins en dehors du labo pour une ressource plus persistante. Voici quelques exemples spécifiques d’intégration de laboratoires dans le pipeline CI/CD.

Build

Le pipeline de build crée un package de composants à tester ensemble et à remettre en production. La création dynamique de l’infrastructure permet un meilleur contrôle. Les labos peuvent faire partie du pipeline de build en tant qu’emplacements pour les agents de build et d’autres ressources de support. DevTest Labs peut restreindre l’accès au laboratoire. Cela renforce la sécurité des assistants de compilation et réduit le risque de corruption accidentelle.

Étant donné que vous pouvez avoir plusieurs environnements dans un laboratoire, chaque build peut s’exécuter de manière asynchrone. L’ID de build fait partie des informations d’environnement qui identifient de manière unique les ressources d’une build spécifique.

Test

Un pipeline CI/CD peut automatiser la création de ressources DevTest Labs telles que des machines virtuelles et des environnements pour des tests automatisés et manuels. Le pipeline utilise des artefacts ou des formules d’informations de build pour créer des machines virtuelles qui ont des configurations de test personnalisées différentes.

Release

Le processus de mise en production peut utiliser DevTest Labs pour la vérification avant le déploiement du code. Le processus est similaire au test. Les ressources de production ne doivent pas être déployées dans DevTest Labs.

Customization

Azure Pipelines, un composant d’Azure DevOps Services, fournit des tâches existantes pour manipuler des machines virtuelles et des environnements dans des laboratoires spécifiques. Azure Pipelines est un moyen de gérer le pipeline CI/CD. Vous pouvez intégrer un laboratoire à n’importe quel système prenant en charge l’appel d’API REST, l’exécution de scripts PowerShell ou l’utilisation d’Azure CLI.

Certains gestionnaires de pipeline CI/CD disposent de plug-ins open source existants qui peuvent gérer les ressources Azure et DevTest Labs. Vous devrez peut-être utiliser des scripts personnalisés pour répondre aux besoins du pipeline. Lorsque vous exécutez une tâche, utilisez un principal de service avec le rôle approprié, généralement Contributeur, pour accéder au labo.

Next steps