GH GambleHub

DevOps təcrübələri və CI/CD

1) Məqsədlər və prinsiplər

Sürətli və təhlükəsiz: qısa dövrlər, kiçik dəyişikliklər, avtomatik yoxlamalar.
təkrarlanabilirlik: kod kimi infrastruktur (IaC), mühit = kod + siyasət.
Müşahidə: metriklər/treys/qutudan logi, SLO müqavilə kimi.
Komplayens: audit, dəyişikliklərə nəzarət, məlumatların regional izolyasiyası.

Qızıl qayda: «Əvvəlcə keyfiyyət, sonra sürət - əks halda sürət heç vaxt görünməyəcək».

2) Budaqlar və mühit

Trunk-based + feature flags - əsas seçim.

Qısa fice budaqları (≤ 2-5 gün), trunk gündəlik merge.
Artımlı çatdırılma və təhlükəsiz geri dönüş üçün bayraqlar (server-side).
Git-mühit: 'dev' → 'stage' → 'prod' (+ regional 'prod-eu', 'prod-latam').
Artefaktların təşviqi: bir toplanmış görüntü mühit vasitəsilə irəliləyir (immutable tag by digest).

GitFlow zaman: nadir tənzimləyici montaj relizləri/SDK - sonra buraxılış filialları + «hardening».

3) Keyfiyyət piramidası və «qırmızı xətt»

1. Statik analiz (SAST, linterlər, lisenziyalar).
2. Unit/Property-based testlər (saniyə).
3. API və hadisələr üçün Contract-tests (CDC) (OpenAPI/AsyncAPI, Schema Registry).
4. İnteqrasiya (Testcontainers, yerli brokerlər).
5. Kritik yolların E2E: qeydiyyat → KYC → depozit → oyun başlamaq → çıxış.
6. Ödənişlər/cüzdan/oyun provayderləri üçün yükləmə/xaos testləri.

Keyfiyyət keçmir → deploy bloklanır. change-record olmadan «əl istisnaları» yoxdur.

4) Təchizat zənciri (supply chain)

Hər şəkil/paket üçün SBOM (CycloneDX/SPDX).
Artefakt imzaları (cosign), siyasət «yalnız imzalanmış» admission.
SCA/Dependabot: boşluqlar və lisenziyalar.
Provenance/SLSA: playback, qapalı bild agent, attestations.
Sirləri: menecerdə (KMS/External Secrets), repo/loqlarda heç bir sirr yoxdur.

5) GitOps и IaC

Infra as Code: Bulud üçün Terraform/Pulumi; k8s üçün Helm/Kustomize.
GitOps-kontroller (ArgoCD/Flux): deklarativ manifestlər, PR-revyu, audit trail.
Pəncərələr/şaxtalar: turnir həftələri/pik saatlar - prod-relizlərin avtomatik fasiləsi.
OPA/Kyverno siyasəti: no ': latest', qeyri-root, read-only FS, hostPath qadağası.

6) Proqressiv çatdırılma

Canary: 1 → 5 → 10 → 25 → 50 → 100% guardrail metrikləri ilə (p95 latency, 5xx, error budget burn).
Blue-Green: sürətli keçid + geri plan.
Shadow/Mirroring: Cavablara təsir göstərmədən sorğuların kopyalanması (yeni PSP adapterləri üçün).
Feature flags: seqmentlər üzrə daxil olma (region/rol/tərəfdaş/kanal) + kill-switch.

7) Miqrasiya DB (expand-and-contract)

Addım 1: Sxemi genişləndiririk (yeni sütunlar/indekslər) - köhnə kodla uyğundur.
Addım 2: Hər iki versiyaya/sahəyə yazan kodu deple.
Addım 3: Arxa plan jobu, tərəqqi metrikası ilə məlumat miqrasiyası.
Addım 4: Yeni sahələrə oxu keçid.
Addım 5: Köhnə çıxarılması - ayrı buraxılış.
Prime-time bloklayan DDL qadağan; yüksək cədvəllər üçün - onlayn miqrasiya.

8) Müşahidə və SLO

