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 Code Stream 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 Code Stream 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 Code Stream 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.
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. |
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 Code Stream 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 Code Stream prima dell'aggiunta manuale di attività.
In questo esempio viene utilizzato il modello di pipeline smart CICD per creare la pipeline blu-verde.
Prerequisiti
- Verificare che sia possibile accedere a un cluster Kubernetes funzionante in AWS.
- Verificare di avere impostato un ambiente di distribuzione blu-verde e di aver configurato le istanze blu-verde in modo che siano identiche.
- Creare un endpoint Kubernetes in Code Stream che distribuisca l'immagine dell'applicazione nel cluster Kubernetes in AWS.
- Acquisire familiarità con l'utilizzo del modello di pipeline smart CICD. Vedere Pianificazione di una creazione nativa di integrazione continua e consegna continua in Code Stream prima di utilizzare il modello di pipeline smart.
Procedura
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 Code Stream 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: codestream-82855 namespace: codestream-82855
Codice YAML per creare un servizio di esempio:
apiVersion: v1 kind: Service metadata: labels: app: codestream-demo name: codestream-demo namespace: bluegreen-799584 spec: minReadySeconds: 0 ports: - port: 80 selector: app: codestream-demo tier: frontend type: LoadBalancer
Codice YAML per creare una distribuzione di esempio:
apiVersion: extensions/v1 kind: Deployment metadata: labels: app: codestream-demo name: codestream-demo namespace: bluegreen-799584 spec: minReadySeconds: 0 replicas: 1 selector: matchLabels: app: codestream-demo tier: frontend template: metadata: labels: app: codestream-demo tier: frontend spec: containers: - image: ${input.image}:${input.tag} name: codestream-demo ports: - containerPort: 80 name: codestream-demo imagePullSecrets: - name: jfrog-2 minReadySeconds: 0
Operazioni successive
Per ulteriori informazioni su come utilizzare Code Stream, vedere Tutorial sull'utilizzo di Code Stream.
Per eseguire il rollback di una distribuzione, vedere Come eseguire il rollback di una distribuzione in Code Stream.
Per ulteriori riferimenti, vedere Altre risorse per amministratori e sviluppatori di Code Stream.