Strategie di deployment: blue-green e canary
Vada oltre i rolling update e impari a rilasciare in sicurezza usando i pattern di deployment blue-green e canary in Kubernetes.
Strategie di deployment: blue-green e canary è una lezione Kubernetes Basics gratuita su CoddyKit. Questa è la lezione 4 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 Kubernetes Basics, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Kubernetes Basics include 4 lezioni in totale.
Perché usare qualcosa di più degli aggiornamenti rolling?
Gli aggiornamenti rolling sostituiscono gradualmente i Pod, ma durante la transizione combinano versioni vecchie e nuove. Per i rilasci rischiosi, potrebbe voler controllare completamente quali utenti vedono la nuova versione.
Le strategie blue-green e canary offrono questo controllo.
L'idea del blue-green
In una distribuzione blue-green si eseguono due ambienti identici:
- Blue = versione attualmente in produzione
- Green = nuova versione, completamente distribuita ma che non riceve ancora traffico
Si sposta tutto il traffico da blue a green in un'unica operazione.
Due Deployment, un solo Service
Ogni versione ha il proprio Deployment con un'etichetta che identifica la versione. Un singolo Service seleziona il colore attualmente attivo.
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-blue
spec:
replicas: 3
selector:
matchLabels:
app: web
version: blue
template:
metadata:
labels:
app: web
version: blue
spec:
containers:
- name: web
image: myapp:1.0Spostare il traffico
Per rendere green la versione attiva, è sufficiente applicare una patch al selector del Service affinché punti alla versione green. Il passaggio è immediato.
kubectl patch service web -p '{"spec":{"selector":{"app":"web","version":"green"}}}'Vantaggi e svantaggi del blue-green
- Vantaggio: rollback immediato tornando a blue
- Vantaggio: nessuna combinazione di versioni durante il rilascio
- Svantaggio: durante la sovrapposizione sono necessarie il doppio delle risorse
L'idea del canary
Un rilascio canary invia inizialmente una piccola parte del traffico alla nuova versione. Se le metriche mostrano risultati positivi, si aumenta gradualmente la sua quota.
Il nome deriva dai canarini che i minatori usavano per rilevare tempestivamente i pericoli.
Canary con il numero di repliche
Un canary semplice utilizza due Deployment che condividono la stessa etichetta del Service. Il traffico viene suddiviso approssimativamente in base al rapporto tra le repliche.
# stable: 9 replicas, canary: 1 replica => ~10% to canary
kubectl scale deployment app-stable --replicas=9
kubectl scale deployment app-canary --replicas=1Promuovere un canary
Quando aumenta la fiducia nella nuova versione, si sposta gradualmente il rapporto a favore del canary, quindi si ritira la versione precedente quando il canary gestisce tutto il traffico.
kubectl scale deployment app-canary --replicas=5
kubectl scale deployment app-stable --replicas=5
# later, fully promote
kubectl scale deployment app-canary --replicas=10
kubectl scale deployment app-stable --replicas=0Monitorare il canary
L'obiettivo principale di un canary è l'osservazione. Controlli il tasso di errori, la latenza e i log prima di promuoverlo.
kubectl get pods -l version=canary
kubectl logs -l version=canary --tail=50Scegliere una strategia
- Blue-green: ideale per un passaggio netto e immediato e per un rollback rapido
- Canary: ideale per limitare l'impatto dei problemi e convalidare la versione con traffico reale
- Rolling: una buona scelta predefinita per aggiornamenti ordinari e a basso rischio
Strumenti oltre kubectl
Per suddividere il traffico in modo dettagliato (ad esempio esattamente il 5%), i team utilizzano service mesh come Istio o strumenti per il progressive delivery come Argo Rollouts e Flagger, che automatizzano l'analisi canary.
Controllo rapido
Scelga l'affermazione che descrive meglio un rilascio canary.
Riepilogo
Ha confrontato strategie di rilascio avanzate. Il blue-green sposta istantaneamente tutto il traffico tra due ambienti per consentire un rollback rapido, mentre il canary sposta gradualmente il traffico per limitare i rischi. Entrambe le strategie si basano sulle primitive Deployment e Service che già conosce.
Domande Frequenti
La lezione «Strategie di deployment: blue-green e canary» è gratuita?
Sì — il testo completo di «Strategie di deployment: blue-green e canary» è 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 Kubernetes Basics, passa a CoddyKit PRO. Il corso Kubernetes Basics include 4 lezioni in totale.
Cosa imparerò in «Strategie di deployment: blue-green e canary»?
Vada oltre i rolling update e impari a rilasciare in sicurezza usando i pattern di deployment blue-green e canary in Kubernetes. Eserciti Kubernetes Basics 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 Kubernetes Basics?
Non è richiesta alcuna esperienza precedente. Kubernetes Basics su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Strategie di deployment: blue-green e canary»?
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 Kubernetes Basics?
Sì. Ogni lezione Kubernetes Basics 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
- Comprendere i Deployment
- Scalabilità delle applicazioni con i ReplicaSet
- Aggiornamenti progressivi e rollback
- Strategie di deployment: blue-green e canary