0Pricing
DevOps Bootcamp · Lezione

Rilasci Canary con Actions

Implementi pattern di rilascio Canary per distribuire gradualmente nuove funzionalità a un sottoinsieme di utenti, monitorando prestazioni e stabilità.

Rilasci Canary con Actions è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 2 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.

Introduzione ai rilasci Canary

Immagini di lanciare una nuova funzionalità o un aggiornamento. E se contenesse un bug che riguardasse tutti gli utenti? Fa paura, vero?

I rilasci Canary aiutano a ridurre questo rischio distribuendo gradualmente le modifiche, inizialmente a un piccolo sottoinsieme di utenti. È come mandare un «canarino in miniera» per testare l'aria prima che entrino tutti gli altri.

Vantaggi dei rilasci Canary

I rilasci Canary offrono diversi vantaggi fondamentali:

  • Rischio ridotto: limitano l'impatto dei problemi a un piccolo gruppo di utenti.
  • Feedback dal mondo reale: forniscono dati di produzione su prestazioni e stabilità.
  • Rollback rapido: se si verificano problemi, è possibile ripristinare rapidamente solo il piccolo gruppo Canary o l'intero servizio.
  • Esposizione controllata: aumentano gradualmente il numero di utenti coinvolti man mano che cresce la fiducia.

Canary a confronto con Blue/Green

Forse ricorda le distribuzioni Blue/Green, in cui il traffico viene spostato istantaneamente tra due ambienti identici.

I rilasci Canary sono diversi. Invece di uno spostamento istantaneo, prevedono un passaggio graduale del traffico. La nuova versione viene eseguita insieme a quella precedente e inizialmente solo una piccola percentuale di utenti vede la nuova versione. Ciò consente un monitoraggio dettagliato prima del rilascio completo.

Come funzionano i rilasci Canary

Ecco il flusso di base di un rilascio Canary:

  1. Distribuzione della nuova versione: una nuova versione dell'applicazione viene distribuita su un piccolo insieme di server o istanze, insieme alla versione stabile esistente.
  2. Instradamento di una piccola quota di traffico: un load balancer o una service mesh viene configurato per inviare una piccola percentuale (ad esempio, il 5-10%) del traffico degli utenti alla nuova versione.
  3. Monitoraggio: le prestazioni, i tassi di errore e il feedback degli utenti vengono monitorati attentamente per il gruppo Canary.
  4. Promozione o rollback: se tutto procede bene, il traffico viene aumentato gradualmente oppure la nuova versione viene promossa al 100%. Se si verificano problemi, si esegue il rollback della versione Canary e si reindirizza il traffico alla versione stabile.

Orchestrare con GitHub Actions

GitHub Actions può orchestrare l'intero processo di rilascio canary. Non gestisce direttamente il traffico (questo è compito della vostra infrastruttura), ma attiva i vari passaggi:

  • Creazione e test dell'applicazione.
  • Distribuzione della nuova versione in un ambiente canary.
  • Avvio dello spostamento del traffico tramite chiamate API al bilanciatore del carico o alla service mesh.
  • Attesa dei risultati del monitoraggio o delle approvazioni manuali.
  • Promozione del canary o avvio di un rollback.

Schema di un workflow canary

Un workflow tipico di GitHub Actions per un rilascio canary potrebbe essere simile al seguente:

name: Canary Deployment

on: push

jobs:
  build:
    # ... build and test steps ...

  deploy-canary:
    needs: build
    steps:
      - name: Deploy to Canary Group
        # ... call script/tool to deploy and shift 10% traffic ...

  monitor-canary:
    needs: deploy-canary
    # ... wait for monitoring/approval ...

  promote-or-rollback:
    needs: monitor-canary
    # ... conditionally promote to 100% or rollback ...

Ogni passaggio interagirebbe con i vostri strumenti di distribuzione.

Simulare la logica del rollout canary

