Middle+
Mi az a kanári telepítés?
sobes.tech MI
Válasz az MI-től
A kanári telepítés egy olyan stratégia az új funkciók kiadására, ahol a frissítést fokozatosan hajtják végre a felhasználók kis részén, és problémamentes esetben az egész közönségre kiterjesztik.
Főbb lépések:
- A kanári csoport telepítése: Az alkalmazás új verzióját egy kis szerver vagy felhasználói csoportban telepítik.
- Monitorozás: Alaposan figyelemmel kísérik a metrikákat (hibák, teljesítmény, felhasználói viselkedés) a kanári csoport számára.
- Bővítés vagy visszavonás:
- Ha a monitorozás sikerességet mutat, a telepítést fokozatosan bővítik egy nagyobb felhasználói csoport felé.
- Probléma esetén a telepítést visszavonják a kanári csoport számára, védve a fő felhasználói tömeget.
Előnyök:
- Kockázatok minimalizálása: A problémák kis felhasználói csoportot érintenek.
- Gyors visszavonás: Könnyen vissza lehet térni a korábbi verzióhoz.
- Valós körülmények közötti tesztelés: Az új funkció viselkedésének értékelése valódi terhelés alatt.
Hátrányok:
- Infrastruktúra összetettsége: Több verzió támogatása szükséges egyidejűleg.
- Forgalomkezelés: Mechanizmusokra van szükség a forgalom irányításához különböző verziók között.
- Adat elemzés: Hatékony metrikagyűjtés és elemzés szükséges.
Kubernetes példakód:
// v1 telepítés
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-v1
spec:
replicas: 10 // Fő szám
selector:
matchLabels:
app: my-app
version: v1
template:
metadata:
labels:
app: my-app
version: v1
spec:
containers:
- name: my-app
image: my-registry/my-app:v1
---
// Kanári v2 telepítés
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-v2-canary
spec:
replicas: 1 // Kanári csoport
selector:
matchLabels:
app: my-app
version: v2
template:
metadata:
labels:
app: my-app
version: v2
spec:
containers:
- name: my-app
image: my-registry/my-app:v2
---
// Szolgáltatás a forgalom irányítására (választók használatával)
apiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
A v1 és v2 közötti forgalom elosztásának kezeléséhez Ingress kontrollereket (pl. Nginx Ingress, Istio) használnak, amelyek támogatják a súlyozott forgalomelosztást.