Moslamalarni joylashtirish
1) Nima uchun
Konfiguratsiya koddan tez-tez o’zgaradi va tushumga (PSP routingi, limitlar, koeffitsiyentlar, front fichlari) va komplayensga (KYC/AML, RG) bevosita ta’sir qiladi. Konfiguratsiyalarni oziq-ovqat mahsulotlariga yetkazib berishda takrorlanadigan, tekshiriladigan va qaytariladigan jarayon kerak.
2) Qonunning
1. Configuration as Data: konfiglar - «qo’lda bosish» emas, balki versiya qilinadigan ma’lumotlar (YAML/JSON).
2. Schema-first: har qanday yozuv sxemaga qarshi validatsiya qilinadi (JSON Schema/Protobuf).
3. Siyosatchilar kod sifatida: geytlar, ruxsatnomalar, SoD - siyosatchilar omborida.
4. GitOps: Haqiqatning yagona manbai - Git; klastyerlar rekonsayler tomonidan muvofiqlashtiriladi.
5. Progressiv yetkazib berish: segmentlar (GEO/tenant/bank/provayder) bo’yicha kanareykali prokatlar.
6. Zero-downtime: atom svitchlari, ikki marta buferlash, formatlarning mosligi.
7. Kuzatilganlik by design: audit, qo’llash metrikasi, drift-detektor.
8. Xavfsizlik: minimal imtiyozlar, sirlar alohida, xavfli o’zgarishlarga SoD/4-eyes.
3) Konfiguratsiyalar modeli
Statik: kamdan-kam o’zgaradi, relizni talab qiladi (portlar, yadro vaqtlari).
Dinamik: restartlarsiz (PSP routing, fichlar, limitlar) qo’llaniladi.
Sirlar: kalitlar/tokenlar; alohida kontur (KMS/Secret Manager).
Artefaktlar: qoidalar/meppinglar fayllari (BIN → bank, GEO → PSP, bonuslar limitlari).
Manzil kalitlari:’tenant’,’region’,’environment’,’service’,’version’,’segment’(psp/bank_group/device).
4) Formatlar va sxemalar
Sxema misoli (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) Hayot sikli (GitOps)
1. Authoring: PR konfiguratsiyalar omborida: maʼlumot + roʻyxat/oʻzgartirish bogʻlamasi.
2. Lint/Validate: CI: sxemalar, havolalar, semantika (ziddiyatli qoidalar), stendda dry-run.
3. Policy Gates: SoD/4-eyes, xavf-sinf, freeze oynalari, SLO maqomiga muvofiqlik.
4. Staging Apply: integratsion testlar/sintetika progoni, SLI tekshiruvi.
5. Progressive Delivery: prod-kanareika (1-5%) → 25% → region/tenant → 100%.
6. Post-monitoring: 30-60 min metrik/alert; natijani qayd etish.
7. Promotion/Rollback: reliz belgilari, Git revert/« previous version »orqali tez qaytish.
6) Yoyish strategiyasi
Segmentlar bo’yicha kanareyochnaya:’tenant = A, geo = TR, bank = BIN _ XXXX’.
Hududlar bo’yicha: EU → LATAM → APAC, soat cho’qqilarini hisobga olgan holda.
Funksionalligi boʻyicha: bayroqni (feature flag) guardrails (TTL, qamrov limitlari) bilan yoqish.
Manba uchun Blue/Green: o’quvchilarni yangi snapshotga o’tkazish.
7) Dinamik yuklash va muvofiqlik
Issiq qayta yuklash (watchers/konsullar/OTel Collector pipeline reload).
Qoʻshiq formati (v1 + v2): Prod ikkalasini ham oʻqiydi, ishlab chiqaruvchilar yangisiga yozadilar.
Muvofiqlik: «Kim qaysi konfiguratsiyada» ni ko’rish uchun API/metrik javoblardagi versiya.
8) Xavfsizlik, sirlar, SoD
Sirlar alohida: KMS/Secret Managerda saqlash, maydon darajasida shifrlash, ABAC orqali kirish.
SoD/4-eyes: to’lov routingi/bonuslar/PII-eksport limitlarining o’zgarishi - faqat ikki marta ma’qullash orqali.
JIT huquqlari: operatsiyalar uchun vaqtinchalik tokenlar, to’liq audit.
Xavfsizlik tekshiruvi: linter PII/test kalitlarini konfigada taqiqlaydi.
9) Qo’llashdan oldin validatsiyalar
Sxemalar (JSON Schema/Protobuf), linterlar, kardinallikni tekshirish.
Domen semantikasi: sikllar/dublikatlar/» qora tuynuklar» mavjud emas, joriy bogʻlanishlar bilan moslashuvchan.
Shadow-trafik/simulyatsiyalar: yangi routing/qoidalarni haqiqiy oqimda oʻqish-yozmasdan «haydash».
SLO-geyt: qizil SLI → reklama taqiqlangan.
10) Kuzatuv va audit
Joylashtirish metrikasi: foydalanish vaqti, muvaffaqiyat, qamrov ulushi, parsing xatolari, rollbacks.
Hodisalar: kim/nima/qachon/nima uchun, diff (shu jumladan sirlarni yashirish).
Drift-detektor: «Git’da» va «rantaymda» taqqoslash; tafovut yuzaga kelganda alert.
Nusxalar (exemplars): konfiguratsiyalarni oʻqish uchun’trace _ id’ga havola.
11) Namunaviy konfiguratsiyalar katalogi (iGaming)
Payments routing: PSP GEO/BIN/usul bo’yicha; retray limitlari; 3DS fichlari.
KYC/AML: provayderlar, taymautlar, TTL, fallback/qoʻlda tekshirish qoidalari.
Risk & RG: velocity-limitlar, kunduzgi/oylik kaplar, geo-istisnolar.
Games/Core: kesh koeffitsiyentlari, pullar oʻlchamlari, ficheflaglar (takrorlash tarixi, yangi rejimlar).
Ops/Observability: alert ostonalari, sampling qoidalari, retention sinflari, sintetika.
Status/Comms: xabarlar, lokalizatsiya namunalari, yangiliklar jadvali.
12) Konfiguratsiya paketi misoli (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) Orqaga qaytish (rollback) va o’zgarishlar xavfsizligi
Git orqali revers:’revert ’/» promote previous».
Atom o’tkazgich: o’quvchilar oldingi snapshotga o’tishadi.
Avto-qaytish mezonlari: SLI/KRI degradatsiyasi, parsing/validator xatolarining o’sishi.
Kommunikatsiyalar: hodisa-bot avtotransport holatini e’lon qiladi.
14) Multi-tenant va geo-rezidensiya
Fayl/jild va kalitlar darajasidagi nomlar boʻshliqlari (’tenant/region/env’).
O’qish siyosati: xizmatlar faqat o’z narsalarini ko’radi.
Konfiguratsiyalarning geo-nusxalari (EU/LATAM/APAC) va SLA bilan replikatsiyalarning kechikishi.
Turli yurisdiksiyalar uchun turli oynalar (komplayens/bayramlar).
15) Unumdorlik va narx (FinOps)
Snapshotlar keshi: lokal/taqsimlangan; TTL/ETag/If-None-Match.
Konfiguratsiyalar o’lchami: tuzilmalar hajmi va chuqurligi bo’yicha limitlar; modullarga bo’lish.
Kirish xaritasi: o’qish top-iste’molchilari; pulling chastotasini optimallashtirish.
Xatolar qiymati: «qimmat» qaytarmalar/qo’shimcha kanareykalar hisoblagichi.
16) Integratsiya
Alerting/SLO: Gate promoushna, avto-otkatlar.
Release-gates: Agar konfiguratsiya tugallanmagan boʻlsa, kod relizlarini bloklash.
Hodisa-bot: ’/config promote’, ’/config rollback’buyruqlari, difflar va dashbordlarga havolalar.
Workflow Engine: yuqori xavfli o’zgarishlar uchun human-task; eskalatsiya vaqtlari.
17) KPI/KRI funksiyalari
Lead Time konfiguratsiyasi: PR → prod.
Change Failure Rate (CFR): qaytish bilan oʻzgarishlar ulushi.
MTTR hodisa.
Drift rate: tafovut chastotasi Git runtime.
SLO-gates pass rate: qo’lda istisnosiz o’tgan o’zgarishlar ulushi.
O’zgartirish narxi: CPU/IO, kanareykalar, hodisalar.
18) Joriy etish yo’l xaritasi (6-10 hafta)
Ned. 1-2: konfiguratsiyalar, sxemalar, linterlar katalogi; Git-repo; bazaviy CI (validatsiya/diff).
Ned. 3-4: GitOps-rekonsayler, dry-run/staging, status-dashbordlar; TTL bilan ficheflaglar.
Ned. 5-6: policy-as-code (SoD/derazalar/freeze/SLO-geytlar), kanareykali konkida uchish, avtotransport.
Ned. 7-8: drift-detektor, KMS orqali sirlar, ko’p tenant va geo-nusxalar, integratsiya hodisasi-bot.
Ned. 9-10: yuklash/xaos-testlar, FinOps-hisobot, buyruqlar va shablonlarni o’rganish.
19) Artefaktlar shablonlari
PR Template: maqsad, xavf-sinf, viloyat (tenant/region), yoyish rejasi, qaytish rejasi, dry-run natijalari.
Policy Pack: SLO-geytlar, SoD/4-eyes, freeze-kalendar, oʻlcham/kardinallik limitlari.
Runbook: «kanareykalarning joriy versiyasini/diff/holatini qanday o’qish kerak», «promoushni qo’lda qanday to’xtatish kerak».
Config Catalog: egasi, sxemasi, o’quvchilari, yangilanish chastotasi, komplayens-eslatmalar.
20) Antipatternlar
Git/auditsiz «ma’muriy» qo’lda tuzatishlar.
Reliz-artefakt kodi bilan aralashtirilgan konfiglar, issiq almashtirish imkoniyatisiz.
Parsingda sxemalar/validatsiyalar yo’qligi.
Global bir vaqtning o’zida kanareykasiz yoyish.
Konfigadagi umumiy sirlar; Git sirlari.
Ficheflaglarda/TTL/guardrails qaytishi yoʻq.
Drift detektorning yo’qligi.
SLO-geytlarni «qoʻngʻiroq orqali» va yozuvsiz olib tashlash.
Jami
Konfiguratsiyalarni joylashtirish - bu boshqariladigan konveyer: GitOps va GitOps siyosati va GitOps sxemalari va ilg’or yetkazib berishdagi ma’lumotlar. Bunday ramka iGaming platformasining xulq-atvorini SLOni, tushumni va tartibga solish talablariga muvofiqligini saqlab qolish orqali tez va xavfsiz oʻzgartirish imkonini beradi.