Çykyş strategiýalary: gök-ýaşyl we kanary
(Bölüm: Tehnologiýalar we infrastruktura)
Gysgaça gysgaça
"Blue-green" iň ýönekeý yza gaýdyp gelýän iki sany doly stakanyň (Blue/Green) arasynda derrew geçiş berýär. Canary, SLO geýtleriniň (gizlinlik, error-rate, iş metrikasy) gözegçiligi astynda traffigiň paýyny kem-kemden ýokarlandyrýar. "iGaming" üçin bu, durnukly p99 we hilini saklap, ýaryşlaryň we mahabatlaryň iň ýokary derejesine çykmazdan çykarmagyň usulydyr.
1) Haçan näme saýlamaly
Gök-ýaşyl - çalt çykarylýanlar, iň az kynçylyk, "goşa" klaster/çeşme býudjeti gerek. Çylşyrymly state migrasiýasy bolmazdan API/front üçin amatly.
Canary - ýokary töwekgelçilikli neşirler (täze flow, möhüm üýtgeşmeler), traffigiň 1-5% peselmegini "tutmaga" mümkinçilik berýär. Telemetriýa we awtomatiki girtleri talap edýär.
2) Binagärlik ýörelgeleri
1. L7 derejesinde marşrutlaşdyrma: balanslaýjy/Ingress/hyzmat-mesh (deňagramly trafik modullary, kukiler/flag-routing).
2. Izolirlenen garaşlylyk: konfigurasiýalar, aýratynlyklar, syrlar, keşler - barlaglar üçin aýratyn.
3. Maglumatlaryň laýyklygy: DB-nyň öňe gabat gelýän göçmegi (expand → migrate → contract).
4. Syn edilişi: metriklerde/loglarda/trekslerde wersiýalaryň aýry-aýry bellikleri/bellikleri.
5. Awtogeýtler: deňeşdirme p95/p99, error-rate, biznes-KPI; awtomatiki rollback.
3) Gök-ýaşyl: esasy nagyş
Akym
1. "Green" ("Blue" -dan göçürme) → keşleri/baglanyşyklary gyzdyrýarys.
2. Health-/smoke synaglaryny başlaýarys.
3. Traffigi (DNS/LB/Ingress) Green-e geçirýäris.
4. "Blue" -ny penjiräniň ahyryna çenli fallback ýaly "ýyly" ýagdaýda saklaýarys.
Mysal: Ingress derejesinde geçiş (ideýa)
yaml
Annotated/Backend Option - In Prod, it is usually controlled by the spec operator/rollout:
rules:
- host: api. example. com http:
paths:
- path: /
backend:
service:
name: api-green # used to be api-blue port:
number: 80
Oňaýly taraplary
Simpleönekeý yza gaýdyp gelmek (Blue yzyna gaýtaryldy).
Çykaryljak wagty.
Resurslaryň gaýtalanmagyny talap edýär.
Kanar ölçegsiz "uly partlama" töwekgelçiligi.
4) Kanary: kem-kemden uzalmak
Akym
1. Shadow-traffigiň geçmegi (goşmaça) → Hakyky traffigiň 1% -i → 5% → 25% → 50% → 100%.
2. Her basgançakda - SLO/biznes metrikleri boýunça geýtlar.
3. Pese gaçanda - awto-yza gaýdyp gelmek we anyklaýyş artefaktlaryny gorap saklamak.
Mysal: Argo Rollouts (bölek)
yaml apiVersion: argoproj. io/v1alpha1 kind: Rollout metadata: { name: payments-api }
spec:
strategy:
canary:
canaryService: payments-canary stableService: payments-stable steps:
- setWeight: 5
- pause: { duration: 5m }
- analysis:
templates:
- templateName: slo-latency
- setWeight: 25
- pause: { duration: 10m }
- analysis:
templates:
- templateName: error-rate
- setWeight: 50
- pause: { duration: 20m }
- setWeight: 100
Mysal: Flagger + Istio/NGINX (ideýa)
yaml apiVersion: flagger. app/v1beta1 kind: Canary metadata: { name: games-api }
spec:
targetRef:
apiVersion: apps/v1 kind: Deployment name: games-api service:
port: 80 analysis:
interval: 1m threshold: 5 metrics:
- name: request-success-rate thresholdRange: { min: 99 }
- name: request-duration thresholdRange: { max: 300 }
webhooks:
- name: smoke url: http://tester/smoke
5) Gyzdyrmak we ýagdaýy dolandyrmak
Keshler/çeşmeler: Redis/HTTP-keshini/CDN gyzdyryň, DB/PSP üçin warm-pool birikmelerini taýýarlaň.
ML/LLM/modelleri: agramlary/indeksleri/embeddingi ýüklemek, KV-kesh, "gyzdyrmak" üçin ilkinji haýyşlar.
Faýllar/artefaktlar: statiki mazmun, şablonlar, konfigiler - ýerli volume/sidecar-a öňünden iberiň.
Aýratynlyklar: tomaşaçylaryň/segmentiň 1-5% -ine rollout, emergency-kill mümkinçiligi.
6) Maglumat bazalary: "expand → migrate → contract" strategiýasy
1. Expand: nullable/täze sütünleri/indeksleri goşmak, iki wersiýa bilen goldamak.
2. Migrate: kod täze shema ulanýar; köne ýollar dogry bolup galýar.
3. Contract: Köne meýdanlary/indeksleri doly ýaýradylandan soň aýyrýarys.
Žurnallarda shemanyň we müşderiniň wersiýasyny ýazga alyň; ähli üýtgeşmeler - idempotent.
Agyr migrasiýa üçin - fon joblary, throttling we ylalaşylan "stop-the-world" penjireleri.
7) Gözegçilik we geýt (SLO/SLA)
SRE metrikleri: p50/p95/p99, error-rate, saturation (CPU/GPU/IO), queue-depth, sowuk başlangyç wagty.
Işewürlik metrikleri: tölegleriň öwrülişigi, stawkalaryň üstünligi, çekiş wagty (TTW), mahabata jogap.
Mazmunyň hili/LLM: tokens/s, jogap uzynlygy, zäherliligi, RAG-score.
Geýtler: bosagadan çykanda we/ýa-da "peýdaly metrika" ýykylanda awto-mahabat/yza gaýdyş.
gate:
p95_latency_ms <= 250 error_rate % <= 1. 0 payment_conv >= baseline - 0. 3%
action:
promote rollback
8) C/CD bilen çykyş-orkestr we integrasiýa
GitOps: wersiýalary/agramy üýtgetmek - PR arkaly manifest-ammar.
Awtoprewka: smoke/e2e
Çykyş meýilnamasy: kanary basgançaklarynyň tertibi, jogapkär, ChatOps kanallary, yzyna gaýtaryş penjireleri.
Artefaktlaryň arhiwlenmegi: marşrutlaşdyrmagyň konfigi, daşbordlaryň snepşotlary, metrikleri deňeşdirmegiň loglary.
9) Köp sebit we edge
Tertip: ilki "iň az kritiki" sebit/ROR, soňra esasy sebit.
Latency-based routing: lokal SLO-lary yzarlaň; traffigi sebäpsiz garyşdyrmaň.
DR-wizit: Blue-A sebitinde Green-B üçin DR-platforma bolup biler
10) Goýbermegiň howpsuzlygy we utgaşmasy
Gol çekilen şekiller/tertipler, SBOM; admission-syýasatlarda belgileri barlamak.
Syrlar: diňe daşarky dolandyryjylar; Blue/Green üçin garaşsyz wersiýalar.
PII/sebitlilik: "keseki" sebitiň üsti bilen PII-den traffigi aýyrmaň; Deňeşdireniňizde ýazgylaryňyzy gizläň.
Audit: Kim öňe sürdi, haýsy oýunlar işledi, nirede yza gaýdyp geldi.
11) Konfigurasiýa mysallary
NGINX: Çerez/sözbaşy boýunça kanar şahasy (ideýa)
nginx map $http_x_canary $canary {
default 0;
"1" 1;
}
upstream api_stable { server stable:80; }
upstream api_canary { server canary:80; }
server {
location / {
if ($canary) { proxy_pass http://api_canary; }
proxy_pass http://api_stable;
}
}
Feature-flag "fractional rollout" (psevdo)
yaml feature: new_checkout rollout:
percentage: 5 criteria:
country: ["TR", "BR", "MX"]
cohort: "new-users"
kill_switch: true
12) Runbooks (adaty ssenariler)
Kanarda p99 beýikligi: mahabaty duruzmak → batch/timeout artdyrmak, baýdaklar arkaly agyr çyzgylary öçürmek → podlaryň bir bölegini täzeden başlamak.
Tölegleriň öwrülişiginiň peselmegi: PSP-marşrutlary/şowhunlary deňeşdirmek, şadow-logirlemäni açmak, durnuklylyga yza gaýdyp gelmek.
DB migrasiýasy bilen baglanyşykly mesele: ýazga traffigi doňdurmak, read-only re modeimi açmak, shemanyň yza çekilmegi (mümkin bolsa), gyssagly düzedişler.
PII hadysasy: kanareýanyň wersiýasyny kesmek, syrlaryň gaýtalanmagy, hasabat we audit.
13) Girizmegiň çek-sanawy
1. Syýasaty kesgitläň: nirede gök-ýaşyl, nirede canary; "kritiki" hasaplanýar.
2. Deňagramly marşrutlaşdyryşy sazlaň (Ingress/mesh/router).
3. SLO-bosagaly geýtleri we awto-yza gaýdyşlary düzediň.
4. DB üçin expand → migrate → contract; migrasiýa synaglary.
5. Keshleri/modelleri we warm-pool birikmelerini gyzdyryň.
6. GitOps we ähli çykyş hereketlerini ýazga alyň.
7. Metrleriň deňeşdirmesini göz öňüne getiriň (kanareýa vs durnukly).
8. Game-day geçiriň: gaýdyşa/gaýdyşa/BD meselesine öýküniň.
9. Runbooks we "gyzyl düwme" (kill-switch).
10. Köp sebitli neşirleri bir wagtyň özünde däl-de, yzygiderli meýilleşdiriň.
14) Anti-patternler
Geýtsiz we telemetriýasyz kanar çykyşy → zaýalanmalaryň giç ýüze çykarylmagy.
DB shemasyny garyşdyrmak: kod dargadylýança göçmegi ýok etmek.
"Blue" we "Green" üçin bir umumy nagt/nobat → özara täsir.
Barlamazdan pes TTL bilen DNS geçiş - traffigiň "fapping".
Iki gözden geçirmek üçin umumy syrlar/konfigikler → çylşyrymly yza gaýdyp gelmek.
Şadow/smoke bolmazdan traffik - "uly partlama" töwekgelçiligi.
Çalt öçürmek üçin öldürmek-switch/feature-flag ýok.
Netijeler
Blue-green derrew we aňsat geçiş, canary - dolandyrylýan töwekgelçilik we problemalaryň ir ýüze çykarylmagyny üpjün edýär. "iGaming" -de iki model birleşdirilýär: "ýiti" üýtgeşmelerde kanar + aşak düşmezden esasy mehanizm hökmünde gök-ýaşyl. SLO goşuň, GitOps, gyzdyrmak, BD gabat gelmek we endikleriň izolýasiýasy - we goýberilişler öňünden aýdyp bolar, yza gaýdyp gelmek çalt bolar we p99 we iş metrikleri iň ýokary döwürde hem durnukly bolar.