Metrik: RPS, p50/95/99, 4xx/5xx, saturation (CPU/mem/queue), DLQ/lag broker.
Biznes metrikası: TTP (time-to-play), TtW (time-to-wallet), FTD-success, KYC-TtV.
Traces: şlyuzdan DB-yə qədər trace-id.
SLO: məsələn, 'Deposit p95 ≤ 300-500 ms', 'success ≥ 98. 5%`, `availability ≥ 99. 9%`.
Burn rate alert + deqradasiya zamanı avtomatik fasilə relizlər.

9) Hadisələr, postmortemlər, növbələr

Runbooks kritik axınlar (depozit/çıxarış/KOS, canlı oyunlar).
Prioritet şkalası: P1...P4, sahibi, ETA, kommunikasiya (banner, status-səhifə, tərəfdaşlar).
action items və tarixləri ilə Blameless postmortem.
On-call növbələri, chat xəbərdarlıqları, status yeniləmələri hər N dəqiqə.
Dock track: kim/nə vaxt/nə (commit, artefakt, mühit, bayraq).

10) Təhlükəsizlik və uyğunluq (DevSecOps)

SAST/DAST/IAST, CI gizli skan.
mTLS xidmət, kiçik TTL ilə JWT xidmət, açar rotasiyası.
Masking PII/PAN log/treys; WORM-admin-fəaliyyət jurnalları.
Geo-segregation: regionlar üzrə klasterlər/DB, şlyuz vasitəsilə marşrutlaşdırma.
Change management: həssas zonalar üçün bilet/approval (cüzdan/limitlər).

11) DORA metrika və FinOps

Deployment Frequency (gündəlik kiçik buraxılışlar).
Lead Time for Changes (ideal: saat).
MTTR (bərpa: dəqiqə/saat).
Change Failure Rate (hədəf ≤ 15%).
FinOps: ətraf mühit dəyəri, RPS-caching, isti hovuzlar, avtomatik fasilə, «cost per transaction».

12) iGaming spesifikasiyası

Piki (turnirlər/canlı): böyük dəyişikliklərin dondurulması, cache/şəkillərin istiləşməsi, kvota bustları.
Ödənişlər/cüzdan: ayrı-ayrı hovuzlar/qovşaqlar, artan SLO, bölgələr üzrə kanar rollout, PSP provayderlərinin ikiqat telemetriyası.
KUS/Komplayens: Ayrı-ayrı cadence relizlər, məcburi post-uprues komplayens.
Tərəfdaşlar/affiliates: təhlükəsiz SDK, dəstək pəncərəsi və köhnə müştərilərin monitorinqi ilə API versiyası.

13) CI/CD nümunəsi (YAML, GitHub Actions → ArgoCD)

yaml name: ci-cd on:
push:
branches: [ main ]
paths: [ "services/wallet/" ]
jobs:
build_test_scan:
runs-on: ubuntu-latest steps:
- uses: actions/checkout@v4
- name: Setup Node uses: actions/setup-node@v4 with: { node-version: 22 }
- run: npm ci --omit=dev working-directory: services/wallet
- run: npm test -- --ci working-directory: services/wallet
- name: Lint & SAST run: npm run lint && npm run sast working-directory: services/wallet
- name: Build image run:
docker build -t registry. local/wallet:${{ github. sha }} -f Dockerfile.
cosign sign --key $COSIGN_KEY registry. local/wallet:${{ github. sha }}
- name: SBOM & Scan run:
syft packages registry. local/wallet:${{ github. sha }} -o cyclonedx-json > sbom. json trivy image --exit-code 1 --severity HIGH,CRITICAL registry. local/wallet:${{ github. sha }}
- name: Push image run: docker push registry. local/wallet:${{ github. sha }}

deploy_stage:
needs: build_test_scan runs-on: ubuntu-latest steps:
- uses: actions/checkout@v4
- name: Bump Helm values (image tag)
run: yq -i '.image. tag = "${{ github. sha }}"' helm/wallet/values-stage. yaml
- name: Create PR to gitops repo run: gh pr create -R org/gitops -B stage -H stage-bump/wallet-${{ github. sha }} -t "wallet:${{ github. sha }}" -b "Promote to stage"

