Déploiement de groupe d'instances canari

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

Prérequis

Les prérequis sont les suivants :

  • Ayez un pipeline de déploiement, deux environnements de groupe d'instances vers lesquels effectuer le déploiement (canari et production) sans instances communes et des artefacts. Les artefacts doivent se trouver dans Artifact Registry.

    Les artefacts peuvent être des fichiers de configuration de déploiement ou des artefacts généraux. Le fichier de configuration de déploiement définit les commandes et les étapes permettant de télécharger l'artefact de package d'application à partir du registre d'artefacts indiqué et de le placer dans le système de fichiers de l'instance de calcul cible.

  • Vous devez disposer d'un équilibreur de charge et d'un processus d'écoute dans la console pour le routage du trafic. Vous pouvez également avoir un équilibreur de charge de test et un processus d'écoute pour valider la nouvelle version de l'application avant de déplacer le trafic de production.
  • Le module d'extension Exécution de commandes sur les instances de calcul doit être activé sur l'instance et doit être en cours d'exécution. Pour activer le module d'extension, procédez comme suit :
    1. Dans la console, ouvrez le menu de navigation et cliquez sur Compute. Sous Compute, cliquez sur Instances.
    2. Sélectionnez une instance dans le groupe d'instances vers lequel effectuer le déploiement.
      Remarque

      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 module d'extension Exécution de commandes sur les instances de calcul, basculez le bouton Activer le module d'extension sur Activé.

      L'application de la modification prend jusqu'à 10 minutes.

      Attention

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

      Pour déployer des applications à l'aide du module d'extension Exécution de commandes sur les instances de calcul, vous devez configurer et gérer de façon appropriée les stratégies de moindre privilège. Pour plus d'informations, reportez-vous à Exécution de commandes sur une instance.

      Pour plus d'informations sur la gestion des modules d'extension, reportez-vous à Gestion des modules d'extension avec l'agent Oracle Cloud. Pour la résolution des problèmes, reportez-vous à Dépannage de l'agent Oracle Cloud.

  • Vous devez être autorisé à exécuter des commandes sur l'instance. Reportez-vous à la stratégie Identity and Access Management (IAM) requise

