Fasiləsiz deplo və oyun yeniləmələri necə işləyir
Niyə casino zero-downtime buraxılışlar
iGaming-də hər hansı bir «mikropauza» itirilmiş dərəcələr, sessiyalar və etimaddır. Yeniləmələr oyunçu üçün görünmədən baş verməlidir: bahislər qəbul edilməyə davam edir, axın qırılmır, cüzdan və ledger konsistent olaraq qalır və metriklər qaçmır. Açar - versiyaların nizam-intizamı, müqavilələrin uyğunluğu və addım-addım, müşahidə olunan hesablamalar.
Əsas prinsiplər
1. Irəli/geri uyğunluq. Yeni versiyalar köhnə hadisələri/sahələri başa düşməlidir, köhnə müştərilər isə yenilərinə məhəl qoymamalıdır.
2. Immutable assets. Statik və oyun resursları hash adları ilə verilir; faylların «yenidən yazılması» yoxdur.
3. Yazma/oxu yollarının ayrılması. Pul əməliyyatları (hold/settle) təcrid və atom, UI/assets müstəqil olaraq dəyişir.
4. Bir müqavilə kimi müşahidə. Trading/metrik olmadan buraxılış - qadağa.
5. Geri dönüş - buraxılış ilə eyni normadır. Hazır şəkillər, «hər iki tərəfə» miqrasiya, əl şamanizmi olmadan rollback düyməsi.
Zero-downtime arxitekturası praktikada
1) Versiyalar və müqavilələr
API/hadisələr üçün SemVer: 'MAJOR. MINOR. PATCH ', hər bir mesajda' eventVer/contractVer 'sahəsi.
DB sxemləri üçün Expand → Migrate → Contract: əvvəlcə sahələr/indekslər (expand), sonra arxa plan miqrasiyası (migrate) əlavə edin və yalnız sonra legacy (contract) söndürün.
Kritik məntiqin dəyişməsində Dual-write/Dual-read (məsələn, bonusun hesablanması): bir müddət köhnə və yeni cədvəllərə yazırıq, müqayisə edirik.
2) Assetlər və CDN
Bandla/sprite/mətnlər: 'app. a1b2c3. js`, `paytable. 98f0. png ', başlıqlar:
Cache-Control: public, max-age=31536000, immutable
Server/CDN-də asset manifesti. Yeni bir manifestə keçid - oyunçular dərhal yeni bir UI əldə edirlər, köhnə səhifələr əvvəlki fayllarla yaşamağa davam edir (sındırılmış bağlantılar olmadan).
Tez-tez dəyişən JSON üçün Tag-purge (kataloqlar/afişalar) + yumşaq növbə üçün 'stale-while-revalidate'.
3) Trafik strategiyaları
Kritik komponentlər üçün Blue-Green (cüzdan/ledger/bridge): iki eyni mühiti saxlayın, saniyələr ərzində ingress/virtual xidməti dəyişdirin.
API/oyun şlüzləri üçün Canary: 1-5% trafik → SLO/fin-delta təhlili → 100% -ə qədər genişləndirin.
Feature flags üçün UI və mexaniki: seqment, region və ya oyun altında daxil, kod azad olmadan.
4) Canlı oyunlar və RNG
Live (WebRTC/LL-HLS):- Video axınından ayrı oyunçu/overlay dəyişdirin (müxtəlif domenlər/konfiqlər).
- Zaman sinxronizatoru (server time) və yeni siqnala «yumşaq» keçid.
- Yeni oyun montajı resursun yeni versiyası kimi verilir. Artıq tura başlayan oyunçular onu köhnə müştəri/qaydalarla bitirirlər.
- В `round. settled 'calcVer' - mübahisəli raundların «olduğu kimi» səsləndirilməsi üçün hesablama mühərrikinin versiyası.
5) Cüzdan və ledger - pulu necə sındırmamaq olar
Bir şard yazıçı. Yazıçının dəyişdirilməsi ayrı bir prosedurdur (kilidlərlə) və yalnız AZ/region daxilində.
Bütün yollarda idempotentlik: 'bet. place`, `round. settle`, `payout. request`, `cashier. webhook` — с `idempotencyKey`.
PITR və shadow-yoxlamalar: Kanar hesablaması zamanı naqilləri «kölgəyə» köçürürük, promosyondan əvvəl aqreqatları (GGR/NGR) yoxlayırıq.
Fasiləsiz addım-addım buraxılış (istinad ssenarisi)
1. Hazırlıq:- Buraxılış müqaviləsi: 'PATCH/MINOR/MAJOR', uyğunluq matrisi.
- Miqrasiya 'expand' əvvəlcədən tətbiq olunur, indeks-bild - online.
- Assets CDN yüklü, manifest hazırdır.
- 1-5% trafik. p95/99 'bet müşahidə. place ',' settle ',' error _ rate ',' VOID 'artımı, ödəniş balanssızlığı.
- Maliyyə nəzarət qrupu ilə müqayisə (delta
- 25/50/100 faiz artırmaq və ya pul nüvəsində Blue-Green keçid.
- Bayraqlar (lokallar/oyunlar/regionlar).
- Fon jobları məlumat/tərəqqi ötürür, dual-write daxil olur.
- Telemetri metrlərin üst-üstə düşdüyünü təsdiqləyir.
- Legasi-oxu söndürülür, növbəti MINOR/MAJOR-da «kölgələr» silinir.
- Sxemlərin/hadisələrin kataloqlarını yeniləyirik, deprekeyti bağlayırıq.
- Post-mortem/retro hətta insidentsiz: SLO, alertlər, yoxlama vərəqlərində nəyi yaxşılaşdırmaq olar.
Buraxılış zamanı müşahidə və SLO
SLI/SLO:- `bet. place p95 '(hədəf ≤ 150-250 ms),' error _ rate '(<0. 3%), `round. settle p95` (≤2 с), `payout. submit p95 '(≤ 800 ms).
- Live QoS: `webrtc_rtt_ms`, `dropped_frames`, `aborted_rounds`.
- Version tags: 'buildId', 'semver', 'contractVer', 'calcVer' loqlarda və treysdə.
- Fin Delta: köhnə/yeni filial seqmentləri GGR/NGR/hold müqayisə.
Ağrısız geri dönüş (rollback)
Blue-Green: «mavi» üçün marşrutun dərhal qaytarılması.
Canary: trafiki 0% -ə endiririk, bayraq ilə fiçləri söndürürük.
Assets: köhnə manifest mövcuddur (immutable), köhnə səhifələrdə oyunçular qırılmaz.
Verilənlər: əgər dual-write varsa - geri dönərkən «köhnə» mənbəyi oxuyun; confirm əvvəl destructive-miqrasiya yox idi.
Təşkilat və proseslər
SRE qorunması ilə Change windows: pik/idman tədbirləri altında azad slots toxunmaq deyil.
Runbooks: ingress keçid üçün çek vərəqləri, DB rolları, fici bayrağı, əlaqə zəncirləri.
Dark-launch: UI-də görünmə istisna olmaqla, hər şeyi daxil edirik, «gizli» yükü qaçırırıq.
Tez-tez səhvlər (anti-nümunələr)
Versiyasız assetlərin yenidən yazılması → sınıq müştərilər və «çəhrayı kvadratlar».
Hadisələrin pozulması/API «sakit» → provayderlərin və daşbordların inteqrasiyası.
Miqrasiyalar schema + logic bir addım olmadan dual-write → maliyyə uyğunsuzluqlar.
İdempotantlığın olmaması → retrada ikiqat debatlar.
Birdən-birə 100% kanaryalar və metriklər olmadan.
UI reliz və hesablama nüvəsinin bir yayımda qarışdırılması.
Heç bir geri dönüş planı və ya geri dönüş «əl» SQL tələb edir.
Sıfır-downtime buraxılış çek siyahısı
Müqavilələr və məlumatlar
- SemVer + 'contractVer/eventVer/calcVer' yazılmış və sənədləşdirilmişdir.
- 'expand' miqrasiyaları əvvəlcədən tətbiq olunur; 'migrate' - fonunda; 'contract' - növbəti dövriyyədə.
- Finlogika dəyişən yerdə Dual-write/Dual-read.
Infrastruktur
- CDN: immutable assets, manifest, tag-purge, 'stale-while-revalidate'.
- Pul nüvəsi üçün Blue-Green; API/oyun şlüzləri üçün Canary.
- UI/mexaniki üçün Feature-flags; bayraqlar deploi olmadan idarə olunur.
Müşahidə
- 'buildId/semver/calcVer' ilə Traces; SLO və fin-delta daşbordları.
- 'VOID', 'error _ rate', live-QoS deqradasiyası.
Geri çəkilmə və təhlükəsizlik
- Rollback düyməsi (ingress/marşrut), köhnə manifest mövcuddur.
- PITR və shadow kabelləri ledger yoxlamaq üçün.
- Geri dönüş testi steyj və kiçik prod seqmentində işlənmişdir.
Proseslər
- Runbooks keçid; razılaşdırılmış change pəncərələri.
- Dark-launch/kanarya; retro buraxıldıqdan sonra.
iGaming-də Zero-downtime sistem təcrübəsidir: versiyalar və müqavilələr, immutable assets və CDN, blue-green/canary, fasiləsiz miqrasiya, idempotent pul və sərt müşahidə. Bu çek siyahısını izlədikdən sonra siz oyun və platformanı yeniləyirsiniz ki, oyunçu heç nə hiss etmir - hər şey daha sürətli və sabitdir.