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.