Partager via


Chaîne d’outils DevOps

Une chaîne d’outils DevOps est un ensemble d’outils qui permettent aux équipes DevOps de collaborer dans l’ensemble du cycle de vie du produit et de s’attaquer aux principes fondamentaux de DevOps clés.

Les outils d’une chaîne d’outils DevOps incluent une unité intégrée pour la planification, l’intégration continue, la livraison continue, les opérations, la collaboration et les commentaires. Vous pouvez consulter quelques exemples de technologies DevOps à travers différentes étapes devOps dans Définir votre écosystème de technologies DevOps.

Considérations relatives à la chaîne d’outils DevOps

  • Les processus devOps peuvent déjà être utilisés au sein de votre organisation lorsque vous sélectionnez une chaîne d’outils. Vous devez trouver le bon équilibre entre l’adoption des technologies adaptées aux besoins de votre équipe et l’objectif de la normalisation et de l’évitement des écosystèmes DevOps hétérogènes au sein de votre organisation.

  • Vous pouvez adopter différents types de chaînes d’outils DevOps :

    • Tout-en-un : Fournit une solution complète qui peut ne pas s’intégrer à d’autres outils tiers. Les chaînes d’outils tout-en-un peuvent être utiles pour les organisations qui commencent leur parcours DevOps. Exemple : chaîne d’outils Azure DevOps de pile complète.
    • Personnalisé: Permet aux équipes d’apporter et de combiner des outils existants qu’elles connaissent et ont déjà en cours d’utilisation dans la chaîne d’outils DevOps plus large. L’intégration est essentielle pour ces types de chaînes d’outils afin d’éviter de passer du temps inutile entre les écrans, de se connecter à plusieurs emplacements et d’avoir le défi de partager des informations entre les outils. Exemple : Chaîne d’outils Azure DevOps et GitHub.
  • Envisagez d’utiliser des chaînes d’outils régulièrement mises à jour et qui ont de l’aide disponible chaque fois que vous en avez besoin via un e-mail ou un portail en ligne. Il s’agit d’une exigence pour tout produit ou service qui est sur le chemin critique du marché.

Planning

  • Envisagez d’adopter un outil qui prend en charge les pratiques de planification continue :
    • Planification des versions
    • Identification des fonctionnalités et épopées
    • Hiérarchisation
    • Estimation
    • Définition de l’histoire utilisateur
    • Affinement du backlog
    • Planification du sprint
    • Daily Scrum
    • Examen sprint
    • Rétrospectif

Intégration continue et livraison continue

  • Lors de l’implémentation de l’intégration continue (CI)/Continuous Delivery (CD), envisagez d’adopter un outil qui prend en charge :
    • Systèmes de contrôle de version. Tout ce qui se trouve dans votre projet doit être archivé dans un référentiel de contrôle de version unique tel que Git : code, tests, scripts de base de données, scripts de génération et de déploiement, et tout autre élément nécessaire pour créer, installer, exécuter et tester votre application.
    • Stratégie de branchement.
    • Builds automatisées.
  • Votre choix de référentiel est également influencé par les exigences de souveraineté/résidence des données. Si vous avez besoin que vos données soient hébergées localement dans un pays ou une région autre que les États-Unis, vous aurez besoin de référentiels Azure DevOps lorsque GitHub Repos ne peut pas être utilisé.
  • Pour réduire la quantité de configuration manuelle requise pour approvisionner des ressources, envisagez d’adopter l’infrastructure en tant que code (IaC). IaC vous permet d’appliquer des pratiques d’ingénierie logicielle telles que le test et le contrôle de version, qui rendent l’infrastructure et les déploiements automatisés, cohérents et reproductibles. Conservez des scripts et des modèles sous contrôle de code source comme tout autre code que vous gérez.
  • Adoptez les outils d’analyse du code pour vous aider à détecter les défauts de code dès que possible. Incluez les vérifications de prédéploiement pour valider et confirmer les modifications avant tout déploiement (exemple : « what-if ») fonction.
  • Les outils CI/CD accélèrent le temps de commercialisation de votre produit. Les outils qui vous permettent de paralléliser des tâches et de tirer parti de l’extensibilité élastique sur l’infrastructure hébergée dans le cloud améliorent les performances de votre processus CI/CD.
  • Envisagez d’utiliser les fonctionnalités de l’outil CI/CD qui prennent en charge la mesure des performances de DevOps. Les tableaux de bord et les rapports peuvent suivre les aspects de votre processus de développement, tels que le temps de développement, le temps de cycle, la vitesse du travail, et ainsi de suite.

Opérations continues

