Bleu-vert est un modèle de déploiement qui utilise deux hôtes Docker que vous déployez et configurez de la même manière dans un cluster Kubernetes. Avec le modèle de déploiement Bleu-vert, vous réduisez le temps d'arrêt susceptible de se produire dans votre environnement lorsque vos pipelines dans Automation Pipelines déploient vos applications.

Les instances Bleu et Vert de votre modèle de déploiement servent chacune un objectif différent. Une seule instance à la fois accepte le trafic en direct déployant votre application, et chaque instance accepte ce trafic à des moments spécifiques. L'instance Bleu reçoit la première version de votre application et l'instance Vert en reçoit la seconde.

L'équilibrage de charge dans votre environnement Bleu-vert détermine quelle voie emprunte le trafic en direct lors du déploiement de votre application. En utilisant le modèle Bleu-vert, votre environnement reste opérationnel, les utilisateurs ne remarquent aucun temps d'arrêt, et votre pipeline intègre et déploie continuellement votre application dans votre environnement de production.

Le pipeline que vous créez dans Automation Pipelines représente votre modèle de déploiement Bleu-vert en deux étapes. Une étape est consacrée au développement, l'autre étape à la production.

L'espace de travail de pipeline Automation Pipelines prend en charge Docker et Kubernetes pour les tâches d'intégration continue et les tâches personnalisées.

Pour plus d'informations sur la configuration de l'espace de travail, consultez Configuration de l'espace de travail de pipeline.

Tableau 1. Tâches de l'étape de développement pour le déploiement Bleu-vert
Type de tâche Tâche
Kubernetes Créez un espace de noms pour votre déploiement Bleu-vert.
Kubernetes Créez une clé secrète pour Docker Hub.
Kubernetes Créez le service utilisé pour déployer l'application.
Kubernetes Créez le déploiement Bleu.
Interrogation Vérifiez le déploiement Bleu.
Kubernetes Supprimez l'espace de noms.
Tableau 2. Tâches de l'étape de production pour le déploiement Bleu-vert
Type de tâche Tâche
Kubernetes Vert obtient les détails de service de Bleu.
Kubernetes Obtenez les détails du jeu de réplicas Vert.
Kubernetes Créez le déploiement Vert et utilisez la clé secrète pour extraire l'image de conteneur.
Kubernetes Mettez le service à jour.
Interrogation Vérifiez que le déploiement a réussi sur l'URL de production.
Kubernetes Terminez le déploiement Bleu.
Kubernetes Supprimez le déploiement Bleu.

Pour déployer l'application de votre propre modèle de déploiement Bleu-vert, vous créez un pipeline dans Automation Pipelines qui inclut deux étapes. La première étape inclut les tâches Bleu qui déploient votre application sur l'instance Bleu, et la seconde inclut des tâches Vert qui déploient votre application sur l'instance Vert.

Vous pouvez créer votre pipeline à l'aide du modèle de pipeline intelligent CICD. Le modèle crée les étapes et tâches de votre pipeline pour vous, et inclut les sélections de déploiement.

Si vous créez votre pipeline manuellement, vous devez planifier vos étapes de pipeline. Par exemple, reportez-vous à la section Planification d'une build native CICD dans Automation Pipelines avant d'ajouter des tâches manuellement.

Dans cet exemple, vous utilisez le modèle de pipeline intelligent CICD pour créer votre pipeline Bleu-vert.

Conditions préalables

  • Vérifiez que vous pouvez accéder à un cluster Kubernetes opérationnel sur AWS.
  • Vérifiez que vous avez configuré un environnement de déploiement Bleu-vert et configuré vos instances Bleu et Vert pour qu'elles soient identiques.
  • Créez un point de terminaison Kubernetes dans Automation Pipelines qui déploie votre image d'application sur le cluster Kubernetes sur AWS.
  • Familiarisez-vous avec l'utilisation du modèle de pipeline intelligent CICD. Reportez-vous à la section Planification d'une build native CICD dans Automation Pipelines avant d'utiliser le modèle de pipeline intelligent.

Procédure

  1. Cliquez sur Pipelines > Nouveau pipeline > Modèle intelligent > Modèle CI/CD.
  2. Entrez les informations concernant la partie CI du modèle de pipeline intelligent CICD, puis cliquez sur Suivant .
  3. Renseignez la partie CD du modèle de pipeline intelligent.
    1. Sélectionnez les environnements pour le déploiement de votre application. Par exemple, Dév et Prod.
    2. Sélectionnez le service que le pipeline utilisera pour le déploiement.
    3. Dans la zone Déploiement, sélectionnez le point de terminaison du cluster pour les environnements Dev et Prod.
    4. Pour le modèle de déploiement Production, sélectionnez Bleu-vert , puis cliquez sur Créer.

    Dans le modèle de pipeline intelligent, sélectionnez le service, les déploiements et cliquez sur Bleu-Vert pour le modèle de déploiement de production.

Résultats

Félicitations ! Vous avez utilisé le modèle de pipeline intelligent pour créer un pipeline qui déploie votre application sur vos instances Bleu-vert dans votre cluster de production Kubernetes sur AWS.

Exemple : Exemple de code YAML pour certaines tâches de déploiement Bleu-vert

Le code YAML qui s'affiche dans les tâches de pipeline Kubernetes correspondant à votre déploiement Bleu-vert peut ressembler aux exemples suivants qui créent l'espace de noms, le service et le déploiement. Si vous devez télécharger une image à partir d'un référentiel privé, le fichier YAML doit inclure une section avec le secret de configuration Docker. Reportez-vous à la partie CD de la section Planification d'une build native CICD dans Automation Pipelines avant d'utiliser le modèle de pipeline intelligent.

Une fois que le modèle de pipeline intelligent a créé votre pipeline, vous pouvez, si nécessaire, modifier les tâches de votre propre déploiement.

Code YAML pour créer un exemple d'espace de noms :

apiVersion: v1
kind: Namespace
metadata:
  name: pipelines-82855
  namespace: pipelines-82855

Code YAML pour créer un exemple de service :

apiVersion: v1
kind: Service
metadata:
  labels:
    app: pipelines-demo
  name: pipelines-demo
  namespace: bluegreen-799584
spec:
  minReadySeconds: 0
  ports:
  - port: 80
  selector:
    app: pipelines-demo
    tier: frontend
  type: LoadBalancer

Code YAML pour créer un exemple de déploiement :

apiVersion: extensions/v1
kind: Deployment
metadata:
  labels:
    app: pipelines-demo
  name: pipelines-demo
  namespace: bluegreen-799584
spec:
  minReadySeconds: 0
  replicas: 1
  selector:
    matchLabels:
      app: pipelines-demo
      tier: frontend
  template:
    metadata:
      labels:
        app: pipelines-demo
        tier: frontend
    spec:
      containers:
      - image: ${input.image}:${input.tag}
        name: pipelines-demo
        ports:
        - containerPort: 80
          name: pipelines-demo
      imagePullSecrets:
      - name: jfrog-2
      minReadySeconds: 0

Que faire ensuite

Pour plus d'informations sur l'utilisation de Automation Pipelines, reportez-vous à la section Didacticiels d'utilisation de Automation Pipelines.

Pour restaurer un déploiement, reportez-vous à la section Restauration d'un déploiement dans Automation Pipelines.

Pour plus d'informations, reportez-vous aux ressources supplémentaires sous Prise en main de VMware Aria Automation.