Déploiement de groupe d'instances de test canari

Créez un pipeline de déploiement à l'aide de la stratégie de lancement de test canari pour le déploiement de groupe d'instances.

Préalables

Les préalables sont les suivants :

  • Vous disposez d'un pipeline de déploiement, de deux environnements de groupe d'instances vers lesquels effectuer le déploiement (canari et production) sans instances communes, ainsi que d'artefacts. Les artefacts doivent se trouver dans le registre d'artefacts.

    Les artefacts peuvent être définis dans un fichier de configuration de déploiement ou il peut s'agir d'artefacts généraux. Un fichier de configuration de déploiement définit les commandes et les étapes de téléchargement de l'artefact de l'ensemble d'applications à partir du registre d'artefacts spécifié et le place dans le système de fichiers de l'instance de calcul cible.

  • Un équilibreur de charge et un module d'écoute doivent être configurés dans la console pour l'acheminement du trafic. Vous pouvez également disposer d'un équilibreur de charge et d'un module d'écoute de test pour valider la nouvelle version de l'application avant de déplacer le trafic de production.
  • Le plugiciel de commande d'exécution d'instance de calcul doit être activé sur l'instance et il doit être en cours d'exécution. Pour activer ce plugiciel, procédez de la façon suivante :
    1. Dans la console, ouvrez le menu de navigation et cliquez sur Calcul. Sous Calcul, cliquez sur Instances.
    2. Sélectionnez une instance du groupe vers laquelle effectuer le déploiement.
      Note

      DevOps prend uniquement en charge les déploiements de groupe d'instances vers Oracle Linux et CentOS.
    3. Cliquez sur l'onglet Agent Oracle Cloud.
    4. Pour le plugiciel de commande d'exécution d'instance de calcul, basculez le commutateur Activer le plugiciel sur Activé.

      La prise en compte de la modification peut prendre jusqu'à 10 minutes.

      Attention

      Les fonctionnalités qui dépendent du plugiciel, telles que la surveillance, l'ajustement automatique, le déploiement ou la gestion du système d'exploitation, ne fonctionnent pas lorsque le plugiciel est désactivé.
      Attention

      Pour déployer des applications à l'aide du plugiciel de commande d'exécution d'instance de calcul, vous devez configurer et tenir à jour des politiques appliquant le principe de moindre privilège. Pour plus d'informations, voir Exécution de commandes dans une instance.

      Pour plus d'informations sur la gestion des plugiciels, voir Gestion des plugiciels avec Oracle Cloud Agent. Pour le dépannage, voir Dépannage d'Oracle Cloud Agent.

  • Vous devez être autorisé à exécuter des commandes sur l'instance. Voir la politique de gestion des identités et des accès (GIA) requise

Pour créer des groupes dynamiques et des politiques pour les pipelines de déploiement, voir Politiques de pipeline de déploiement. Pour plus de détails, voir Politiques GIA pour DevOps.