Les opérations continues sont un objectif qui aide les organisations à maintenir la continuité de la sortie entre les systèmes internes et les clients grâce à la livraison ininterrompue de services ou de fonctions critiques. Les objectifs des opérations continues sont les suivants :

  • Pour réduire ou éliminer le besoin de temps d’arrêt planifiés ou d’interruptions telles que la maintenance planifiée, l’optimisation de la capacité et le déploiement.
  • Pour augmenter la fiabilité globale et la résilience des systèmes en trois aspects : avec des personnes, des processus et des outils.

Utilisez les outils natifs cloud pour :

  • Surveillez les métriques clés pour les performances et la disponibilité du service.
  • Bénéficiez d’une expérience numérique et d’insights sur les clients.
  • Générez des réponses basées sur le renseignement pour les incidents, la récupération du système ou la mise à l’échelle.
    • Diagnostics Azure et Application Insights sont la méthode standard pour le suivi de l’intégrité et de l’état des ressources Azure. Azure Monitor fournit également une supervision et une gestion centralisées pour les solutions cloud ou hybrides.
  • Automatisez la maintenance proactive et les tâches telles que le déploiement ou les mises à jour système.
    • Azure Automation est un outil natif cloud que vous pouvez utiliser pour créer une automatisation basée sur des événements pour diagnostiquer et résoudre les problèmes.

Collaboration et commentaires

  • Les boucles de rétroaction rapides sont au cœur du processus CI/CD. Un outil CI/CD utilise des commentaires pour résoudre les conditions dans la logique de flux de travail CI/CD et affiche des informations aux utilisateurs, généralement via un tableau de bord.

  • La prise en charge des notifications par e-mail et de l’intégration avec des IDE ou des plateformes de communication vous permet de rester informé de ce qui se passe sans avoir à vérifier un tableau de bord. Assurez-vous que vous disposez de la flexibilité nécessaire pour configurer les alertes que vous recevez, car l’obtention d’un trop grand nombre d’alertes les transforme en bruit d’arrière-plan.

  • Tous les outils que vous choisissez pour la collaboration doivent prendre en charge les pratiques de collaboration suivantes :

    • Collaboration Kanban
    • Collaboration de contenu Wiki
    • Collaboration ChatOps
    • Salle d’équipe

Recommandations de chaîne d’outils DevOps pour les zones d’atterrissage Azure

Les chaînes d’outils DevOps pour l’implémentation de la zone d’atterrissage Azure doivent prendre en compte toutes les phases DevOps précédemment abordées :

  • Planning
  • CI/CD (y compris les fonctionnalités d’automatisation telles que l’infrastructure en tant que code)
  • Operations
  • Collaborations et commentaires

Passez en revue les conseils pour le déploiement de zone d’atterrissage et les considérations relatives au choix d’une option d’implémentation dans Le choix de l’adoption de la zone d’atterrissage.

Quelle que soit la méthodologie sélectionnée (démarrer petite et étendue ou à l’échelle de l’entreprise), il existe quelques topologies courantes que les entreprises ont tendance à suivre lors de la conception de leurs flux de travail et chaînes d’outils DevOps.

  • Chaîne d’outils Azure DevOps de pile complète : Pour les entreprises déjà fortement investies dans l’écosystème Microsoft, cette topologie leur permet de tirer pleinement parti des intégrations natives entre les produits et services Microsoft et de rationaliser les processus clés.
  • Chaîne d’outils Azure DevOps et GitHub : Cette topologie vous permet d’utiliser les forces d’Azure et gitHub dans le cadre d’une solution bien intégrée.

Chaîne d’outils Azure DevOps de pile complète

Diagramme d’une chaîne d’outils Azure DevOps de pile complète.

