DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Uncategorized»Comment construire un pipeline CI/CD efficace
    Uncategorized

    Comment construire un pipeline CI/CD efficace

    février 18, 2023
    Comment construire un pipeline CI/CD efficace
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Ceci est un article du rapport sur les tendances DevOps 2023 de Développeurweb.com.

    Pour plus:

    Lire le rapport

    Les pipelines d’intégration continue/livraison continue (CI/CD) sont devenus un élément indispensable de la publication de logiciels, mais leur objectif peut souvent être mal compris. Dans de nombreux cas, les pipelines CI/CD sont traités comme l’antidote aux problèmes de publication, mais en réalité, ils ne sont aussi efficaces que le processus de publication sous-jacent qu’ils représentent. Dans cet article, nous examinerons quelques étapes simples pour créer un pipeline CI/CD efficace, y compris comment capturer et rationaliser un processus de publication existant, et comment transformer ce processus en un pipeline allégé.

    Capturer le processus de publication

    Un pipeline CI/CD n’est pas une solution magique à tous nos goulots d’étranglement, et il apportera une amélioration minimale si le sous-jacent processus de libération Est défectueux. Pour les logiciels, le processus de publication est l’ensemble des étapes qu’une équipe utilise pour obtenir le code des fichiers de code source dans un produit packagé qui peut être livré à un client. Le processus reflétera la les besoins de l’entreprise de chaque produit et l’équipe créant le produit.

    Bien que les spécificités d’un processus de publication varient (certaines peuvent nécessiter certaines vérifications de sécurité tandis que d’autres peuvent nécessiter l’approbation de tiers), presque tous les processus de publication de logiciels partagent un objectif commun :

    • Construire et empaqueter le code source dans un ensemble d’artefacts
    • Testez les artefacts avec différents niveaux d’examen, y compris des tests unitaires, d’intégration et de bout en bout (E2E)
    • Testez les flux de travail critiques du produit du point de vue de l’utilisateur final
    • Déployer les artefacts dans un environnement de type production pour tester le déploiement

    Chaque équipe qui livre un produit à un client a un processus de lancement. Ce processus peut varier de « envoyer les artefacts à Jim dans un e-mail afin qu’il puisse les tester » à des processus très rigides et formalisés où les équipes ou les responsables doivent signer à la fin de chaque étape du processus.

    Le mettre sur papier

    Malgré cette variation, la première étape, la plus critique, dans le développement d’un pipeline CI/CD efficace consiste à capturer le processus de publication. La façon la plus simple de le faire est de dessiner un ensemble de cases pour capturer les étapes du processus de publication et de dessiner des flèches d’une étape à l’autre pour montrer comment l’achèvement d’une étape initie le début d’une autre. Ce dessin n’a pas besoin d’être trop formel; cela peut être fait sur une feuille de papier, tant que le processus actuellement pratiqué est capturé. La figure 1 illustre un processus de lancement simple, commun à de nombreux produits :

    Un processus de publication de base

    Figure 1 : Un processus de publication de base – La capture des étapes du processus de publication actuel est la première étape de la création d’un pipeline

    Parler la même langue

    Une fois que le processus de publication actuel a été capturé, l’étape suivante consiste à formaliser le processus. Lorsque vous parlez d’un processus de publication, et éventuellement d’un pipeline CI/CD, il est important d’utiliser un langage vernaculaire ou de domaine commun.

    Pour les pipelines, le lexique de base est :

    • Marcher – Une seule action, telle que Construire, Tests unitairesou Mise en scènedans le processus de libération (c’est-à-dire les boîtes).
    • Organiser – Une phase unique dans le processus de libération, contenant une ou plusieurs étapes. Généralement, les étapes peuvent être considérées comme les colonnes séquentielles d’un pipeline. Par exemple, Construire est contenu dans la première étape, Test de l’unité dans la deuxième étape, et Essais utilisateurs et Mise en scène dans la cinquième étape. Lorsqu’il n’y a qu’une seule étape dans une étape, les termes étape et étape sont souvent utilisés comme synonymes.
    • Pipeline – Un ensemble d’étapes ordonnées.
    • Déclencher – Un événement, tel qu’un enregistrement ou une validation, qui démarre une seule exécution du pipeline.
    • Portail – Une étape manuelle qui doit être terminée avant que toutes les étapes suivantes puissent commencer. Par exemple, une équipe ou un responsable peut avoir besoin d’approuver la fin des tests avant que le produit puisse être déployé.

    Un pipeline CI/CD est simplement une mise en œuvre automatisée d’un processus de publication formalisé. Par conséquent, si nous souhaitons créer un pipeline CI/CD efficace, il est essentiel que nous optimisions d’abord notre processus de publication.

    Optimisation du processus de publication

    Étant donné que nos pipelines CI/CD reflètent notre processus de publication, l’un des meilleurs moyens de créer un pipeline efficace consiste à optimiser le processus de publication lui-même avant d’en dériver un pipeline. Il existe trois optimisations critiques que nous pouvons apporter à un processus de publication qui rapportent des dividendes vers un pipeline efficace :

    1. Rationalisez le processus– Nous devons minimiser les goulots d’étranglement ou les étapes artificielles qui ralentissent notre processus de publication.
      • Supprimez toutes les étapes inutiles.
      • Minimisez le nombre d’étapes tout en répondant aux besoins de l’entreprise.
      • Simplifiez les étapes complexes.
      • Supprimez ou répartissez les étapes qui nécessitent un point de contact unique.
      • Accélérez les étapes de longue durée et exécutez-les en parallèle avec d’autres étapes.
    2. Tout automatiser– Le processus de publication idéal ne comporte aucune étape manuelle. Bien que cela ne soit pas toujours possible, nous devrions automatiser toutes les étapes possibles.
      • Envisagez des outils et des frameworks tels que JUnit, Cucumber, Selenium, Docker et Kubernetes.
      • Capturez le processus d’exécution de chaque étape d’un script – c’est-à-dire que l’exécution de la construction doit être aussi simple que l’exécution build.sh. Cela garantit qu’il n’y a pas de commandes magiques et nous permet d’exécuter chaque étape à la demande lors du dépannage ou de la réplication du processus de publication.
      • Créez des scripts portables pouvant être exécutés partout où le processus de publication est exécuté. N’utilisez pas de commandes qui ne fonctionneront que sur des environnements spécifiques à usage spécial.
      • Contrôlez la version des scripts, de préférence dans le même référentiel que le code source.
    3. Raccourcir le cycle de publication – Nous devrions sortir notre produit aussi souvent que possible. Même si le livrable final n’est pas expédié au client ou à l’utilisateur (par exemple, nous construisons chaque jour mais ne livrons le produit au client qu’une fois par semaine), nous devons exécuter fréquemment notre processus de publication. Si nous exécutons actuellement le processus de publication une fois par jour, nous devrions nous efforcer de le terminer à chaque commit.

    L’optimisation du processus de publication garantit que nous construisons notre pipeline CI/CD à partir d’une base légère et efficace. Tout ballonnement dans le processus de publication sera reflété dans notre pipeline. L’optimisation de notre processus de publication sera itérative et nécessitera des efforts continus pour garantir que nous maintenons un processus de publication allégé à mesure que d’autres étapes sont ajoutées et que les étapes existantes deviennent plus importantes et plus complètes.

    Construire le pipeline

    Une fois que nous avons un processus de publication optimisé, nous pouvons mettre en œuvre notre pipeline. Il y a trois conseils importants que nous devons suivre afin de créer un pipeline CI/CD efficace :

    1. Ne suivez pas les modes – Il existe d’innombrables gadgets et modes qui se disputent notre attention, mais il est de notre responsabilité professionnelle de sélectionner nos outils et technologies en fonction de ce qui est le plus efficace pour nos besoins. Ubiquité et popularité ne garantissent pas l’efficacité. Actuellement, les options pour les outils de pipeline CI/CD incluent GitHub Actions, GitLab CI/CD et Jenkins. Cette liste n’est pas exhaustive, mais elle fournit un point de départ stable.
    2. Maintenir la simplicité– Chaque étape doit idéalement exécuter un script sans commandes codées en dur dans la configuration du pipeline. La configuration du pipeline doit être considérée comme un ciment et doit contenir le moins de logique possible. Par exemple, une configuration GitLab CI/CD idéale (.gitlab-ci.yml) pour le processus de publication de la figure 1 ressemblerait à :

      build:
        stage: building
        script:
          - /bin/bash build.sh
      unit-tests:
        stage: unit-testing
        script:
          - /bin/bash run-unit-tests.sh
      integration-tests:
        stage: integration-testing
        script:
          - /bin/bash run-integration-tests.sh
      ...
      deploy:
        stage: deployment
        script:
          - /bin/bash deploy.sh --env production:443 --key ${SOME_KEY}

      Cet idéal n’est pas toujours possible, mais cela devrait être le but vers lequel nous nous efforçons.

    3. Recueillir des commentaires– Nos pipelines ne doivent pas seulement produire des artefacts, mais ils doivent également produire des rapports. Ces rapports doivent inclure :
      • Rapports de test indiquant le nombre total, réussi et échoué de cas de test
      • Des rapports qui évaluent les performances de notre produit testé
      • Des rapports qui montrent combien de temps le pipeline a mis à s’exécuter – globalement et par étape
      • Rapports de traçabilité indiquant quels commits ont atterri dans une build et quels tickets, tels que les tickets Jira ou GitHub, sont associés à une build

    Ces commentaires nous permettent d’optimiser non seulement notre produit, mais également le pipeline qui le construit.

    En suivant ces conseils, nous pouvons créer un pipeline efficace qui répond aux besoins de notre entreprise et offre à nos utilisateurs et clients la plus grande valeur et le moins de frictions.

    Conclusion

    Les pipelines CI/CD ne sont pas une réponse magique à tous nos problèmes de publication. Bien qu’il s’agisse d’outils importants qui peuvent considérablement améliorer la publication de nos logiciels, ils ne sont aussi efficaces que nos processus de publication sous-jacents. Pour créer des pipelines efficaces, nous devons rationaliser nos processus de publication et être vigilants afin que nos pipelines restent aussi simples et automatisés que possible.

    Lectures complémentaires :

    Ceci est un article du rapport sur les tendances DevOps 2023 de Développeurweb.com.

    Pour plus:

    Lire le rapport

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.