GH GambleHub

Buraxılış strategiyaları: mavi-yaşıl və canary

(Bölmə: Texnologiya və Infrastruktur)

Qısa xülasə

Blue-green iki tam yığın (Blue/Green) arasında ani keçid verir. Canary SLO geytlərinin nəzarəti altında yeni versiyada trafikin payını tədricən artırır (gecikmə, error-rate, iş metrikası). iGaming üçün sabit p99 və keyfiyyətini saxlayaraq turnirlərin və aksiyaların zirvəsində downtime olmadan buraxmaq üçün bir yoldur.

1) Nə zaman seçmək lazımdır

Mavi-yaşıl - sürətli buraxılışlar, minimal mürəkkəblik, «ikiqat» klaster/resurs büdcəsi lazımdır. Çətin dövlət miqrasiyası olmadan API/cəbhə üçün yaxşıdır.
Canary - artan risk relizləri (yeni flow, kritik dəyişikliklər), 1-5% trafik deqradasiya «tutmaq» imkan verir. Telemetriya və avtomatik gates tələb edir.

2) Memarlıq prinsipləri

1. L7 səviyyəsində marşrutlaşdırma: balanslaşdırıcı/Ingress/xidmət-mesh (balanslı trafik modulları, cookie/flag-routing).
2. Təcrid olunmuş asılılıqlar: konfiqurasiyalar, fitness, sirlər, caches - təftişlər üçün ayrıca.
3. Məlumatların uyğunluğu: DB irəli uyğun miqrasiya (expand → migrate → contract).
4. Müşahidə: Metrik/Log/Trace-də ayrı-ayrı etiket/etiket versiyaları.
5. Avtoheytlər: p95/p99, error-rate, biznes KPI müqayisə; avtomatik rollback.

3) Mavi-yaşıl: əsas model

Axın

1. Green (Blue surəti) → cache/linkləri qızdırın.
2. Sağlamlıq/smoke testlərinə başlayın.
3. Trafiki (DNS/LB/Ingress) Green-ə keçirin.
4. Blue pəncərənin sonuna qədər fallback kimi «isti» vəziyyətdə saxlayın.

Nümunə: Ingress səviyyəsində keçid (ideya)

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

Müsbət/mənfi cəhətləri

Sadə geri dönüş (Blue geri).
Proqnozlaşdırıla bilən buraxılış vaxtı.
Resursların təkrarlanması tələb olunur.
Kanar ölçüsü olmadan «böyük partlayış» riski.

4) Canary: tədricən genişləndirilməsi

Axın

1. shadow trafikin qaçışı (isteğe bağlı) → 1% real trafik → 5% → 25% → 50% → 100%.
2. Hər mərhələdə - SLO/biznes metrikləri üzrə geytlər.
3. Deqradasiya zamanı - avtomatik geri çəkilmə və diaqnostika artefaktlarının qorunması.

Nümunə: Argo Rollouts (fraqment)

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

Nümunə: Flagger + Istio/NGINX (ideya)

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) Isınma və vəziyyətin idarə edilməsi

Caches/mənbələr: Redis/HTTP-cache/CDN qızdırın, DB/PSP üçün warm-pool bağlantıları hazırlayın.
ML/LLM/modelləri: tərəzi/indekslər/embeddinq boşaltma, KV-cache, «qızdırma» üçün ilkin sorğular.
Fayllar/artefaktlar: statik məzmun, şablonlar, konfiqlər - yerli volume/sidecar-a əvvəlcədən təqdim edin.
Ficheflags: 1-5% auditoriya/seqment rollout, emergency-kill imkanı.

6) Verilənlər bazası: «expand → migrate → contract» strategiyası

1. Expand: nullable/yeni sütunlar/indekslər əlavə edin, hər iki versiyası dəstəkləmək.
2. Migrate: kod yeni sxemdən istifadə edir; köhnə yollar valid qalır.
3. Contract: tam yayılması sonra köhnə sahələri/indeksləri silmək.

Jurnallarda sxem və müştəri versiyasını qeyd edin; bütün dəyişikliklər idempotentdir.
Ağır miqrasiyalar üçün - fon jobları, throttling və razılaşma əsasında «stop-the-world» pəncərələri.

7) Müşahidə və geytalar (SLO/SLA)

SRE metrləri: p50/p95/p99, error-rate, saturation (CPU/GPU/IO), queue-depth, soyuq başlanğıc vaxtı.
Biznes metrikası: ödənişlərin konvertasiyası, bahislərin müvəffəqiyyəti, geri çəkilmə vaxtı (TTW), promosyon cavabları.
Məzmun keyfiyyəti/LLM: tokens/s, cavab uzunluğu, toksiklik, RAG-score.
Geytalar: astanadan çıxarkən və/və ya «faydalı metrika» düşdükdə avtomatik promosyon/geri çəkilmə.