Phase DevOps Tools
Planning Azure Boards fournit des fonctionnalités de planification puissantes et flexibles aux développeurs et à d’autres personnes, notamment les backlogs hiérarchiques, les tableaux kanban personnalisables, la personnalisation enrichie des processus, les tableaux de bord d’équipe et les rapports personnalisés.
CI/ CD Azure Repos vous permet de créer des dépôts Git privés et prend en charge différents clients Git, stratégie de branchement et protection. Azure Repos fournit également une résidence de données localisée dans le cloud pour permettre la conformité aux réglementations européennes. Azure Pipelines permet aux clients de configurer des pipelines automatisés pour CI/CD, notamment pour la création de rapports de test avancés et fournit une prise en charge puissante des pipelines en plusieurs étapes. Les autorisations affinées, les portes, les vérifications personnalisées et les rapports de résultats de test automatisés dans Azure Pipelines vous aident à appliquer les meilleures pratiques de sécurité, de conformité et de déploiement sécurisé dans votre organisation et à prendre en charge l’exécution et l’évolutivité des étapes parallèles. Azure Artifacts fournit un flux pour stocker des packages et vérifier et valider chaque package à des fins de sécurité, et fournit également un contrôle d’autorisation et un audit granulaires. Azure Test Plans dans Azure DevOps fournit une solution de gestion des tests basée sur un navigateur pour les tests exploratoires, manuels et utilisateur. Les utilisateurs d’Azure Test Plans utilisent généralement Azure Boards pour la planification et la gestion des projets. Vous pouvez lier des récits utilisateur et d’autres exigences aux cas de test et documenter les bogues trouvés via le test. Adoptez les extensions de La Place de marché pour DevOps afin d’améliorer l’analyse du code statique avec des outils tels que les scanneurs d’informations d’identification, les scanneurs open source, les bogues et les scanneurs de vulnérabilités, etc.
Operations Les tableaux de bord et les rapports Azure fournissent des rapports personnalisés pour vous aider à surveiller les métriques de performances de service clés. Diagnostics Azure et Application Insights sont la méthode standard de suivi de l’intégrité et de l’état des ressources Azure. Azure Monitor fournit une supervision et une gestion centralisées. Azure Automation peut être utilisé pour créer une automatisation basée sur des événements pour diagnostiquer et résoudre les problèmes. Defender pour Cloud DevOps utilise une console centrale pour permettre aux équipes de sécurité de protéger les applications et les ressources du code vers le cloud dans des environnements multi pipelines, notamment Azure DevOps et GitHub.
Collaborations et commentaires Azure DevOps Wiki vous permet de partager des informations avec des membres d’autres équipes et prend en charge la modification collaborative de son contenu et de sa structure. Azure Boards fournit une collaboration Kanban et une prise en charge des commentaires et des discussions dans les éléments du backlog.

Chaîne d’outils Azure DevOps et GitHub

Diagramme d’une chaîne d’outils Azure DevOps et GitHub.

Phase DevOps Tools
Planning Azure Boards fournit une solution stable et évolutive pour la planification, la gestion des référentiels, la visualisation des données et l’organisation d’éléments de travail hiérarchiques. Il s’intègre à GitHub, ce qui vous permet de lier des éléments de travail et des validations GitHub. Il vous permet également de choisir votre flux de travail idéal, qu’il s’agisse d’un flux de travail simple et prête à l’emploi ou d’un flux de travail personnalisé que vous créez avec le moteur de personnalisation Azure Boards puissant et flexible. Lorsque vous devez visualiser vos données, Azure Boards vous aide à créer et configurer facilement des tableaux de bord personnalisés et à surveiller la progression tout au long de vos cycles de vie de projet.
CI/ CD Utilisez la version GitHub Enterprise (GHE) de GitHub, qui inclut le dépôt GitHub, GitHub Advanced Security (GHAS) et GitHub Advanced Security pour Azure DevOps. GHAS inclut CodeQL, Analyse du code, Analyse des secrets et Révision des dépendances. GHE offre également Codespaces, un IDE cloud que vous pouvez utiliser pour développer du code et qui peut remplacer Visual Studio Code, que les organisations incluent généralement dans des scénarios Azure DevOps complets. Vous pouvez utiliser GitHub Actions pour automatiser les flux de travail non générés si vos référentiels se trouvent dans GitHub. Si vous avez des scénarios plus complexes où vous devez accéder au code en dehors de GitHub ou si vous avez besoin d’une gestion centralisée pour les modèles de flux de travail et les pipelines de génération, adoptez Azure Pipelines. Pour Azure Boards, vous pouvez intégrer Azure Pipelines à des référentiels GitHub. Pour en savoir plus sur l’intégration d’Azure DevOps et gitHub, consultez Utiliser Azure DevOps et GitHub. GitHub Packages est un service de package logiciel qui vous permet d’héberger vos propres packages en privé ou publiquement. GitHub offre une prise en charge du registre de conteneurs pour l’hébergement d’images Docker ou OCI. Vous avez besoin de jetons d’accès pour publier, installer ou supprimer des packages et sécuriser la gestion du cycle de vie de votre package. Pour automatiser les packages, vous pouvez intégrer Des packages GitHub à GitHub Actions, des API GitHub et des webhooks pour créer des flux de travail DevOps qui incluent du code, CI et des déploiements dans une seule interface.
Operations GitHub Insights fournit des rapports analytiques basés sur des données de votre instance GitHub Enterprise Server pour vous aider à comprendre et à améliorer votre processus de remise de logiciels. Pour les diagnostics et la gestion des zones d’atterrissage, utilisez les services Azure recommandés dans le scénario Azure DevOps complet .
Collaboration et commentaires Vous pouvez utiliser GitHub Discussions pour partager des questions, des idées, des conversations, des demandes de commentaires (RFC), une planification des ressources et des annonces. Utilisez Azure Boards pour créer et configurer facilement des tableaux de bord personnalisés et surveiller la progression tout au long de vos cycles de vie de projet. Adoptez Microsoft Teams pour une expérience complète de collaboration d’équipe.