Konfiqurasiya yerləşdirilməsi
1) Niyə
Konfiqurasiya koddan daha tez-tez dəyişir və birbaşa gəlirə (PSP marşrutu, limitlər, əmsallar, ön fiçlər) və uyğunluğa (KYC/AML, RG) təsir edir. Konfiqurasiyaların ciddi tolerantlıq və müşahidə qabiliyyəti ilə təkrar, yoxlanıla bilən və geri qaytarıla bilən proyektə çatdırılması prosesi lazımdır.
2) Prinsiplər
1. Configuration as Data: konfiqlər «əl klikləri» deyil, versiyalaşdırıla bilən məlumatlardır (YAML/JSON).
2. Schema-first: hər hansı bir qeyd sxemə qarşı təsdiqlənir (JSON Schema/Protobuf).
3. Kod kimi siyasətçilər: geytlər, tolerantlar, SoD - siyasətçilərin anbarında.
4. GitOps: Həqiqətin yeganə mənbəyi Git; klasterlər rekonsayler tərəfindən uyğunlaşdırılır.
5. Proqressiv çatdırılma: seqmentlər (GEO/tenant/bank/provayder).
6. Sıfır-downtime: atomik switches, ikiqat tamponlama, formatların uyğunluğu.
7. Müşahidə by design: audit, tətbiq metrikası, drift detektor.
8. Təhlükəsizlik: minimum imtiyazlar, sirlər ayrıca, riskli dəyişikliklərə SoD/4-eyes.
3) Konfiqurasiya modeli
Statik: nadir hallarda dəyişir, buraxılış tələb edir (portlar, nüvənin vaxtları).
Dinamik: restartlar olmadan tətbiq olunur (PSP routing, fiçlər, limitlər).
Sirlər: açarlar/tokenlər; ayrıca kontur (KMS/Secret Manager).
Artefaktlar: qaydalar faylları/mappinqlər (BIN → bank, GEO → PSP, bonus limitləri).
Ünvan açarları: 'tenant', 'region', 'environment', 'service', 'version', 'segment' (psp/bank_group/device).
4) Formatlar və sxemlər
Sxem nümunəsi (JSON Schema, payments-routing):json
{
"$schema": "https://json-schema. org/draft/2020-12/schema",
"title": "pspRouting",
"type": "object",
"properties": {
"version": {"type": "string"},
"rules": {
"type": "array",
"items": {
"type": "object",
"required": ["geo","binGroup","primary","fallback"],
"properties": {
"geo": {"type":"string"},
"binGroup":{"type":"string"},
"primary":{"type":"string"},
"fallback":{"type":"array","items":{"type":"string"}},
"limits":{"type":"object","properties":{"perMinute":{"type":"integer"}}}
}
}
}
},
"required": ["version","rules"]
}
5) Həyat dövrü (GitOps)
1. Authoring: PR konfiqurasiya anbarında: məlumat + keçid/dəyişiklik.
2. Lint/Validate: CI: sxemlər, linklər, semantika (münaqişə qaydaları), stenddə dry-run.
3. Policy Gates: SoD/4-eyes, risk sinfi, freeze pəncərələri, SLO statusuna uyğunluq.
4. Staging Apply: inteqrasiya testləri/sintetika qaçış, SLI test.
5. Progressive Delivery: prod-kanareic (1-5%) → 25% → region/tenant → 100%.
6. Post-monitorinq: 30-60 min metrik/alert; nəticənin fiksasiyası.
7. Promotion/Rollback: Release etiketləri, Git revert/« previous version »vasitəsilə sürətli geri dönüş.
6) Yuvarlanma strategiyaları
Seqmentlər üzrə kanareya: 'tenant = A, geo = TR, bank = BIN _ XXXX'.
Regionlar üzrə: EU → LATAM → APAC, saat zirvələri nəzərə alınmaqla.
Funksionallığa görə: bayrağın (feature flag) guardrails (TTL, əhatə limitləri) ilə daxil edilməsi.
Blue/Green mənbə üçün: oxucuları yeni snapshot keçid.
7) Dinamik yükləmə və uyğunluq
Isti yenidən başlatma (watchers/konsullar/OTel Collector pipeline reload).
Cüt format (v1 + v2): Prod hər ikisi oxuyur, istehsalçılar yeni yazırlar.
Uyğunluq: API/metrik cavablarda versiya «kim hansı konfiqurasiyada» görmək üçün.
8) Təhlükəsizlik, sirləri, SoD
Secrets ayrıca: KMS/Secret Manager-da saxlama, sahə səviyyəsində şifrələmə, ABAC-a giriş.
SoD/4-eyes: Ödəniş marşrutunun/bonus limitlərinin/PII ixracının dəyişdirilməsi - yalnız ikiqat təsdiq vasitəsilə.
JIT hüquqları: əməliyyatlar üçün müvəqqəti tokenlər, tam audit.
Təhlükəsizlik yoxlamaları: linter PII/test açarları config prod qadağan edir.
9) Tətbiq edilməzdən əvvəl validasiya
Sxemlər (JSON Schema/Protobuf), linterlər, kardinallıq yoxlamaları.
Domen semantikası: dövrlər/dublikatlar/» qara dəliklər» yoxdur, cari asılılıqlarla uyğunluq.
Shadow Trafik/Simulyasiyalar: «qovmaq» yeni routing/Real Stream qaydaları oxu-olmadan.
SLO qapısı: Qırmızı SLI → promosyon qadağası.
10) Müşahidə və audit
Yerləşdirmə metrikası: tətbiq vaxtı, müvəffəqiyyət, əhatə payı, parsinq səhvləri, rollbacks.
Hadisələr: kim/nə/nə vaxt/nə üçün, diff (sirlərin gizlədilməsi daxil olmaqla).
Drift detektoru: «Git-də nə» və «rentaymda nə» müqayisə; uyğunsuzluq zamanı alert.
Nümunələr (exemplars): konfiqurasiya əməliyyatlarının 'trace _ id' linki.
11) Standart konfiqurasiya kataloqu (iGaming)
Payments routing: GEO/BIN/metodu ilə PSP; retraj limitləri; 3DS.
KYC/AML: provayderlər, taymautlar, TTL, fallback/əl yoxlama qaydaları.
Risk & RG: velocity limitləri, gündəlik/aylıq kaplar, geo istisnalar.
Games/Core: cache əmsalları, hovuz ölçüləri, fitzeflages (təkrarlama tarixi, yeni rejimlər).
Ops/Observability: təhlükə həddi, sampling qaydaları, retention sinifləri, sintetika.
Status/Comms: mesaj şablonları, lokalizasiyalar, yeniləmə cədvəli.
12) Konfiqurasiya paketinin nümunəsi (manifest)
yaml apiVersion: cfg. platform/v1 kind: ConfigRelease metadata:
id: payments-routing-2025-11-01 change: "RTE-421: reroute TR BIN_4571 → PSP2"
spec:
scope:
tenants: [brandA, brandB]
regions: [EU]
segments:
geo: [TR]
strategy:
steps:
- name: canary coverage: "5%"
duration: "20m"
- name: ramp coverage: "25%"
duration: "30m"
- name: region-full"
coverage: "100%"
gates:
require:
- policy: "slo-green"
- approval: ["Payments Lead","Compliance"]
- freeze: "not-in-effect"
rollback:
to: "payments-routing-2025-10-29"
autoIf:
- metric: "auth_success_rate"
condition: "drop>10% for 10m"
13) Rollback və təhlükəsizlik dəyişikliyi
Git vasitəsilə tərs:' revert '/» promote previous».
Atomik açar: oxucular əvvəlki snapshot keçir.
Avtomatik geri çəkilmə meyarları: SLI/KRI deqradasiyası, parsinq/validator səhvlərinin artması.
Rabitə: hadisə-bot avtomatik geri çəkilmə statusunu dərc edir.
14) Multi-tenant və geo-yaşayış
Fayllar/qovluqlar və açarlar səviyyəsində ad boşluqları ('tenant/region/env').
Oxu siyasətləri: Xidmətlər yalnız öz bağlarını görür.
Geo-kopyaları konfiqurasiya (EU/LATAM/APAC) və SLA ilə replikasiya gecikməsi.
Müxtəlif yurisdiksiyalar üçün müxtəlif pəncərələr (komplayens/bayramlar).
15) Performans və dəyəri (FinOps)
Snapshot cache: yerli/paylanmış; TTL/ETag/If-None-Match.
Konfiqurasiya ölçüsü: strukturların həcmi və dərinliyi üçün limitlər; modullara bölmək.
Giriş kartı: ən yaxşı oxu istifadəçiləri; pullinq tezliyinin optimallaşdırılması.
Səhvlərin dəyəri: «bahalı» geri dönüş/əlavə kanarya sayğacı.
16) İnteqrasiya
Alerting/SLO: qapı promosyonu, avtomatik geri çəkilmə.
Release-gates: Konveyerlərin yayılması başa çatmadıqda kodun buraxılışlarının bloklanması.
Hadisə-bot: '/config promote ', '/config rollback' komandaları, diff və dashboard linkləri.
Workflow Engine: yüksək riskli dəyişikliklər üçün human-task; eskalasiya zamanlayıcıları.
17) KPI/KRI funksiyaları
Lead Time konfiqurasiya: PR → Prod.
Change Failure Rate (CFR): geri çəkilmə ilə dəyişikliklərin payı.
MTTR -hadisə.
Drift rate: uyğunsuzluq tezliyi Git runtime.
SLO-gates pass rate: əl istisnaları olmadan geytalar keçən dəyişikliklər payı.
Dəyişiklik dəyəri: CPU/IO, kanaryalar, hadisələr.
18) Yol xəritəsi (6-10 həftə)
Ned. 1-2: konfiqurasiya kataloqu, sxemlər, linterlər; Git repo; əsas CI (validasiya/diff).
Ned. 3-4: GitOps-rekonsayler, dry-run/staging, status-dashboard; TTL ilə fitness.
Ned. 5-6: policy-as-code (SoD/pəncərələr/freeze/SLO-geytalar), kanareik yuvarlanma, avtomatik yuvarlanma.
Ned. 7-8: drift detektor, KMS, multi-tenant və geo-nüsxələr, insident-bot inteqrasiya vasitəsilə sirləri.
Ned. 9-10: Yük/xaos testləri, FinOps hesabatı, təlim komandaları və şablonları.
19) Artefaktların şablonları
PR Template: hədəf, risk sinfi, sahə (tenant/region), yuvarlanma planı, geri dönüş planı, dry-run nəticələri.
Policy Pack: SLO geytləri, SoD/4-eyes, freeze təqvimi, ölçü/kardinallıq limitləri.
Runbook: «cari versiyasını/diff/kanaryaların vəziyyətini necə oxumaq olar», «promosyonu əl ilə necə dayandırmaq olar».
Config Catalog: sahibi, sxem, oxucular, yeniləmə tezliyi, uyğunluq qeydləri.
20) Antipattern
Git/audit olmadan «administration» əl düzəlişləri.
Release-artefakt kodu ilə qarışdırılmış konfiqlər, isti dəyişdirmə imkanı olmadan.
Parsinq zamanı sxemlərin/validasiyaların olmaması → düşmə.
Kanaryalar olmadan qlobal birdəfəlik yayma.
Konfiqada ümumi sirlər; Git sirləri.
Ficheflags heç bir geri/TTL/guardrails.
drift detektor yoxdur.
SLO geytlərinin «zəng» və qeyd olmadan çıxarılması.
Yekun
Konfiqurasiya yerləşdirilməsi idarə olunan konveyerdir: sxemləri olan məlumatlar → siyasət və geytalar → GitOps və mütərəqqi çatdırılma → isti yükləmə və dönüşümlülük → müşahidə və audit → təhlükəsizlik və qiymət. Bu çərçivə SLO, gəlir və tənzimləmə tələblərinə uyğunluğu saxlayaraq iGaming platformasının davranışını tez və təhlükəsiz şəkildə dəyişdirməyə imkan verir.