«Siyasət» nümunəsi (psevdo):

gate:
p95_latency_ms <= 250 error_rate %  <= 1. 0 payment_conv  >= baseline - 0. 3%
action:
promote      rollback

8) CI/CD ilə Release-orkestr və inteqrasiya

GitOps: versiyaların/çəkinin dəyişdirilməsi - PR vasitəsilə manifest anbarına.
Avtomatik yoxlamalar: trafik başlamazdan əvvəl smoke/e2e.
Buraxılış planı: canary pillələri cədvəli, məsul, ChatOps kanalları, geri dönüş pəncərələri.
Artefaktların arxivləşdirilməsi: marşrutlaşdırma konfiqləri, daşbordların snepşotları, metriklərin müqayisəsi loqoları.

9) Multiregion və edge

Sifariş: əvvəlcə «ən az kritik» region/ROR, sonra əsas.
Latency-based routing: yerli SLO-ları izləyin; heç bir səbəb olmadan trafik qarışdırmayın.

DR-view: Regionda Blue-A regionda Green-B üçün DR platforması ola bilər

10) Təhlükəsizlik və komplayens Release

İmzalanan şəkillər/çartlar, SBOM; admission siyasətlərində siqnalların yoxlanılması.
Sirlər: yalnız xarici menecerlər; Blue/Green üçün müstəqil versiyalar.
PII/regionallıq: «yad» bölgə vasitəsilə PII ilə trafik aparmayın; müqayisə edərkən logları maskalayın.
Audit: kim təşviq etdi, hansı geytlər işlədi, geri dönüş harada.

11) Konfiqurasiya nümunələri

NGINX: cookies/başlığa görə kanarya filialı (fikir)

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 (tipik ssenarilər)

Kanarda p99 böyüməsi: promosyonu dayandırın → batch/timeout artırın, bayraqlar vasitəsilə ağır fişləri söndürün → podların bir hissəsini yenidən başlatın.
Ödəniş dönüşümünün azalması: PSP marşrutlarını/xüsusiyyətlərini müqayisə edin, shadow-loging, sabit geri dönüş.
DB miqrasiyası ilə problem: qeyd trafikini dondurun, read-only rejimi yandırın, sxemin geri çəkilməsi (mümkünsə), təcili Job düzəlişləri.
PII insidenti: kanarya versiyasını kəsin, sirlərin revokasiyası, hesabat və audit.

13) Giriş çek siyahısı

1. Siyasəti müəyyən edin: hara mavi-yaşıl, hara canary; «kritik» hesab olunur.
2. Balanslı marşrutlaşdırma (Ingress/mesh/router) qurun.
3. SLO-eşik geytləri və avtomatik geri çəkilmələri qeyd edin.
4. DB üçün expand → migrate → contract; miqrasiya testləri.
5. Cache/modelləri və warm-pool bağlantıları qızdırmaq.
6. GitOps daxil edin və bütün buraxılış hərəkətlərini qeyd edin.
7. Metriklərin müqayisəsini vizuallaşdırın (kanarya vs sabit).
8. Game-day keçirin: geri dönüş/hit/DB problemini təqlid edin.
9. Runbooks və «qırmızı düyməni» (kill-switch) sənədləşdirin.
10. Multi-region buraxılışlarını eyni anda deyil, növbə ilə planlaşdırın.

14) Anti-nümunələr

Gates və telemetriya olmadan kanarya release → deqradasiyaların sonradan aşkarlanması.
DB sxemini qarışdırın: kodun yayılmasına qədər miqrasiyaları məhv edin.
Blue və Green üçün bir ümumi cache/növbə təcrid olmadan → qarşılıqlı təsir.
Yoxlanılmadan aşağı TTL ilə DNS keçid - «flapping» trafik.
Hər iki reviziya üçün ümumi sirləri/konfiqaları → mürəkkəb geri dönüş.
Shadow/smoke olmadan proda trafik - «böyük partlayış» riski.
Sürətli söndürmə üçün kill-switch/feature-flag yoxdur.

Nəticələr

Mavi-yaşıl ani və sadə keçid, canary - idarə olunan risk və problemlərin erkən aşkarlanması təmin edir. iGaming-də hər iki nümunə birləşir: «kəskin» dəyişikliklərdə kanar + alt vaxt olmadan əsas mexanizm kimi mavi-yaşıl. SLO geytləri, GitOps, qızdırma, DB uyğunluğu və asılılıq izolyasiyası əlavə edin - və buraxılışlar proqnozlaşdırıla bilər, geri dönüşlər sürətli və p99 və iş metrikası hətta pik dövrlərdə sabitdir.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

Telegram
@Gamble_GC
İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.