GH GambleHub

Staging payplaynlar və buraxılışlar

1) Niyə staging-paypline lazımdır

Staging-paypline, PR-dən «default» keyfiyyət və təhlükəsizlik yoxlamaları ilə istehsalına qədər standartlaşdırılmış bir əsərdir. Məqsədlər:
  • montaj və buraxılış təkrarlanabilirliyi;
  • sürətli və proqnozlaşdırıla bilən fidbek;
  • risklərin minimuma endirilməsi (mütərəqqi yayılması, ficheflages, geri qaytarılması);
  • uyğunluq və dəyişiklik nəzarət.

2) Standart təchizat axını (yüksək səviyyəli)

1. PR → avtomatik yoxlamalar (lint, unit, SAST, lisenziyalar).
2. Build → determinated image/paket, imza və SBOM.
3. Test on Ephemeral → per-PR qabaqcıl mühit.

4. Merge → Staging:
  • görüntü deploi;
  • kontrakt-, inteqrasiya, e2e testlər;
  • DAST/IAST, regress, yük smoke;
  • lazım olduqda əl UAT/QA.
  • 5. Release Candidate (RC) → freeze window → Prod (canary/blue-green).
  • 6. Post-deploy yoxlamaları və SLO/error budget üzrə avto çıxış.
  • 7. Runbook/Changelog → buraxılış bağlanması və retrospektiv.

3) Standart YAML paylayn şablonu (ekstraksiya)

yaml
.ci/release.pipeline.yml stages: [verify, build, test, stage, approve, release, post]

verify:
- run: make lint test:unit sbom sast sca build:
- run:
docker build -t registry/app:$GIT_SHA.
cosign sign registry/app:$GIT_SHA oras push registry/sbom:$GIT_SHA sbom.json test:
- run: make test:contract test:integration
- run: make deploy:preview && make test:e2e stage:
- run: make deploy:staging IMAGE=registry/app:$GIT_SHA
- run: make test:e2e:staging && make dast approve:
manual gate: CAB/QA lead
- type: manual required_roles: [release_manager, qa_lead]
release:
- run: make release:canary TRAFFIC=5%
- run: make release:progressive STEPS="5,25,50,100"
post:
- run: make verify:slo && make notify && make create:changelog

4) Gates və hazırlıq meyarları (Quality Gates)

Kod və təhlükəsizlik: lintlər, örtük, SAST/SCA, asılılıq siyasəti, «kritik/yüksək» yoxdur.
Müqavilələr: sxemlərin uyğunluğu (API/hadisələr), Pact/Buf yoxlama.
Testlər: unit/integration/e2e p-keçid həddi, sabitlik (flake-rate).
Yükləmə smoke: p95/p99 büdcə çərçivəsində, heç bir deqradasiya.
DAST/IAST: heç bir kritik findings, həssas yollar üçün pen test ssenariləri.
Observability: dashboards/alerts «as code» yenilənib, runbooks tətbiq olunur.
CAB/UAT: buraxılış pəncərələrində təsdiq (tənzimləyici/biznes tələb olunarsa).


5) Reliz strategiyaları

Feature Flags - redeploy olmadan məntiqi fich daxil; «dark launch» və A/B imkanı

Canary - trafik payının tədricən artması (5% → 25% → 50% → 100%), SLO və anomaliyalar üçün avtomatik roll-forward/rollback.
Blue-Green - paralel mühitlər; ani keçid, sadə geri dönüş.
Shadow/Traffic Mirroring - istifadəçilərə təsir etmədən yeni versiyaya passiv trafik keçidi.
Ring Deployments - bölgələr/tenantlar üzrə dalğalar.


6) Geri çəkilmə və buraxılış təhlükəsizliyi siyasəti

Trigger AutoCat: error-rate artım, həddindən yuxarı p95/TTFB, 5xx/timeout artım, DLQ sıçrayış.
Manual geri dönüş: chatbotda '/rollback <service> <sha> 'əmri, buraxılış konsolunda bir düymə.
Freeze windows: Kritik hadisələrə (turnirlər/pik matçlar) buraxılmaq qadağandır.
Changelog & Release Notes: PR nəsil, SemVer tags, komponentləri, miqrasiya.


7) DB miqrasiyası və uyğunluq

Expand → Migrate → Contract:

1. uyğun sahələr/indekslər əlavə edin;

2. app deploy (hər iki sxemdə oxuyur/yazır);

3. fon jobları ilə məlumatların miqrasiyası;

4. köhnə aradan qaldırılması.

Sxemlər versiyalaşdırılır, idempotent miqrasiyası, staging dry-run.

Protect destructive SQL: require flag/approval, avtomatik backup və plan-check.


8) Fiziki və mütərəqqi aktivləşmə

Ops bayraqları (təhlükəsiz əməliyyat üçün) və product bayraqları ayırın.
Auditoriyaya daxil: faiz, geo, tenant, rol.
Bayraqların metrikası: dönüşüm, latency, səhvlərə təsir.
Problemlərdə - bayrağın daha sürətli geri qaytarılması.


9) Observability buraxılış hissəsi kimi

