Déploiement de groupe d'instances bleu/vert

Créez un pipeline de déploiement à l'aide de la stratégie de publication bleu/vert pour le déploiement de 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 déployer (actif et de secours) 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, comme la surveillance, le redimensionnement automatique, le déploiement ou la gestion du système d'exploitation, ne fonctionnent pas si 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 bleu/vert, 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. Dans Environnement A, sélectionnez le groupe d'instances dans lequel l'application est déployée. Dans Environnement B, sélectionnez un autre groupe d'instances identique à l'environnement A.
    8. Cliquez sur Sélectionner un artefact et 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 bascule le trafic entre les environnements actif et de secours 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 pour le 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 la nouvelle 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. Vous pouvez choisir de valider l'exécution du déploiement ou de ne pas la valider en sélectionnant Aucun.

      Sélectionnez Exécuter une logique personnalisée via une fonction pour valider l'application en appelant une fonction. 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.

    19. Vous pouvez activer ou désactiver une approbation manuelle pour le déploiement. Pour activer une approbation, saisissez les valeurs suivantes :
      1. Entrez le nom et la description de la phase. L'ajout d'une description est facultatif.
      2. Entrez le nombre d'approbateurs.
      3. (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.

    20. 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 bleu/vert. Les phases de déploiement de groupes d'instances bleu/vert, de fonction d'appel, d'approbation et de changement de trafic peuvent être incluses. 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 bleu/vert de groupe d'instances, exécutez la commande create-deploy-compute-instance-group-blue-green-stage :

    oci devops deploy-stage create-deploy-compute-instance-group-blue-green-stage

    Paramètres requis :

    • --environment-id-a
    • --environment-id-b
    • --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-blue-green-stage -h

    Pour créer une phase de changement de trafic bleu/vert de groupe d'instances, exécutez la commande create-compute-instance-group-blue-green-traffic-shift-stage :

    oci devops deploy-stage create-compute-instance-group-blue-green-traffic-shift-stage

    Paramètres requis :

    • --compute-instance-group-blue-green-stage-id
    • --pipeline-id
    • --stage-predecessor-collection

    Pour obtenir l'aide relative à cette commande :

    oci devops deploy-stage create-compute-instance-group-blue-green-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 de changement de trafic d'équilibreur de charge, exécutez la commande create-load-balancer-traffic-shift-stage :

    oci devops deploy-stage create-load-balancer-traffic-shift-stage

    Paramètres requis :

    • --blue-backend-ips
    • --green-backend-ips
    • --load-balancer-config
    • --traffic-shift-target
    • --rollout-policy
    • --pipeline-id
    • --stage-predecessor-collection

    Pour obtenir l'aide relative à cette commande :

    oci devops deploy-stage create-load-balancer-traffic-shift-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 bleu/vert du groupe d'instances de calcul : COMPUTE_INSTANCE_GROUP_BLUE_GREEN_DEPLOYMENT
    • Phase de changement de trafic bleu/vert du groupe d'instances de calcul : COMPUTE_INSTANCE_GROUP_BLUE_GREEN_TRAFFIC_SHIFT
    • Phase d'appel de fonction : INVOKE_FUNCTION
    • Phase d'approbation manuelle : MANUAL_APPROVAL