DevOps

Blue-green vs. canary deploy: melyik illik a csapatodhoz?

A deploy-stratégiát nem a divat, hanem a rollback-igény és a forgalommintázat dönti el. Végigvesszük, mikor egyszerűbb a blue-green, és mikor éri meg a canary komplexitása.

Röviden: A deploy-stratégiát nem a divat, hanem a rollback-igény és a forgalommintázat dönti el. Végigvesszük, mikor egyszerűbb a blue-green, és mikor éri meg a canary komplexitása.

A deploy-stratégia az a téma, ahol könnyű beleszeretni a legkifinomultabb megoldásba, aztán rájönni, hogy a csapatnak egy egyszerűbb is bőven elég lett volna. A blue-green és a canary deploy is a kockázatcsökkentésről szól, de más áron és más komplexitással. A jó választást nem az dönti el, melyik hangzik korszerűbben, hanem hogy milyen a rollback-igényed és a forgalmad.

Mit csinál a blue-green?

A blue-green lényege, hogy két teljes környezetet tartasz: az egyik él (blue), a másikra telepíted az új verziót (green). Amikor a green készen áll és tesztelt, a forgalmat egy lépésben átkapcsolod rá. Ha baj van, visszakapcsolsz a blue-ra — a rollback szinte azonnali, mert a régi környezet érintetlenül ott áll.

Előnyök és árak

A blue-green legnagyobb erénye az egyszerűsége és a gyors, tiszta rollback. Cserébe egy ideig két teljes környezetet üzemeltetsz párhuzamosan, ami erőforrás-, tehát költségkérdés. Az átkapcsolás pillanata pedig „mindent vagy semmit”: az összes felhasználó egyszerre kapja az új verziót.

Mit csinál a canary?

A canary fokozatosan enged forgalmat az új verzióra: először a felhasználók kis hányadát, majd — ha a metrikák jók — egyre többet, végül mindenkit. A hibát a kis részhalmazon veszed észre, mielőtt a teljes bázis érintett lenne.

A döntés kulcstényezői

SzempontBlue-greenCanary
Rollback sebességeAzonnali, visszakapcsolásFokozatos visszavonás
Hiba hatóköreMindenki egyszerreKis részhalmaz először
KomplexitásAlacsonyabbMagasabb, metrikafüggő
ErőforrásigényKét teljes környezetKevesebb extra kapacitás
Ideális forgalomnálBármekkoraNagy, egyenletes forgalom

Miért számít a forgalom mérete?

A canary matematikája nagy, egyenletes forgalomnál működik jól: ha a felhasználók 5%-a elég ahhoz, hogy statisztikailag értékelhető metrikát adjon percek alatt, akkor gyorsan és biztonságosan tudsz dönteni. Alacsony forgalomnál viszont a kis részhalmazból lassan gyűlik értékelhető adat, és a canary előnye elolvad — ilyenkor a blue-green egyszerűbb és éppolyan biztonságos.

A csapat érettsége is tényező

A canary nemcsak infrastruktúrát, hanem érett megfigyelhetőséget és automatizált döntési logikát is igényel. Ha a csapatnál még nincs megbízható metrikafigyelés és automatikus rollback, akkor a canary bevezetése előbb egy megfigyelhetőségi projekt. A blue-green ezzel szemben kevesebb előfeltétellel is biztonságos rollbacket ad — jó belépő szint.

A rollback mint elsődleges szempont

Mindkét stratégia lényege a kockázatcsökkentés, de a rollback filozófiájuk eltér. A blue-green azonnali, tiszta visszakapcsolást ad: a régi környezet érintetlenül áll, egy kapcsolóval visszaléphetsz. A canary fokozatos visszavonást jelent: leállítod a kiterjesztést, és visszaléptetsz a korábbi arányra. A választásnál kérdezd meg: milyen gyorsan és milyen tisztán akarsz tudni visszalépni, ha baj van?

Ha a rendszered állapotot tart, a rollback bonyolultabb mindkét esetben: az új verzió által írt adat kompatibilis kell legyen a régivel. Ezt az adatséma-kompatibilitást előre kell tervezni, függetlenül a deploy-stratégiától.

A metrikafüggő döntés

A canary igazi ereje az automatizált, metrika-alapú döntésben van. A kiterjesztés minden lépésénél a rendszer figyeli a kulcsmetrikákat (hibaarány, latencia), és ha romlanak, automatikusan megáll vagy visszalép. E nélkül a canary csak egy lassabb, kézzel vezérelt teljes deploy. A metrikafigyelés és az automatikus döntés tehát nem opció, hanem a canary előfeltétele.

A csapat érettsége és a választás

A deploy-stratégiát a csapat érettségéhez is igazítani kell. Egy kezdő vagy kis csapatnak a blue-green kevesebb előfeltétellel ad biztonságos rollbacket — jó belépő szint. A canary érett megfigyelhetőséget, automatizált döntési logikát és nagyobb forgalmat igényel, hogy a kis részhalmazból gyorsan értékelhető adat gyűljön. Kezdd az egyszerűbbel, és lépj a kifinomultabbra, amikor a rendszered és a csapatod készen áll rá — ne fordítva.

Mit jelent ez neked?

Válaszd a blue-greent, ha egyszerű, azonnali rollbacket akarsz, és nem zavar a két környezet átmeneti költsége — ez jó alap kisebb vagy egyenetlen forgalomnál. Válaszd a canaryt, ha nagy, egyenletes a forgalmad, és van érett metrikafigyelésed automatikus döntéssel — így a hibát a felhasználók töredéke érzi csak. A stratégiát a rollback-igényed és a forgalmad döntse el, ne az, melyik hangzik korszerűbben.