Blu-verde è un modello di distribuzione che utilizza due host Docker che vengono distribuiti e configurati in modo identico in un cluster Kubernetes. Con il modello di distribuzione blu-verde, è possibile ridurre i tempi di inattività che si possono verificare nell'ambiente quando le pipeline in Automation Pipelines distribuiscono le applicazioni.

Le istanze blu e verde nel modello di distribuzione hanno funzioni diverse. Solo un'istanza alla volta accetta il traffico attivo che distribuisce l'applicazione e ogni istanza accetta il traffico in un momento specifico. L'istanza blu riceve la prima versione dell'applicazione e l'istanza verde riceve la seconda.

Il bilanciamento del carico nell'ambiente blu-verde determina il routing del traffico attivo per la distribuzione dell'applicazione. Utilizzando il modello blu-verde, l'ambiente rimane operativo, gli utenti non notano alcun tempo di inattività e la pipeline integra e distribuisce in modo continuativo l'applicazione all'ambiente di produzione.

La pipeline creata in Automation Pipelines rappresenta il modello di distribuzione blu-verde in due fasi. Una fase è per lo sviluppo e l'altra fase è per la produzione.

L'area di lavoro della pipeline di Automation Pipelines supporta Docker e Kubernetes per le attività di integrazione continua e le attività personalizzate.

Per informazioni sulla configurazione dell'area di lavoro, vedere Configurazione dell'area di lavoro della pipeline.

Tabella 1. Attività della fase di sviluppo per la distribuzione blu-verde
Tipo di attività Attività
Kubernetes Creare uno spazio dei nomi per la distribuzione blu-verde.
Kubernetes Creare una chiave segreta per Docker Hub.
Kubernetes Creare il servizio utilizzato per distribuire l'applicazione.
Kubernetes Creare la distribuzione blu.
Polling Verificare la distribuzione blu.
Kubernetes Rimuovere lo spazio dei nomi.
Tabella 2. Attività della fase di produzione per la distribuzione blu-verde
Tipo di attività Attività
Kubernetes Verde ottiene i dettagli del servizio da blu.
Kubernetes Recuperare i dettagli per il set di repliche verde.
Kubernetes Creare la distribuzione verde e utilizzare la chiave segreta per estrarre l'immagine del contenitore.
Kubernetes Aggiornare il servizio.
Polling Verificare che la distribuzione sia stata completata nell'URL di produzione.
Kubernetes Completare la distribuzione blu.
Kubernetes Rimuovere la distribuzione blu.

Per distribuire l'applicazione nel proprio modello di distribuzione blu-verde, creare una pipeline in Automation Pipelines che includa due fasi. La prima fase include le attività blu che distribuiscono l'applicazione all'istanza blu, mentre la seconda include attività verdi che distribuiscono l'applicazione all'istanza verde.

È possibile creare la pipeline utilizzando il modello di pipeline smart CICD. Il modello crea le fasi e le attività della pipeline per l'utente e include le selezioni della distribuzione.

Se si crea la pipeline manualmente, è necessario pianificare le fasi della pipeline. Per un esempio, vedere Pianificazione di una creazione nativa di integrazione e consegna continue in Automation Pipelines prima dell'aggiunta manuale di attività.

In questo esempio viene utilizzato il modello di pipeline smart CICD per creare la pipeline blu-verde.

Prerequisiti

Procedura

  1. Fare clic su Pipeline > Nuova pipeline > Modelli smart > Modello CI/CD.
  2. Immettere le informazioni per la parte CI del modello di pipeline smart CICD e fare clic su Avanti.
  3. Completare la parte CD del modello di pipeline smart
    1. Selezionare gli ambienti per la distribuzione dell'applicazione. Ad esempio, Sviluppo e Produzione.
    2. Selezionare il servizio che la pipeline utilizzerà per la distribuzione.
    3. Nell'area di distribuzione selezionare l'endpoint del cluster per l'ambienti di sviluppo e l'ambiente di produzione.
    4. Per il modello di distribuzione della produzione, selezionare Blu-verde e fare clic su Crea.

    Nel modello della pipeline smart, selezionare il servizio, le distribuzioni e fare clic su Blu-verde per il modello di distribuzione della produzione.

risultati

Congratulazioni! È stato utilizzato il modello di pipeline smart per creare una pipeline che distribuisca l'applicazione alle istanze blu-verde nel cluster di produzione Kubernetes in AWS.

Esempio: Codice YAML di esempio per alcune attività di distribuzione blu-verde

Il codice YAML visualizzato nelle attività della pipeline Kubernetes per la distribuzione blu-verde potrebbe essere simile agli esempi seguenti che creano lo spazio dei nomi, il servizio e la distribuzione. Se è necessario scaricare un'immagine da un repository di proprietà privata, il file YAML deve includere una sezione con il segreto di configurazione di Docker. Vedere la parte CD di Pianificazione di una creazione nativa di integrazione continua e consegna continua in Automation Pipelines prima di utilizzare il modello di pipeline smart.

Quando il modello di pipeline smart avrà creato la pipeline, è possibile modificare le attività in base alle esigenze per la propria distribuzione.

Codice YAML per creare uno spazio dei nomi di esempio:

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

Codice YAML per creare un servizio di esempio:

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

Codice YAML per creare una distribuzione di esempio:

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

Operazioni successive

Per ulteriori informazioni su come utilizzare Automation Pipelines, vedere Tutorial sull'utilizzo di Automation Pipelines.

Per eseguire il rollback di una distribuzione, vedere Come eseguire il rollback di una distribuzione in Automation Pipelines.

Per ulteriori informazioni, vedere le risorse aggiuntive in Introduzione a VMware Aria Automation.