GH GambleHub

Staging: deploy və sinxronizasiya

TL; DR

Staging anonim məlumat və simulyatorlarda müqavilələr, miqrasiyalar, konfiqlər, vebhuklar və ödəniş zəncirlərinin yoxlanıldığı maksimum prodakşn pariteti olan preprod mühitdir. Uğur verir: immutable-deploy (blue/green), PII olmadan data-parity, schema-registry, shadow-trafik, canary-plan, fich-bayraqlar, aydın gates və auto-rollback.

1) Staging rolu və qida ilə paritet

Məqsəd: pul və oyunçular üçün buraxılış təhlükəsiz olduğunu təsdiqləmək: DB sxemləri, migi, konfiqlər, limitlər, webhucks, marşrutlaşdırma, observability.
Paritet: eyni görüntülər, eyni topologiya (ingress/gateway, mesh, növbələr, caches, DB mühərrikləri, nüvənin/sürücülərin versiyaları), eyni siyasət (auth/rate/circuit).
Fərqlər: məlumatlar anonimdir, xarici təchizatçılarla qarşılıqlı əlaqə - sandbox/simulyatorlar, DNS/domenlər və sirlər - ayrıca.

2) Topologiya və giriş

Domenlər: 'staging. api. example. com`, `staging. ws. example. com`.
İzolyasiya: fərdi VPC/klaster, müstəqil sirləri (KMS/Vault), mTLS daxili.
Giriş: SSO + RBAC (roles: 'release-manager', 'qa', 'dev', 'partner-view'), müvəqqəti tokenlər, giriş auditi.

3) Deploi konveyer (release train)

1. Build (tag, SBOM, artefaktların işarələri).
2. Tests (unit/integration/contract, security linters).
3. Pack/Scan (SAST/DAST, vuln-gates).
4. Deploy to Staging (immutable, blue/green və ya p95/p99 nəzarət rolling).
5. Staging Gates (см. §10).
6. Canary Prod (1→5→25→50→100%).
7. SLO/səhv pozulduqda Auto-rollback.

4) Konfiqurasiya sinxronizasiyası

GitOps: Git bütün konfiqrantlar və siyasətçilər; prod/staging s 'values üçün vahid çartlar/manifestlər. staging. yaml`.
Parity-control: staging «əl düzəlişləri» qadağandır. Drift avtomatlaşdırma (policy-diff, kube-diff) ilə müəyyən edilir.
Secrets: fərdi açarlar və tokenlər; Prod asılı olmayaraq rotasiya.

5) Sxemlər: API/DB/tədbirlər

Vahid registry: OpenAPI, Protobuf descriptors, GraphQL SDL, hadisə. lüğət.
CI-də Breaking-checks: dağıdıcı dəyişikliklərin qadağan edilməsi.
DB miqrasiyası: promosyondan əvvəl staging 'up'; 'down '/reversible imkanı; snapshot vaxt qiymətləndirilməsi ilə dry-run.
Event-uyğunluq: keçid zamanı «ikiqat qeyd» (köhnə + yeni format).

6) Məlumat və sinxronizasiya

Mənbə: prod müntəzəm dump → anonimləşdirmə/tokenizasiya/maskalama → staging idxal.
PII/PAN/KYC sənədləri: silindi/sintetik ilə əvəz; məbləğlər və tezliklər - gizlilik üçün təhrif (noise).
Sinxro-pəncərələr: plan/kron (məsələn, hər gecə), müddət və səhvlərin monitorinqi.
İdentifikatorlar: sıxlığı və kardinallığı saxlayın (yük testlərinin realizmi üçün).

7) Xarici inteqrasiya (PSP/KYC/provayderlər)

HMAC vebhuk, retray, idempotentlik ilə Sandbox hesabları və ya simulyatorlar.
Bayraq ayrılması: real təchizatçı sandbox və ya bizim simulyator (config keçid).
Webhooks: staging-də imzalar, vaxt pəncərəsi, DLQ/replay konsolu daxildir.
Ödəniş relsləri: real payout/auth staging kodu (hard blok) səviyyəsində qadağandır.

8) Shadow Trafik və Replay

Shadowing: staging (yan təsirləri olmadan) bir neçə prod-oxu kopyalayırıq, cavabları/gizliliyi müqayisə edirik.
Traffic mirroring: ≥ 1-5% GET/status. Shadow mutasiyalarına icazə verilmir.
Synthetic replay: regress üçün tarixi yolların (masked) qaçışı.

9) Fiche bayraqları, freeze və uyğunluq

Bayraqlar redeploy olmadan davranışı idarə edir; bayraqların konfiqləri - versiyalaşdırıla bilər.
Release freeze böyük hadisə/yük dövrü üçün; staging Prod «güzgü» qeyd olunur.
Back/forward uyğunluq: əvvəlcə yeni formatı oxumaq, sonra yazmaq.

10) Gates: promosyondan əvvəl nə yoxlamaq

SLO: p95/p99 latency, error-rate, dəhlizdə saturations.
Contract: API diff — без breaking; webhucks imzalanmış, idempotentlik ok.
DB miqrasiya: büdcədə vaxt, heç bir bloklama «uzunmüddətli» cədvəllər, plan-analiz.
Payments/KYC: müsbət/mənfi hallar keçdi, vebhook retras → 2xx <3 c p95.
Rate/quotas: düzgün 429/Retry-After.
Security: eşik altında boşluqlar; sirləri/permissions validna.
Docs/SDK: OpenAPI/SDL/Proto registry dərc; Postman/SDK yenilənib.
Runbooks: playbook və rollback planı yoxlanılır.

