Distributionsstrategier: blue-green och canary
Gå längre än rolling updates och lär dig lansera säkert med blue-green- och canary-mönster i Kubernetes.
Distributionsstrategier: blue-green och canary är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Varför mer än Rolling Updates?
Rolling updates ersätter Poddar gradvis, men blandar gamla och nya versioner under övergången. För riskfyllda lanseringar kanske du vill ha full kontroll över vilka användare som ser den nya versionen.
Strategierna blue-green och canary ger dig den kontrollen.
Idén med blue-green
Vid en blue-green-deployment kör du två identiska miljöer:
- Blue = den aktuella produktionsversionen
- Green = den nya versionen, helt utrullad men ännu utan trafik
Du växlar all trafik från blue till green på en gång.
Två Deployments, en Service
Varje version är ett eget Deployment med en versionsetikett. En enda Service väljer den färg som är aktiv.
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.0Växla trafik
För att göra green aktiv behöver du bara patcha Servicens selector så att den pekar på green-versionen. Växlingen sker omedelbart.
kubectl patch service web -p '{"spec":{"selector":{"app":"web","version":"green"}}}'För- och nackdelar med blue-green
- Fördel: omedelbar återställning genom att växla tillbaka till blue
- Fördel: inga blandade versioner under lanseringen
- Nackdel: kräver dubbla resurser under överlappningen
Idén med canary
En canary-release skickar först en liten del av trafiken till den nya versionen. Om mätvärdena ser bra ut ökar du gradvis dess andel.
Namnet kommer från de kanariefåglar som gruvarbetare använde för att upptäcka fara tidigt.
Canary med replikantal
En enkel canary använder två Deployments som delar samma Service-etikett. Trafiken fördelas ungefär efter förhållandet mellan antalet repliker.
# stable: 9 replicas, canary: 1 replica => ~10% to canary
kubectl scale deployment app-stable --replicas=9
kubectl scale deployment app-canary --replicas=1Befordra en canary
När förtroendet ökar flyttar du förhållandet mot canary-versionen och avvecklar sedan den gamla versionen när den nya hanterar all trafik.
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=0Observera canary-versionen
Hela poängen med en canary är observation. Övervaka felfrekvenser, fördröjning och loggar innan du befordrar versionen.
kubectl get pods -l version=canary
kubectl logs -l version=canary --tail=50Välja strategi
- Blue-green: bäst när du vill ha en ren, omedelbar växling och snabb återställning
- Canary: bäst när du vill begränsa konsekvenserna och validera med verklig trafik
- Rolling: ett bra standardval för lågriskuppdateringar som körs regelbundet
Verktyg utöver kubectl
För finfördelad trafikdelning (till exempel exakt 5 %) använder team service meshes som Istio eller verktyg för progressiv leverans, till exempel Argo Rollouts och Flagger, som automatiserar canary-analys.
Snabbtest
Välj det påstående som bäst beskriver en canary-release.
Sammanfattning
Du har jämfört avancerade strategier för lanseringar. Blue-green växlar all trafik omedelbart mellan två miljöer för snabb återställning, medan canary gradvis flyttar trafiken för att begränsa risken. Båda bygger på de Deployment- och Service-primitiver som du redan känner till.
Lär dig DevOps-bootcamp med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 142
- Lektioner
- 568
Vanliga frågor
Är lektionen ”Distributionsstrategier: blue-green och canary” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Distributionsstrategier: blue-green och canary”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Vad lär jag mig i ”Distributionsstrategier: blue-green och canary”?
Gå längre än rolling updates och lär dig lansera säkert med blue-green- och canary-mönster i Kubernetes. Ni övar på DevOps-bootcamp med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig DevOps-bootcamp?
Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Distributionsstrategier: blue-green och canary”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här DevOps-bootcamp-lektionen?
Ja. Varje DevOps-bootcamp-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Förstå Deployments
- Skala applikationer med ReplicaSets
- Rullande uppdateringar och återställningar
- Distributionsstrategier: blue-green och canary