0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Lezione

Deploy Blue/Green

Configuri strategie di deploy Blue/Green con GitHub Actions per ridurre al minimo i tempi di inattività e facilitare i rollback rapidi.

Deploy Blue/Green è una lezione CI/CD with GitHub Actions & DevOps Pipelines gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento CI/CD with GitHub Actions & DevOps Pipelines, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso CI/CD with GitHub Actions & DevOps Pipelines include 4 lezioni in totale.

Che cos'è la distribuzione Blue/Green?

Benvenuto! In questa lezione approfondiremo le distribuzioni Blue/Green, una potente strategia per rilasciare nuovo software.

È progettata per ridurre al minimo i tempi di inattività e i rischi durante le distribuzioni, assicurando agli utenti un'esperienza sempre fluida.

Blue e Green: concetti fondamentali

Immagini di avere due ambienti di produzione identici: uno chiamato "Blue" e l'altro chiamato "Green".

  • Blue: è l'ambiente attualmente attivo, che gestisce tutto il traffico degli utenti.
  • Green: è un ambiente inattivo e identico, utilizzato per distribuire e testare le nuove versioni.

Come funziona Blue/Green

Il processo è semplice ma efficace:

  1. Distribuisca la nuova versione dell'applicazione nell'ambiente Green (inattivo).
  2. Esegua test approfonditi sulla nuova versione in Green.
  3. Quando è sicuro del risultato, sposti tutto il traffico degli utenti da Blue a Green.
  4. Il vecchio ambiente Blue è ora inattivo e può essere conservato per rollback o aggiornamenti rapidi.

Perché usare Blue/Green?

Questa strategia offre vantaggi significativi:

  • Zero downtime: gli utenti passano senza interruzioni alla nuova versione.
  • Rollback immediato: se si verificano problemi, è sufficiente riportare il traffico all'ambiente Blue stabile.
  • Rischio ridotto: le nuove versioni vengono testate in un ambiente simile alla produzione prima della pubblicazione.

Che cosa occorre

Per implementare Blue/Green, in genere occorrono:

  • Load balancer: per indirizzare il traffico all'ambiente Blue o Green.
  • Due ambienti identici: spesso basati sul cloud, per garantire la coerenza.
  • Strumento di automazione: come GitHub Actions, per gestire le distribuzioni e lo spostamento del traffico.

Orchestrazione con GitHub Actions

GitHub Actions può automatizzare ogni fase della distribuzione Blue/Green.

È possibile definire workflow per:

  • Compilare e distribuire nell'ambiente inattivo.
  • Eseguire test automatizzati sulla nuova distribuzione.
  • Attivare lo spostamento del traffico tramite l'API del load balancer o uno script.

Distribuzione della nuova versione

Ecco un semplice frammento di GitHub Actions per distribuire la nuova versione dell'app nell'ambiente 'Green'. Noti l'uso di un nome environment.

name: Deploy to Green

on:
  push:
    branches:
      - main

jobs:
  deploy-green:
    runs-on: ubuntu-latest
    environment: Green # Target the Green environment
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Deploy app to Green
        run: |
          echo "Deploying application version ${{ github.sha }} to Green environment..."
          # Your actual deployment commands go here
          # e.g., deploy to a specific AWS EC2 instance or Kubernetes namespace

Spostamento del traffico

Dopo una distribuzione e un test riusciti, l'ultimo passaggio consiste nello spostare il traffico. Spesso è necessario aggiornare un load balancer o un record DNS.

Ecco un passaggio concettuale di GitHub Actions che attiverebbe questo spostamento:

name: Switch Traffic to Green

on:
  workflow_dispatch: # Manual trigger for traffic switch

jobs:
  switch-traffic:
    runs-on: ubuntu-latest
    steps:
      - name: Update Load Balancer to Green
        run: |
          echo "Switching load balancer traffic to Green environment..."
          # Call your load balancer's API or a script here
          # e.g., aws elbv2 modify-target-group-attributes ...
          # or kubectl apply -f green-ingress.yaml

Rollback immediati

Che cosa succede se sposta il traffico su Green e compare un bug critico?

Con Blue/Green, il rollback è immediato! È sufficiente riportare il traffico del load balancer all'ambiente Blue originale e stabile.

In questo modo si riducono notevolmente l'impatto dell'incidente e i tempi di ripristino.

Considerazioni importanti

Sebbene sia potente, Blue/Green presenta alcuni aspetti da considerare:

  • Duplicazione delle risorse: vengono eseguiti due ambienti completi, il che può raddoppiare i costi dell'infrastruttura.
  • Migrazioni del database: la gestione delle modifiche al database può essere complessa, poiché sia Blue sia Green potrebbero dover accedere allo stesso archivio dati.
  • Applicazioni stateful: le applicazioni con stato persistente richiedono una pianificazione accurata.

Quiz sulla distribuzione Blue/Green

Verifichiamo la Sua comprensione delle distribuzioni Blue/Green.

Riepilogo della lezione

Ottimo lavoro! Ha imparato a conoscere le distribuzioni Blue/Green.

  • Utilizzano due ambienti identici (Blue e Green) per distribuire nuove versioni.
  • Offrono zero downtime e rollback immediati.
  • GitHub Actions può automatizzare la distribuzione e lo spostamento del traffico.
  • Ricordi di pianificare i costi delle risorse e le modifiche al database!

Domande Frequenti

La lezione «Deploy Blue/Green» è gratuita?

Sì — il testo completo di «Deploy Blue/Green» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso CI/CD with GitHub Actions & DevOps Pipelines, passa a CoddyKit PRO. Il corso CI/CD with GitHub Actions & DevOps Pipelines include 4 lezioni in totale.

Cosa imparerò in «Deploy Blue/Green»?

Configuri strategie di deploy Blue/Green con GitHub Actions per ridurre al minimo i tempi di inattività e facilitare i rollback rapidi. Eserciti CI/CD with GitHub Actions & DevOps Pipelines con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare CI/CD with GitHub Actions & DevOps Pipelines?

Non è richiesta alcuna esperienza precedente. CI/CD with GitHub Actions & DevOps Pipelines su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Deploy Blue/Green»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione CI/CD with GitHub Actions & DevOps Pipelines?

Sì. Ogni lezione CI/CD with GitHub Actions & DevOps Pipelines include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Deploy Blue/Green
  2. Rilasci Canary con Actions
  3. Rollback e disaster recovery
  4. Feature flag e rilasci progressivi
← Torna a CI/CD with GitHub Actions & DevOps Pipelines