Texnologiyalar va infratuzilma → Serverless-yondashuv va funksiyalar
Serverless-yondashuv va funksiyalar
1) serverless nima va qachon kerak
Serverless - bulutlar serverlarni boshqarish, kattalashtirish va yamoqlarni o’z zimmasiga oladigan, jamoa esa voqealarni qayta ishlovchilarni yozadigan va FaaS (Functions-as-a-Service) va BaaS (managed services: navbatlar, DB, saqlash joylari) dan foydalanadigan model. Siz etkazib berish tezligida g’alaba qozonasiz, haqiqiy bajarish uchun pul to’laysiz va «shishiruvchi» yuklarni osongina ko’paytirasiz.
Bu ayniqsa iGaming/fintech’da foydali:- PSP/KYC vebxuklari (ko’plab qisqa so’rovlar, oldindan aytib bo’lmaydigan cho’qqilar).
- Antifrod/skoring (hodisa funksiyalari, enrichment, feature store).
- Hisobot/CDC → DWH (paketli va striming ishlov berish).
- Marketing/CRM (trigger hodisalari, puflar, kuponlar, segmentatsiya).
- Oson backend-API va xizmat vazifalari (throttling, cron-funksiyalar).
- Doimiy past P99-latentlik (sub10ms) ikkilanmasdan talab qilinadi.
- Uzoq davom etadigan ulanishlar/protokollar (proksisiz yuqori chastotali real-time).
- Uzoq davom etgan CPU/GPU va tight coupling bilan katta stateful hisoblash.
2) Arxitektura g’ishtlari
2. 1 FaaS
Hodisalarga ishlov beruvchilar: HTTP/API-shlyuz, navbatlar, oqimlar, taymerlar, obyekt ombori, DB-triggerlar.
Yupqa boshlash/paketlash: qatlamlar/tasvir funksiyalari, isitish.
2. 2 BaaS va integratsiya
Domen voqealari uchun navbatlar/striming (at-least-once), Pub/Sub.
Omborlar: obyekt (xomashyo/artefaktlar), KV/kesh, hujjatlar/relyasionka.
Orkestratsiya: state machines/step functions, sages va kompensatsiyalar.
API-shlyuz: autentifikatsiya (OAuth/OIDC/HMAC), limitlar, transformatsiyalar.
2. 3 Tarmoq konturi
Ommaviy front (edge/API-shlyuz) + VPCdagi shaxsiy funksiyalar.
Egress-nazorat: allow-list to PSP/KYC, qat’iy NAT-IP.
3) Unumdorlik: sovuq boshlash, raqobatbardoshlik, davomiylik
Sovuq ishga tushirish: tanaffusdan keyin konteynerni birinchi marta ishga tushirish.
Mitigatsiya qiling: qaramlikni kamaytiring, «isitish» (periodic invoke) dan foydalaning, funksiyalarni manbalar bilan bir zonada saqlang, uzoq vaqt davomida ehtiyot bo’ling.
Raqobatbardoshlik:’max _ concurrency’va PSP/DBni «to’ldirmaslik» uchun manba (navbat/shlyuz) uchun limitlar bering.
Bajarish muddati: uzoq vazifalar uchun - qadamlarga bo’lish + orkestrlash (step functions), og’ir hisoblash uchun - batch/containers.
4) Ishonchlilik: idempotentlik, retray, DLQ
Idempotentlik:’Idempotency-Key ’/Qabul qilish deduplikatsiyasi (kalit + TTL-saqlash).
Retraylar: eksponensial backoff + jitter, urinishlar limitlari; biznes xatolarini (4xx) vaqtinchalik xatolardan (5xx/timeout) ajrating.
DLQ (dead-letter queue): N urinishlardan keyin chiqmagan xabarlar uchun; replay-konsol va trastirovka qilish majburiydir.
Exactly-once (amalda): outbox/inbox namunalari, voqealarning tranzaksion jurnali.
5) Holati va orkestrlash
Funktsiyadagi holatsiz, holati - tashqi omborlarda.
State machines: to’lov/chiqarish bosqichlari, KYC-workflow, antifrod tekshiruvi; xatolar/kompensatsiyalarning aniq modeli.
Saga: orqaga qaytganda «rezerv qilish → tasdiqlash → kompensatsiya qilish».
6) Xavfsizlik va muvofiqlik
Eng kichik imtiyozlar printsipi bo’yicha IAM: rollar per-funksiya, navbatda scoping/baketalar/jadvallar.
Sirlar: maxfiy menejer/KMS, rotatsiya, kalitlar uchun HSM darajasi.
mTLS/HMAC vebxuklar uchun, tana imzosi, vaqt oynasi ± 5 daqiqa.
API-shlyuzda o’rnatilgan WAF/bot-himoya, rate-limits/quotas.
Segmentatsiya: prod/steyj, servis hisobvaraqlari, shaxsiy sabsetlar.
PII/PCI: PANni tokenlash, loglarni yashirish, «ma’lumotlarni minimallashtirish».
Audit: o’zgarmas loglar (WORM), qo’ng’iroqlarni izlash, regulyator bo’yicha saqlash.
7) Kuzatuvchanlik va sifatni nazorat qilish
Metriklar: RPS, P50/P95/P99, kodlar bo’yicha xatolar, davomiyligi, sovuq startlar, retray konveyeri, DLQ size.
Treysing (OTel):’trace _ id’ni shlyuz orqali bog’lash → funksiya → navbat → DB/PSP; majburiy yorliqlar’api _ version’,’region’,’partner’.
Logi: strukturalangan, PII niqoblangan.
Alertlar: burn-rate SLO, retraylarning o’sishi, P99 dumi.
Sintetika: maqsadli mamlakatlardan tekshirish (TR/BR/EU), vebxuklarga taqlid qilish.
8) FinOps va qiymati
«Qo’ng’iroqlar va millisekundlar uchun» to’lang. Kuzatish: ishga tushirish chastotasi, davomiyligi, xotirasi, trafigi.
Issiq yoʻllarni profillang: qattiq qaramliklarni qatlam/tasvirga olib chiqing, ulanishlarni keshlang.
Fan-aut (ommaviy parallel qo’ng’iroqlar) ni limit va batching bilan ushlab turing.
«Oqish» ni aniqlang: cheksiz retralar, DLQdagi xabarlar.
Eng yuqori oynalarni (turnirlar/tadbirlarni) rejalashtiring - taxminiy isitish va kvotalar.
9) CI/CD va versiyalarni boshqarish
IaC: Terraform/CloudFormation/SAM/CDK - funksiyalar, navbatlar, huquqlar, shlyuzlar shablonlari.
Paketlash: bogʻliqlik lock fayllari, minimal rasm/qatlamlar.
Test: kontrakt-testlar (OpenAPI/gRPC), lokal rantaym bilan integratsiya, idempotentlik testlari.
Deploy: canary/blue-green, feature flags, tezkor rollback.
API versiyalash: ’/vN/’ yoki mediatiplar; Deprecation/Sunset va hodisa sxemalarining mosligi.
10) iGaming/fintech uchun patternlar
To’lov/xulosa vebxuklari: qabul qilish → imzo validatsiyasi → idempotentlik →’payout’voqeasini chop etish. updated’→ hamyon/hisobot yangilanishlarini orkestrlash.
Antifrod-skoring: enricher funksiyasi (IP/devays/geo/tarix), asinxron yechim, taymautlar va fallback strategiyalari.
KYC/AML paypline: parallel tekshiruvlar (hujjatlar, sanksiyalar, PEP), natijalar agregatsiyasi, takroriy so’rovlar uchun saga.
Turnirlar/reytinglar: tur voqealari → streaming-agregatsiyalar → yetakchilar jadvallarini yangilash, o’qish uchun TTL-kesh.
Regulyatorlarga hisobot: CDC → transformatsiya funksiyalari → DWH, SLAdagi vitrinalar.
Marketing/CRM: xatti-harakatlar triggerlari → kuponlar/pushlar, de-duplikatsiya va foydalanuvchi uchun limitlar.
11) Parchalar namunalari
11. 1 Idempotent vebxukni qabul qilish (psevdokod)
python def handler(event):
assert verify_hmac(event. headers, event. body, secret)
key = f"idemp:{event. headers['Idempotency-Key']}"
if kv. exists(key):
return kv. get (key) # repeat - give the same result result = process (event. body) # public event, state record kv. set(key, result, ttl=86400)
return result
11. 2 Mablag’larni olib chiqish orkestri (state machine, g’oya)
1.’validate _ request’→ 2)’lock _ balance’→ 3)’call _ psp’(retralar bilan) →
2.’await _ webhook’(taymaut → kompensatsiya) → 5)’finalize/notify’.
12) Serverless joriy etish chek-varaqasi
1. Kontraktlar (sxemalar/versiyalar) bo’yicha voqealar manbalari va kelishuvlar aniqlandi.
2. Raqobatbardoshlik chegaralari va «ehtiyotkor» retrajlar oʻrnatildi, DLQ va replay mavjud.
3. Xususiy tarmoqlar/VPC, egress-allow-list, PSPga oʻrnatilgan IP yoqilgan.
4. Eng kam imtiyozlar printsipi bo’yicha IAM, KMS/Secret Manager sirlari.
5. Observability: OTel trassasi, P99/xato/sovuq startlar boʻyicha dashbordlar.
6. FinOps: byudjetlar, qiymatga alertlar, xotiraning davomiyligini nazorat qilish.
7. CI/CD: canary/blue-green, kontraktlar/idempotentlik avtostestlari.
8. Hujjatlar: DevPortal/Postman kolleksiyalari, payload’lar, Deprecation/Sunset namunalari.
13) Anti-patternlar
Bog’liqlik to’plami bilan «qalin» funksiyalar → sekin sovuq startlar.
Idempotentlik va imzoning yo’qligi → dublikatlar/firibgarlik.
Limitsiz fan-aut → raqobat bo’roni, provayderda trottling.
Trastirovsiz taymer/kronlarda mantiq → SLA ning «jim» muvaffaqiyatsizliklari.
Prod sirlarini shifrlamasdan muhit oʻzgaruvchisiga aralashtirish.
Schema Registry va muvofiqlik qoidalarisiz voqealar kontraktlari.
14) Jami
Serverless - bu bulutning hodisa operatsion tizimi: siz biznes mantig’iga e’tibor qaratasiz, kattalashtirish va infratuzilma esa «talab bo’yicha». FaaS + boshqariladigan xizmatlarni birlashtiring, idempotentlik, orkestr va kuzatuvni qo’shing, narxni intizomga soling - va eng yuqori cho’qqiga chidaydigan, tez rivojlanadigan va tejamkor bo’lib qoladigan platformani oling.