11) Müşahidə və alertlər

Метрики: RPS, p50/p95/p99, 4xx/5xx, open circuits, queue len, cache hit, webhook delivery.
Traces: 'trace _ id' keçici korrelyasiya; prod ilə müqayisə (gizli fərq).
Log: maskalama, sampling, «sakit» səhvlər (WARN spikes).
Daşbordlar staging: ayrı-ayrı, lakin prod quruluşu ilə eyni; yaşıl/qırmızı SLO zolaqları.

12) Deploy strategiya

staging Blue/Green (üstünlük): sürətli switch, yüngül rollback.
kiçik batches və sağlamlıq yoxlamalar ilə Rolling.
Canary daxili staging: A/B profil üçün 'staging-a' və 'staging-b' arasında faiz trafiki.
DB miqrasiyası: zero-downtime nümunələri (expand → migrate → contract), «ikiqat qeyd», blok axtarış.

13) Təhlükəsizlik və uyğunluq

mTLS, WAF, DDoS-profil aktivdir.
RBAC/ABAC adminok end-point; daxili panellərə inteqratorların qadağan edilməsi.
Log şərtləri daha qısadır; relizlərin audit hesabatları saxlanılır.
Açarların/sertlərin yoxlanılması: ayrı-ayrı JWKS/sertlər, rotasiyalar staging üzərində sınaqdan keçirilir.

14) Hadisə playbook (staging)

Miqrasiyadan sonra SLO-nun uğursuzluğu: 'green' -ə geri çəkilməsi, sxemin geri çəkilməsi (mümkünsə), deqradasiyanın aktivləşdirilməsi («bahalı» aqreqatların kəsilməsi).
5xx sıçrayış: circuit-breaker kövrək axın açmaq, BFF backoff qaldırmaq, cache yandırmaq.
Stagingdə PII sızması: dampların dərhal təmizlənməsi, sirlərin geri çağırılması, giriş auditi, maskalanma siyasətinin müəyyənləşdirilməsi.
Vebhuk qadağası: dead-letter-ə müvəqqəti tərcümə, fiksdən sonra əl ilə replay.

15) Çek vərəqləri

15. 1 Promosyon Prod

  • Bütün gates (§ 10) keçdi; hesabat bağlı.
  • Canary planı və ayaq meyarları müəyyən edilmişdir.
  • Fiça bayraqları hazırlanmışdır (on/off/gradation).
  • Sənədlər/SDK/portal yenilənib.
  • Stakholders bildirilib, dəstək pəncərələri razılaşdırılıb.

15. 2 Rollback

  • Blue/Green: əvvəlki slot trafiki, konfiqlər geri döndü.
  • Sxemlər: geri qaytarıla bilən və ya təhlükəsiz vəziyyətə qədər «bayraq pozulması».
  • Post-mortem şablon və artefaktların toplanması.

16) Mini snippet

GitOps promotion

yaml stages:
- deploy-staging
- verify-gates
- promote-prod deploy-staging:
script: kubectl apply -f k8s/overlays/staging verify-gates:
script:./scripts/check_slo. sh &&./scripts/check_contracts. sh promote-prod:
when: on_success script: kubectl apply -f k8s/overlays/prod

Expand→Migrate→Contract (DDL)

sql
-- expand
ALTER TABLE payouts ADD COLUMN note TEXT NULL;
-- migrate (background job copies data)
-- contract
ALTER TABLE payouts DROP COLUMN comment;

Shadow header (sorğu işarələmə)


X-Shadow-Trace: 1

Staging üzərində mutasiyaların idempotentliyi

pseudo if store. has(idempotency_key) return store. get(idempotency_key)
res = do()
store. set(idempotency_key,res,ttl=72h)
return res

17) Antipattern

Staging «demək olar ki, bir məhsul kimi», lakin digər limitləri/filtrləri ilə → yanlış müsbət nəticələr.
Real PAN/doklar staging.
Əl «isti» konfiqurasiya düzəlişləri.
Vaxt və kilidləri qiymətləndirmədən miqrasiya.
Heç bir shadow trafiki/repleylər yoxdur - fayllar yalnız prodda üzə çıxır.
Rollback planı olmadan promosyon.

18) SLO üçün staging (istinad)

Uptime: ≥ 99. 5% (inteqrasiya vitrini düşməməlidir).
Latency prod əlavə: ≤ + 10-20%.
Webhooks p95: ≤ 3 c-dən 2xx-ə qədər retraslarla.
Error budget: 5xx şlüz ≤ 0. 1% buraxılış pəncərəsinə.
Shadow check-lərin payı: 1% oxunuşdan ≥.

Xülasə

Staging «qum» deyil, real istehsal məşqidir: eyni yığın və siyasətçilər, anonim məlumatlar, rels simulyatorları, sənaye trafikinin kölgələri, ciddi gates və ani rollback. Hər şeyi GitOps + registry sxemlərinə + immutable deploya bükün, fich bayraqları və canary planını saxlayın və buraxılışlarınız proqnozlaşdırıla bilər və hadisələr nadir və idarə edilə bilər.

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.