Intégrer DevTest Labs et des pipelines CI/CD DevOps
DevOps est une méthodologie de développement de logiciel qui intègre le développement de logiciels (Dev) avec des opérations système (Ops). Le système fournit de nouvelles fonctionnalités logicielles, des mises à jour et des correctifs qui s’adaptent aux objectifs de l’entreprise.
La méthodologie DevOps couvre également les sujets suivants :
- Conception de nouvelles fonctionnalités en fonction des objectifs, des modèles d’utilisation et des commentaires des clients.
- Résolution, récupération et renforcement du système lorsque des problèmes se produisent.
Un composant 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 publication.
vous pouvez utiliser Azure DevTest Labs dans les pipelines CI/CD. Cet article aborde l’utilisation de DevTest Labs dans les pipelines de génération et de mise en place CI/CD dans un environnement d’entreprise.
Avantages de DevTest Labs dans les flux de travail DevOps
Un laboratoire doit se concentrer sur une équipe qui travaille dans un domaine de fonctionnalités. Cette combinaison permet des modifications plus rapides tout en limitant les effets négatifs à un groupe plus petit. Des modifications ou des problèmes se produisent dans l’environnement Lab, sans affecter quoi que ce soit.
Cet intérêt commun permet de partager des ressources spécifiques à une zone, comme des outils, des scripts, ou des modèles Azure Resource Manager (ARM). Les développeurs peuvent utiliser des ressources partagées pour créer des machines virtuelles avec l’ensemble du code, des outils et de la configuration dont ils ont besoin. Les modèles ARM créent des machines virtuelles lab et des environnements lab avec les ressources Azure appropriées. Les modèles créent des ressources de manière dynamique, ou en créant des images de base avec des personnalisations.
Par exemple, imaginez un scénario dans lequel le produit est un système autonome qui est installé sur la machine d’un client. DevTest Labs peut créer des machines virtuelles lab pour lesquelles des logiciels client, des artefacts et des configurations sont installés, afin de tester rapidement le code de boucle interne.
Voici quelques avantages de l’utilisation des labos dans un flux de travail DevOps :
Accès ciblé : L’utilisation d’un laboratoire comme composant associe un écosystème spécifique à des personnes limitées. En règle générale, un groupe ou une équipe qui travaille dans une zone commune ou avec une fonctionnalité spécifique dispose d’un labo assigné.
Réplication de l’infrastructure dans le cloud : Un développeur peut rapidement configurer un écosystème de développement qui comprend une machine virtuelle de développeur avec un code source et des outils. Le développeur peut également créer un environnement quasi identique à la configuration de production, pour accélérer le développement de la boucle interne.
Environnements de pré-production : Un laboratoire dans le pipeline CI/CD peut exécuter plusieurs environnements de préproduction ou machines en même temps, pour des tests asynchrones. Vous pouvez déployer et gérer différentes infrastructures de prise en charge et des agents de build dans un laboratoire.
Utiliser des laboratoires dans des pipelines CI/CD
Le pipeline CI/CD est un composant critique DevOps. 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 n’ont pas besoin d’être dans un laboratoire. Par exemple, vous pouvez configurer un hôte Jenkins en dehors du laboratoire pour une ressource plus persistante. Voici quelques exemples spécifiques de l’intégration de labs dans le pipeline.
Build
Le pipeline de build crée un package de composants à tester ensemble et à remettre à la version finale. L’infrastructure de création dynamique 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, ce qui augmente la sécurité des agents de build et réduit le risque d’endommagement accidentel.
Avec la possibilité d’utiliser plusieurs environnements dans un labo, chaque build peut être exécuté de manière asynchrone. L'ID de build fait partie des informations d'environnement qui identifient de manière unique les ressources dans un build spécifique.
Test
Un pipeline CI/CD peut automatiser la création de ressources DevTest Labs comme les machines virtuelles et les environnements pour des tests manuels et automatisés. Le pipeline utilise des artefacts ou des formules d’informations de build pour créer des machines virtuelles avec différentes configurations de test personnalisées.
Libérer
Le processus de publication 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.
Personnalisation
Azure Pipelines, un composant de Azure DevOps Services, possède des tâches existantes pour manipuler les machines virtuelles et les environnements au sein de laboratoires spécifiques. Azure Pipelines est un moyen de gérer le pipeline CI/CD. Vous pouvez intégrer un laboratoire dans n’importe quel système qui prend en charge l’appel d’API REST, l’exécution de scripts PowerShell ou l’utilisation de Azure CLI.
Certains gestionnaires de pipeline CI/CD disposent de plugin open source existants qui peuvent gérer des ressources Azure et DevTest Labs. Vous devrez peut-être utiliser des scripts personnalisés pour répondre aux besoins du pipeline. Lors de l’exécution d’une tâche, un principal de service est utilisé avec le rôle approprié, habituellement Contributeur, pour accéder au labo.