promote_prod:
if: github. ref == 'refs/heads/main'
needs: deploy_stage runs-on: ubuntu-latest steps:
- name: Gate: SLO/quality checks run:./scripts/gates/check_stage_health. sh # p95, 5xx, e2e ok
- name: Canary 10%
run:./scripts/gitops/canary. sh wallet ${{ github. sha }} 10
- name: Auto-pause on degradation run:./scripts/gates/guardrails. sh./scripts/gitops/rollback. sh wallet
- name: Roll to 100%
run:./scripts/gitops/rollout. sh wallet ${{ github. sha }} 100
💡 Fikir: bir görüntü toplayın və imzalayın, SBOM nəşr, GitOps vasitəsilə təşviq; Prod-rollaut - kanarya, guardrails ilə.

14) Çek vərəqləri

Əvvəl merge üçün main

  • Unit/CDC/inteqrasiya yaşıl.
  • Linters/SAST/lisenziyalar təmizdir.
  • Yenilənmiş sxemlər OpenAPI/AsyncAPI və miqrasiya DB.
  • Fitch bayraqları əlavə edildi, follbeklər müəyyən edildi.

Prod-da buraxılmazdan əvvəl

  • Şəkil imzalanır, SBOM tətbiq olunur, HIGH/CRIT zəiflikləri bağlanır.
  • Daşbordlar/Alertlər yaradılmışdır; SLO geytləri bağlıdır.
  • Geri dönüş planı, kill-switch, Shadow (lazım olduqda).
  • Regional məhdudiyyətlər və məlumat siyasəti təsdiqlənir.

Hadisələr

  • Runbook tapıldı və aktualdır.
  • İstifadəçilər/tərəfdaşlar üçün ünsiyyət (şablon, ETA).
  • 48 saat postmortem, tarixləri ilə action items.

15) Anti-nümunələr

«Hər mühit üçün yenidən yığırıq» (promosyon artefaktı yoxdur).
Audit/təkrarlanabilirlik olmadan əl ilə deploi addımları.
DB-nin «alnına» miqrasiyası, API-nin uyğun olmayan cavabları.
CI dəyişənlərində və ya anbarda sirlər.
Bayraq/geri çəkilmədən fəlakətli fiçalar.
Kanarya buraxılışında SLO/guardrails yoxdur.
PII/PAN ilə log, maskalanma yoxdur.

16) Faydalı microcopy şablonları

Release (partners):
  • "Biz tədricən ödəniş modulu yeniləməsini çıxarırıq (10% → 100%). 2 dəqiqəyə qədər qısa müddətli qəbul gecikmələri mümkündür. ETA tamamlanması - 21:00 EET"
Hadisə (məhsulda banner):
  • "Ödəniş provayderi X qeyri-sabitdir. Qəbul 15 dəqiqəyə qədər davam edə bilər. Biz düzəliş üzərində işləyirik. Növbəti status yenilənməsi - 30 dəqiqə"
Geri çəkilmə:
  • "Yeniləmə gecikmələrin artması səbəbindən dayandırılıb. Əvvəlki versiyanı geri qaytarırıq. Məlumatlar və əməliyyatlar saxlanılır"

17) Tətbiq prosesi (4 sprint)

1. Keyfiyyət və paypline standartları: SAST/Unit/CDC, vahid görüntü, imzalar, SBOM.
2. GitOps + mühit: Helm/Kustomize, ArgoCD, artefakt təşviqi, sirr siyasəti.
3. Proqressiv buraxılışlar və SLO geytaları: canary/shadow, guardrails, avtopauza.
4. Etibarlılığı və dəyəri: xaos testləri, avtoskeyl/isti hovuzlar, FinOps dashboard.

Yekun şparqalka

Trunk + flags + kiçik partiyalar = stress olmadan sürət.
Vahid imzalanmış artefakt + SBOM = nəzarət olunan təchizat zənciri.
GitOps + siyasət = reproduktivlik və audit.
Canary/Blue-Green + SLO geytləri = təhlükəsiz buraxılışlar.
DB = sıfır fasilələr üçün Expand-and-contract.
Müşahidə və DORA = idarə olunan təkmilləşdirmələr.
Regional təcrid və uyğunluq = qanunlara uyğunluq və etimad.

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.