Afin de créer des groupes dynamiques et des stratégies pour les pipelines de déploiement, reportez-vous à Stratégies de pipeline de déploiement. Pour plus de détails, reportez-vous à Stratégies IAM DevOps.

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

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

      Le fichier de configuration de déploiement définit les artefacts à télécharger vers l'instance et l'emplacement vers lequel les artefacts doivent être copiés. Pour plus d'informations, reportez-vous à Fichier de configuration de déploiement.

    9. (Facultatif) Cliquez sur Sélectionner un artefact pour ajouter d'autres artefacts téléchargés vers les instances de calcul lors du déploiement.

      Ces artefacts supplémentaires ne doivent pas être définis de façon incorporée.

    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 disponible.

      L'équilibreur de charge transfère une partie du trafic de production vers l'environnement canari pendant le déploiement. Pour plus d'informations, reportez-vous à Gestion des équilibreurs de charge.

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

      Les processus d'écoute recherchent le trafic entrant sur l'adresse IP et le port du processus d'écoute de l'équilibreur de charge. Pour plus d'informations, reportez-vous à Gestion des processus d'écoute.

    12. Entrez une valeur de port de back-end.

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

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

      Cela permet de prévenir tout risque d'échec du déploiement pendant la production.

    14. La stratégie de déploiement détermine le rythme et le comportement du déploiement de l'instance dans l'environnement cible. Sélectionnez l'une des options suivantes :
      • Déploiement par pourcentage : saisissez une valeur de pourcentage comprise entre 1 et 100. Cette valeur détermine le pourcentage maximal d'instances qui sont déployées, ou qui ne sont pas exécutées, simultanément.
      • Déploiement par nombre : saisissez une valeur numérique. Cette valeur détermine le nombre maximal d'instances qui sont déployées ou qui ne sont pas en cours d'exécution simultanément.
    15. (Facultatif) Pour Délai entre les batches, saisissez une durée en secondes.
    16. (Facultatif) Pour ajouter des balises au pipeline, cliquez sur Afficher les options de balisage. Le balisage est un système de métadonnées permettant d'organiser et de suivre les ressources dans la location.

      Si vous êtes autorisé à créer une ressource, vous disposez également des droits d'accès nécessaires pour lui ajouter des balises à format libre.

      Pour ajouter une balise définie, vous devez disposer des droits d'accès permettant d'utiliser l'espace de noms de balise.

      Pour plus d'informations, reportez-vous à Balises de ressource.

    17. Cliquez sur Suivant.
    18. Validez l'exécution du déploiement. Pour effectuer la validation, une fonction personnalisée est ajoutée au pipeline. Sélectionnez Run a custom logic through a function et entrez les valeurs suivantes :
      1. Entrez le nom et la description de la phase. L'ajout d'une description est facultatif.
      2. Pour Environnement, sélectionnez une fonction existante à appeler.

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

      3. (Facultatif) Pour sélectionner des artefacts et les ajouter à la phase, cliquez sur Sélectionner un artefact.

        Sélectionnez une ressource d'artefact existante dans le projet DevOps. L'objet doit être de type fichier générique (universel). Les paramètres dans l'artefact doivent être au format JSON et peuvent contenir des espaces réservés. Lors de la configuration de la ressource d'artefact DevOps, sélectionnez Autoriser la paramétrisation. La sélection de cette case à cocher garantit que les espaces réservés sont remplacés par la valeur d'argument pendant le déploiement. Pour plus d'informations, reportez-vous à 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 de phase, sélectionnez une 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. Choisissez de désactiver ou d'activer la validation.

        Si la validation est activée, le service vérifie la valeur renvoyée par la fonction. La valeur renvoyée est un littéral de chaîne au format UTF-8, true ou false. Si la valeur renvoyée est true, la phase est réussi. Sinon, elle est en échec.

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

        La validation n'a lieu que si vous avez sélectionné l'option Exécuter de manière synchronique pour le mode d'exécution de phase.

      6. (Facultatif) Pour ajouter des balises au pipeline, cliquez sur Afficher les options de balisage. Le balisage est un système de métadonnées permettant d'organiser et de suivre les ressources dans la location.

        Vous pouvez sélectionner un espace de noms de balise, ou une balise à format libre est ajoutée. Entrez la clé et la valeur de balise correspondantes. Vous pouvez ajouter plusieurs balises.

      Remarque

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

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

    22. Cliquez sur Suivant.
    23. Entrez le nom et la description de la phase d'approbation manuelle. L'ajout d'une description est facultatif.
    24. Saisissez le nombre d'approbateurs et cliquez sur Suivant.
    25. Entrez le nom et la description de la phase de 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 canari.
    27. Entrez l'espace de noms de production.
    28. Pour annuler (rollback) automatiquement le déploiement afin de revenir à la dernière version ayant réussi en cas d'échec de l'étape, cochez la case Annuler automatiquement.
    29. La stratégie de déploiement détermine le rythme et le comportement du déploiement de l'instance dans l'environnement cible. Sélectionnez l'une des options suivantes :
      • Déploiement par pourcentage : saisissez une valeur de pourcentage comprise entre 1 et 100. Cette valeur détermine le pourcentage maximal d'instances qui sont déployées, ou qui ne sont pas exécutées, simultanément.
      • Déploiement par nombre : saisissez une valeur numérique. Cette valeur détermine le nombre maximal d'instances qui sont déployées ou qui ne sont pas en cours d'exécution simultanément.
    30. (Facultatif) Pour Délai entre les batches, saisissez une durée en secondes.
    31. (Facultatif) La stratégie d'échec définit les critères d'échec d'une phase. Elle peut être définie en fonction du nombre d'hôtes de calcul en échec dans un groupe d'instances. Sélectionnez l'une des options suivantes :
      • Aucune.
      • Echec par pourcentage : saisissez une valeur de pourcentage comprise entre 1 et 100. Cette valeur définit le pourcentage d'hôtes de calcul en échec qui entraîne l'échec de la phase.
      • Echec par nombre : saisissez une valeur numérique. Cette valeur définit le nombre d'hôtes de calcul en échec qui entraîne l'échec de la phase.
    32. Pour ajouter la phase au pipeline, cliquez sur Ajouter.

      Une fenêtre modale s'ouvre et affiche le statut des différentes configurations de phase qui font partie de la stratégie de déploiement de groupe d'instances canari. Il s'agit notamment des phases de déploiement canari de groupes d'instances, de changement du trafic, d'approbation manuelle et de déploiement non simultané de production. Si la validation échoue, vous pouvez vérifier le message d'erreur propre à chaque phase en échec et prendre des mesures correctives.

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

  • Pour créer une phase canari de groupe d'instances, 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 l'aide relative à cette commande :

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

    Pour créer une phase de changement de trafic canari de groupe d'instances, 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 l'aide relative à cette commande :

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

    Pour créer une phase 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 l'aide relative à cette commande :

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

    Pour créer une phase 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 l'aide relative à cette commande :

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

    Procédure d'obtention de toutes les commandes pour deploy-stage :

    oci devops deploy-stage -h
  • Pour créer une phase, utilisez l'opération CreateDeployStage. En fonction des phases à ajouter au pipeline, sélectionnez les valeurs suivantes pour le type de phase :

    • Phase de déploiement canari de groupe d'instances de calcul : COMPUTE_INSTANCE_GROUP_CANARY_DEPLOYMENT
    • Phase d'appel de fonction : INVOKE_FUNCTION
    • Phase de changement de trafic canari de groupe d'instances de calcul : COMPUTE_INSTANCE_GROUP_CANARY_TRAFFIC_SHIFT
    • Phase d'approbation canari de groupe d'instances de calcul : COMPUTE_INSTANCE_GROUP_CANARY_APPROVAL