Sebbene GitHub Actions svolga il ruolo di orchestratore, le decisioni effettive e i comandi di distribuzione vengono spesso eseguiti all'interno di script. Ecco un esempio in Python che simula la logica di un rollout canary. Immaginate un'Action che esegue questo script:

def deploy_version(version, traffic_percent):
    print(f"Deploying {version} to {traffic_percent}% traffic.")
    if traffic_percent == 100:
        print("Full rollout complete!")
    elif traffic_percent > 0:
        print("Canary deployed. Monitoring for stability...")
    else:
        print("Version removed (rollback).")

if __name__ == "__main__":
    print("--- Starting Canary Workflow ---")
    new_app_version = "v2.1-canary"
    stable_app_version = "v2.0"

    # Step 1: Deploy new version to 10% traffic
    deploy_version(new_app_version, 10)

    # Step 2: Simulate monitoring (e.g., waiting for metrics)
    print("Monitoring canary performance...")
    import random
    canary_successful = random.choice([True, True, True, False]) # 75% chance of success

    if canary_successful:
        print("Canary looks good! Proceeding to full rollout.")
        # Step 3a: Promote new version to 100%
        deploy_version(new_app_version, 100)
    else:
        print("Canary issues detected! Rolling back.")
        # Step 3b: Rollback to stable version
        deploy_version(stable_app_version, 100)
    print("--- Canary Workflow Finished ---")

Monitorare il canary

Un monitoraggio efficace è fondamentale. Il vostro workflow di GitHub Actions può integrarsi con i sistemi di monitoraggio in diversi modi:

  • Chiamate API: interrogare gli strumenti di monitoraggio (ad esempio Datadog e Prometheus) per ottenere le metriche principali.
  • Controlli di integrità: interrogare periodicamente gli endpoint di health check dell'applicazione.
  • Gate manuali: mettere in pausa il workflow per consentire la revisione e l'approvazione da parte di una persona.
  • Attese basate sul tempo: attendere un periodo stabilito affinché le metriche si stabilizzino.

Il workflow utilizza quindi questi segnali per decidere se promuovere il canary o eseguire un rollback.

Promozione o rollback condizionale

Al termine della fase di monitoraggio, GitHub Actions utilizza una logica condizionale per decidere il passaggio successivo. È possibile usare istruzioni if nelle definizioni dei job o dei passaggi.

  promote-or-rollback:
    needs: monitor-canary
    if: success() && needs.monitor-canary.outputs.canary_ok == 'true'
    steps:
      - name: Promote Full Rollout
        # ... command to shift 100% traffic to new version ...

  rollback:
    needs: monitor-canary
    if: failure() || needs.monitor-canary.outputs.canary_ok == 'false'
    steps:
      - name: Rollback to Stable
        # ... command to shift 100% traffic to old version ...

In questo modo si garantisce una reazione automatica alle prestazioni del canary.

Verifica del rilascio canary

Avete appreso i vantaggi e il funzionamento dei rilasci canary. Verifichiamo la vostra comprensione.

Riepilogo: rilasci canary con Actions

In questa lezione avete appreso i rilasci canary, una strategia di distribuzione efficace per distribuire gradualmente nuove versioni del software a un sottoinsieme di utenti.

  • I rilasci canary riducono al minimo i rischi e forniscono feedback dal mondo reale.
  • GitHub Actions orchestra la compilazione, la distribuzione nel canary, il monitoraggio e i passaggi di promozione o rollback condizionali.
  • Un monitoraggio efficace e una logica condizionale sono fondamentali per pipeline canary di successo.

Utilizzando i canary, potete distribuire con maggiore sicurezza e controllo.

Domande Frequenti

La lezione «Rilasci Canary con Actions» è gratuita?

Sì — il testo completo di «Rilasci Canary con Actions» è 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 «Rilasci Canary con Actions»?

Implementi pattern di rilascio Canary per distribuire gradualmente nuove funzionalità a un sottoinsieme di utenti, monitorando prestazioni e stabilità. 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 2 di 4.

Quanto tempo richiede la lezione «Rilasci Canary con Actions»?

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