Traces: gateway-dən DB/növbələrə qədər 'trace _ id' keçidi; köhnə/yeni versiyaları müqayisə.
Metriklər: p50/p95/p99, error-rate, RPS, saturation, DLQ, retray, Vaxt-to-Wallet/Business KPI.
Qeydlər: strukturlaşdırılmış, PII maskalanması, 'request _ id' korrelyasiyası.
Alertlər: SLO-büdcə, on-call təcili səhifələr, relizin avtomatik yığılması.


10) Təchizat zəncirinin təhlükəsizliyi (supply chain)

SBOM hər bild, saxlama və release etiketinə bağlama.
Şəkil imzaları (cosign), klaster yoxlaması (policy admission).
SLSA sertifikatları: artefaktın sübut olunan mənşəyi.
Policy-as-Code (OPA/Conftest): infrastruktur PR üçün deny-by-default.
Sirlər: yalnız KMS, qısa ömürlü tokenlər, paylaynlarda rotasiyalar.


11) Dəyişikliklər və proseslərə nəzarət

RFC → CRQ → CAB: sənədləşdirilmiş davranış/müqavilə dəyişikliyi əvvəlcədən razılaşdırılır.
Release Calendar: məhsullara/bölgələrə/komandalara görə görünən pəncərələr.
Runbooks: Hər bir komponent üçün - açma/geri alma/diaqnostika prosedurları.
Postmortem/Retro: əhəmiyyətli buraxılışlardan sonra - təhlil və fəaliyyət.


12) Staging test profilləri

Müqavilə (API/Events): Uyğunsuz dəyişiklikləri bloklayın.
İnteqrasiya/e2e: «depozit», «KYC», «çıxış».
Yük smoke: təmsil zirvələri; resurs limitlərini izləyirik.
Xaos ssenariləri: provayderin bağlanması, gecikmənin artması, şəbəkə fappinqləri.
Sintetik monitorinq: cədvəl üzrə «sınaq» əməliyyatları.


13) Misal Makefile buraxılış məqsədləri (fraqment)

makefile release: verify build test stage approve prod post verify:
@make lint test:unit sbom sast sca build:
docker build -t $(IMG).
cosign sign $(IMG)
test:
@make test:contract test:integration deploy:preview test:e2e stage:
kubectl apply -k deploy/staging approve:
@echo "Waiting for QA/CAB approval..."
prod:
make release:canary TRAFFIC="5 25 50 100"
post:
@make verify:slo notify changelog

14) Rollar və məsuliyyət

Dev/Team: kod keyfiyyəti, testlər, miqrasiyalar, runbooks.
QA: UAT/regression ssenariləri, gates keyfiyyət nəzarət.
SRE/Platforma: payplaynların etibarlılığı, müşahidə, siyasət.
Release Manager: təqvim, pəncərələr, CAB, son həll.
Security: SAST/DAST/SCA, supply-chain, gizli siyasət.


15) Buraxılışların yetkinlik modeli

1. Əsas - əl yoxlamaları, nadir buraxılışlar, geri qayıtmalar çətindir.
2. Qabaqcıl - standartlaşdırılmış CI/CD, staging-kontur, canary/blue-green, tez-tez buraxılışlar.
3. Ekspert - tenant/regionlar üzrə mütərəqqi çatdırılma, feature flags-first, policy-as-code, SLO üzrə avto-çıxış, tam izlənmə və SLSA.


16) Tətbiqi yol xəritəsi

M0-M1 (MVP): payline şablon, build + sign + SBOM, staging-deploy, əsas testlər və gates.
M2-M3: canary/blue-green, prevyu per-PR, müqavilə testləri, DAST, synthetic checks.
M4-M6: feature flags platforma, shadow traffic, policy-as-code, auto-catch, release calendar + CAB-workflow.
M6 +: regionlar üzrə ring-deployments, SLSA-sertifikatlaşdırma və ciddi admission, tam avtomatlaşdırma runbooks.


17) Prodüser buraxılışından əvvəl çek siyahısı

  • Şəkil imzalanır, SBOM yüklənir və buraxılışa bağlıdır.
  • Müqavilələr uyğun, yaşıl testlər, e2e staging keçdi.
  • Miqrasiyalar yoxlanılır (dry-run), backup hazırdır, geri dönüş planı təsvir edilmişdir.
  • Daşbordlar/Alertlər yeniləndi, SLO geytləri aktivdir.
  • Runbook və Changelog dərc, Windows Release razılaşdırılır.
  • Feature flags mütərəqqi aktivləşdirilməsi üçün xüsusi.
  • Freeze-məhdudiyyətlər yerinə yetirilir, on-call hazırdır.

Qısa nəticə

Düzgün dizayn edilmiş staging-paypline relizləri idarə olunan rutinə çevirir: vahid şablonlar, aydın quality gates, təhlükəsiz təchizat zənciri, mütərəqqi yuvarlanma və müşahidə riskləri azaldır və keyfiyyət və iş metrləri üzərində nəzarəti saxlayaraq istehsaldakı dəyişikliklərin çıxarılması müddətini azaldı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!

İ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.