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
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"
- "Ö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ə"
- "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.