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
| Szempont | Blue-green | Canary |
|---|---|---|
| Rollback sebessége | Azonnali, visszakapcsolás | Fokozatos visszavonás |
| Hiba hatóköre | Mindenki egyszerre | Kis részhalmaz először |
| Komplexitás | Alacsonyabb | Magasabb, metrikafüggő |
| Erőforrásigény | Két teljes környezet | Kevesebb extra kapacitás |
| Ideális forgalomnál | Bármekkora | Nagy, 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.