Pour accéder à DevOps à l'aide de la console Oracle Cloud, de l'API REST et de l'interface de ligne de commande, voir Accès à DevOps.

    1. Ouvrez le menu de navigation et cliquez sur Services de développement. Sous DevOps, cliquez sur Projets.
    2. Sélectionnez un projet et un pipeline de déploiement.
    3. Pour ajouter une étape au pipeline, cliquez sur l'icône + et sélectionnez Ajouter une étape.
    4. Pour le type d'étape, sélectionnez Stratégie de test canari, puis cliquez sur Suivant.
    5. Sélectionnez Groupe d'instances comme type de déploiement.
    6. Entrez un nom et une description pour l'étape. L'ajout d'une description est facultatif.
    7. Pour Environnement de test canari, sélectionnez un environnement de groupe d'instances existant.
    8. Cliquez sur Sélectionner un artefact, puis sélectionnez des artefacts de configuration de déploiement de groupe d'instances disponibles à déployer.

      Le fichier de configuration de déploiement définit les artefacts à télécharger dans l'instance et l'emplacement où ils doivent être copiés. Pour plus d'informations, voir Fichier de configuration de déploiement.

    9. (Facultatif) Cliquez sur Sélectionner un artefact pour ajouter d'autres artefacts, qui sont téléchargés dans les instances de calcul pendant le déploiement.

      Ces artefacts supplémentaires ne doivent pas être insérés.

    10. Cliquez sur Sélectionner un équilibreur de charge.
      1. Sélectionnez la région et le compartiment de l'équilibreur de charge.
      2. Sélectionnez un équilibreur de charge dans la liste.

      L'équilibreur de charge déplace une partie du trafic de production vers l'environnement de test canari lors du déploiement. Pour plus d'informations, voir Gestion de l'équilibreur de charge.

    11. Pour ajouter un module d'écoute à l'équilibreur de charge, cliquez sur Sélectionner un module d'écoute.

      Les modules d'écoute vérifient le trafic entrant sur l'adresse IP de l'équilibreur de charge et le port du module d'écoute. Pour plus d'informations, voir Gestion des modules d'écoute.

    12. Entrez une valeur dans Port du serveur dorsal.

      Il s'agit du port des instances où l'application est exécutée.

    13. (Facultatif) Sélectionnez un équilibreur de charge de test, un module d'écoute et un port dorsal pour tester l'application avant de déplacer le trafic de production.

      Cela permet d'éviter tout risque d'échec du déploiement pendant la production.

    14. La politique de déploiement contrôle le taux et le comportement du déploiement d'instances dans l'environnement cible. Sélectionnez une des options suivantes :
      • Déploiement par pourcentage : Entrez une valeur en pourcentage comprise entre 1 et 100. Cette valeur contrôle le pourcentage maximal d'instances qui sont déployées ou qui ne sont pas en cours d'exécution à un moment donné.
      • Déploiement par nombre : Entrez une valeur numérique. Cette valeur contrôle le nombre maximal d'instances qui sont déployées ou qui ne sont pas en cours d'exécution à un moment donné.
    15. (Facultatif) Pour Durée entre deux lots, entrez une durée en secondes.
    16. (Facultatif) Pour ajouter des marqueurs au pipeline, cliquez sur Afficher les options de marquage. Le marquage est un système de métadonnées qui vous permet d'organiser les ressources de votre location et d'en assurer le suivi.

      Si vous êtes autorisé à créer une ressource, vous êtes également autorisé à ajouter des marqueurs à structure libre à cette ressource.

      Pour ajouter un marqueur défini, vous devez être autorisé à utiliser l'espace de noms de marqueur.

      Pour plus d'informations, voir Marqueurs de ressource.

    17. Cliquez sur Suivant.
    18. Validez l'exécution du déploiement. Pour la validation, une fonction personnalisée est ajoutée au pipeline. Sélectionnez Exécuter une logique personnalisée au moyen d'une fonction et entrez les valeurs suivantes :
      1. Entrez un nom et une description pour l'étape. L'ajout d'une description est facultatif.
      2. Pour Environnement, sélectionnez une fonction existante à appeler.

        Le champ Nom de la fonction en lecture seule affiche la fonction appelée dans le pipeline.

      3. (Facultatif) Pour sélectionner et ajouter des artefacts à l'étape, cliquez sur Sélectionner un artefact.

        Sélectionnez une ressource d'artefact existante dans votre projet DevOps. L'artefact doit être un fichier générique (universel). Les paramètres de l'artefact doivent être au format JSON et peuvent comporter des paramètres fictifs. Lors de la configuration de la ressource d'artefact DevOps, sélectionnez Autoriser le paramétrage. Si vous cochez cette case, les paramètres fictifs sont remplacés par la valeur de l'argument lors du déploiement. Pour plus d'informations, voir Configuration des paramètres.

        Voici un exemple de contenu d'artefact générique pour transmettre deux paramètres définis par l'utilisateur et leurs valeurs :
        • Paramètres : test_name, app_version
        • Valeurs : {"test_name":"verify_production", "app_version":"${app_version}"}
      4. Pour Mode d'exécution d'étape, sélectionnez l'exécution asynchrone ou synchrone.

        Si vous sélectionnez Exécuter de manière asynchrone, le service appelle la fonction mais n'attend pas qu'elle se termine. Lorsque vous sélectionnez Exécuter de manière synchrone, le service appelle la fonction et attend qu'elle se termine.

      5. Cochez cette case pour désactiver ou activer la validation.

        Si la validation est activée, le service vérifie la valeur retournée par la fonction. La valeur retournée est un littéral de chaîne UTF-8, true ou false. Si la valeur retournée est true, l'étape est marquée comme Réussite. Sinon, elle est marquée comme échec.

        Si la validation est désactivée, le service ne vérifie pas la valeur retournée.

        La validation n'est effectuée que si vous avez sélectionné l'option "Exécuter de manière synchronisée" pour le mode d'exécution de l'étape.

      6. (Facultatif) Pour ajouter des marqueurs au pipeline, cliquez sur Afficher les options de marquage. Le marquage est un système de métadonnées qui vous permet d'organiser les ressources de votre location et d'en assurer le suivi.

        Vous pouvez sélectionner un espace de noms de marqueur ou ajouter un marqueur à structure libre. Entrez la clé et la valeur de marqueur correspondantes. Vous pouvez ajouter plusieurs marqueurs.

      Note

      Si vous ne voulez pas valider l'exécution du déploiement, sélectionnez Aucun.
    19. Cliquez sur Suivant.
    20. Entrez un nom et une description facultative pour l'étape Rediriger le trafic afin de déplacer une partie du trafic vers l'environnement de test canari.
    21. Entrez une limite supérieure en pourcentage pour spécifier le trafic maximal à déplacer. La valeur doit être comprise entre 1 et 25.

      Par exemple, si la limite supérieure est de 20, alors 20 % du trafic sont déplacés vers l'environnement de test canari.

    22. Cliquez sur Suivant.
    23. Entrez un nom et une description pour l'étape manuelle d'approbation. L'ajout d'une description est facultatif.
    24. Entrez le nombre d'approbateurs et cliquez sur Suivant.
    25. Entrez un nom et une description pour l'étape Test canari de production. L'ajout d'une description est facultatif.
    26. Pour Environnement de production, sélectionnez un environnement de groupe d'instances existant utilisé pour déployer l'application validée dans l'environnement de test canari.
    27. Entrez l'espace de noms de production.
    28. Pour repositionner automatiquement le déploiement à la dernière version réussie en cas d'échec de l'étape, cochez la case Repositionnement automatique.
    29. La politique de déploiement contrôle le taux et le comportement du déploiement d'instances dans l'environnement cible. Sélectionnez une des options suivantes :
      • Déploiement par pourcentage : Entrez une valeur en pourcentage comprise entre 1 et 100. Cette valeur contrôle le pourcentage maximal d'instances qui sont déployées ou qui ne sont pas en cours d'exécution à un moment donné.
      • Déploiement par nombre : Entrez une valeur numérique. Cette valeur contrôle le nombre maximal d'instances qui sont déployées ou qui ne sont pas en cours d'exécution à un moment donné.
    30. (Facultatif) Pour Durée entre deux lots, entrez une durée en secondes.
    31. (Facultatif) La politique en cas d'échec définit les critères d'échec d'une étape. Elle peut être définie en fonction du nombre d'hôtes de calcul défaillants dans un groupe d'instances. Sélectionnez une des options suivantes :
      • Aucune
      • Échec par pourcentage : Entrez une valeur en pourcentage comprise entre 1 et 100. Cette valeur définit le pourcentage d'hôtes de calcul dont la défaillance entraîne l'échec de l'étape.
      • Échec par nombre : Entrez une valeur numérique. Cette valeur définit le nombre d'hôtes de calcul dont la défaillance entraîne l'échec de l'étape.
    32. Pour ajouter l'étape au pipeline, cliquez sur Ajouter.

      Une fenêtre modale s'ouvre, affichant le statut des différentes configurations d'étape qui font partie de la stratégie de déploiement de groupe d'instances de test canari. Parmi ces étapes figurent le déploiement de groupe d'instances de test canari, le déplacement du trafic, l'approbation manuelle et le déploiement en continu en production. Si la validation échoue, vous pouvez vérifier le message d'erreur propre à chaque étape ayant échoué et prendre des mesures correctives.

      Si la validation réussit, vous pouvez exécuter le pipeline de déploiement ou ajouter d'autres étapes séquentiellement ou en parallèle au pipeline, si nécessaire.

  • Pour créer une étape de déploiement de groupe d'instances de test canari, exécutez la commande create-deploy-compute-instance-group-canary-stage :

    oci devops deploy-stage create-deploy-compute-instance-group-canary-stage

    Paramètres requis :

    • --compute-instance-group-environment-id
    • --deployment-spec-artifact-id
    • --rollout-policy
    • --pipeline-id
    • --production-load-balancer-config
    • --stage-predecessor-collection

    Pour obtenir de l'aide sur cette commande :

    oci devops deploy-stage create-compute-instance-group-canary-stage -h

    Pour créer une étape de déplacement de trafic de groupe d'instances de test canari, exécutez la commande create-compute-instance-group-canary-traffic-shift-stage :

    oci devops deploy-stage create-compute-instance-group-canary-traffic-shift-stage

    Paramètres requis :

    • --compute-instance-group-canary-stage-id
    • --pipeline-id
    • --stage-predecessor-collection

    Pour obtenir de l'aide sur cette commande :

    oci devops deploy-stage create-compute-instance-group-canary-traffic-shift-stage -h

    Pour créer une étape d'appel de fonction, exécutez la commande create-invoke-function-stage :

    oci devops deploy-stage create-invoke-function-stage

    Paramètres requis :

    • --function-environment-id
    • --is-async
    • --is-validation-enabled
    • --pipeline-id
    • --stage-predecessor-collection

    Pour obtenir de l'aide sur cette commande :

    oci devops deploy-stage create-invoke-function-stage -h

    Pour créer une étape d'approbation manuelle, exécutez la commande create-manual-approval-stage :

    oci devops deploy-stage create-manual-approval-stage

    Paramètres requis :

    • --approval-policy
    • --pipeline-id
    • --stage-predecessor-collection

    Pour obtenir de l'aide sur cette commande :

    oci devops deploy-stage create-manual-approval-stage -h

    Pour afficher toutes les commandes pour deploy-stage :

    oci devops deploy-stage -h
  • Pour créer une étape, utilisez l'opération CreateDeployStage. Selon les étapes à ajouter au pipeline, sélectionnez les valeurs suivantes pour le type d'étape :

    • Étape de déploiement de groupe d'instances de calcul de test canari : COMPUTE_INSTANCE_GROUP_CANARY_DEPLOYMENT
    • Étape d'appel de fonction : INVOKE_FUNCTION
    • Étape de déplacement de trafic de groupe d'instances de calcul de test canari : COMPUTE_INSTANCE_GROUP_CANARY_TRAFFIC_SHIFT
    • Étape d'approbation de groupe d'instances de calcul de test canari : COMPUTE_INSTANCE_GROUP_CANARY_APPROVAL