0Pricing
DevOps Bootcamp · 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 DevOps Bootcamp 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 DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp 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 DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp 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 DevOps Bootcamp 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 DevOps Bootcamp?

Non è richiesta alcuna esperienza precedente. DevOps Bootcamp 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 DevOps Bootcamp?

Sì. Ogni lezione DevOps Bootcamp 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 DevOps Bootcamp