Технология және инфрақұрылым → Serverless-тәсіл және функциялар
Serverless-тәсілі мен функциялары
1) serverless дегеніміз не және ол қажет болғанда
Serverless - бұлт серверлерді басқаруды, масштабтауды және патчтарды өз мойнына алатын модель, ал команда оқиға өңдегіштерін жазады және FaaS (Functions-as-a-Service) және BaaS (managed services: кезектер, DB, сақтау орындары) пайдаланады. Сіз жеткізу жылдамдығында ұтасыз, іс жүзінде орындау үшін төлейсіз және «көпірмелі» жүктемелерді оңай масштабтайсыз.
Бұл әсіресе iGaming/финтехте пайдалы:- PSP/KYC вебхоктары (көптеген қысқа сұраулар, болжанбайтын шыңдар).
- Антифрод/скоринг (оқиғалық функциялар, enrichment, feature store).
- Есептілік/CDC → DWH (пакеттік және стримингтік өңдеу).
- Маркетинг/CRM (триггерлік оқиғалар, пушка, купондар, сегментация).
- Жеңіл backend-API және қызметтік тапсырмалар (throttling, cron-функциялары).
- Тұрақты төмен P99-латенттілік (суб-10мс) тербеліссіз талап етіледі.
- Ұзақ өмір сүретін қосылыстар/хаттамалар (проксисіз жоғары жиілікті real-time).
- Ұзақ CPU/GPU және tight coupling бар үлкен, stateful есептеулер.
2) Сәулет кірпіштері
2. 1 FaaS
Оқиғаларды өңдеушілер: HTTP/API-шлюз, кезектер, ағындар, таймерлер, объектілік сақтау орны, БД-триггерлер.
Жұқа бастау/пакеттеу: қабаттар/бейнелеу функциялары, жылыту.
2. 2 BaaS және интеграция
Домен оқиғаларына арналған кезектер/стриминг (at-least-once), Pub/Sub.
Қоймалар: объектілік (шикізат/артефактілер), KV/кэш, құжаттар/реляционка.
Оркестрлеу: state machines/step functions, сагалар және өтемақылар.
API-шлюз: аутентификация (OAuth/OIDC/HMAC), лимиттер, трансформациялар.
2. 3 Желілік контур
Ашық фронт (edge/API-шлюз) + БД/құпияларға/PSP қол жеткізу үшін VPC-дегі жеке функциялар.
Egress-бақылау: allow-list PSP/KYC, тіркелген NAT-IP.
3) Өнімділік: суық бастау, бәсекелестік, ұзақтығы
Суық бастау: тоқтап тұрғаннан кейін функция контейнерін бірінші рет іске қосу.
Митигирлеу: тәуелділікті азайтыңыз, «жылыту» (periodic invoke) пайдаланыңыз, функцияларды көздермен бір аймақта ұстаңыз, ұзақ уақытты сақтықпен қолданыңыз.
Бәсекелестік: PSP/ДҚ «құю» үшін 'max _ concurrency' және көзіне (кезек/шлюз) лимиттер қойыңыз.
Орындау ұзақтығы: ұзақ міндеттер үшін - қадамдарға бөлу + оркестрлеу (step functions), ауыр есептеулер үшін - batch/containers.
4) Сенімділік: теңсіздік, ретра, DLQ
Сәйкестігі: «Idempotency-Key »/қабылдаудағы дедупликация (кілт + TTL-сақтау орны).
Ретраилер: экспоненциалды backoff + jitter, әрекеттер лимиттері; бизнес-қателерді (4xx) уақытша қателерден (5xx/timeout) бөліңіз.
DLQ (dead-letter queue): N әрекетінен кейін өтпеген хабарлар үшін; replay-консоль және трассировка міндетті.
Exactly-once (іс жүзінде): outbox/inbox үлгілері, оқиғаның транзакциялық журналы.
5) Жай-күйі және оркестрлеу
Функцияда күйсіз, сыртқы қоймаларда күйде.
State machines: төлем/шығару қадамдары, KYC-workflow, антифрод-тексеру; қателер/өтемақылардың нақты үлгісі.
Сағалар: қайтару кезінде «резервтеу → растау → өтеу».
6) Қауіпсіздік және сәйкестік
IAM ең аз артықшылықтар қағидаты бойынша: per-функция рөлі, кезектегі scoping/бакеттер/кесте.
Құпиялар: құпия менеджері/KMS, ротация, кілттер үшін HSM деңгейі.
mTLS/HMAC вебхуктер үшін, дененің қолы, уақыт терезесі ± 5 мин.
API-шлюзде орнатылған WAF/бот-қорғау, rate-limits/quotas.
Сегментация: прод/стейдж, сервистік аккаунттар, жеке сабсеттер.
PII/PCI: PAN токенизациясы, логтарды бүркемелеу, «деректерді барынша азайту».
Аудит: өзгермейтін логтар (WORM), шақыруларды трассалау, реттегіш бойынша сақтау.
7) Бақылау және сапаны бақылау
Метриктер: RPS, P50/P95/P99, кодтар бойынша қателер, ұзақтығы, суық старттар, ретрайлер конвейері, DLQ size.
Трейсинг (OTel): шлюз арқылы 'trace _ id' корреляциясы → функция → кезек → ДБ/PSP; міндетті лейблдер 'api _ version', 'region', 'partner'.
Логтар: құрылымдалған, PII бүркемеленген.
Симптомдары бойынша алерталар: burn-rate SLO, ретрациялардың өсуі, P99 құйрығы.
Синтетика: мақсатты елдерден тексерулер (TR/BR/EU), вебхуктарды имитациялау.
8) FinOps және құны
«Шақырулар мен миллисекундтар үшін» төлеңіз. Іске қосу жиілігін, ұзақтығын, жадын, трафигін қадағалау.
Ыстық жолдарды профильдеңіз: қатты тәуелділіктерді қабатқа/бейнеге шығарыңыз, қосылымдарды кэштеңіз.
Фан-аутты (жаппай қатарлас шақыруларды) лимиттермен және батчингпен тежеңіз.
«Ағып кетулерді» таныңыз: шексіз ретрациялар, DLQ хабарларын өңдеусіз.
Ең жоғары терезелерді (турнирлер/іс-шаралар) жоспарлаңыз - болжамды жылыту және квоталар.
9) CI/CD және нұсқаларды басқару
IaC: Terraform/CloudFormation/SAM/CDK - функциялардың, кезектердің, құқықтардың, шлюздердің үлгілері.
Пакеттеу: тәуелділіктің lock файлдары, ең аз кескін/қабаттар.
Тестілеу: келісімшарт-тесттер (OpenAPI/gRPC), жергілікті рантайммен интеграцияланған, іспеттілік тестілері.
Деплой: canary/blue-green, feature flags, жылдам rollback.
API нұсқасы: '/vN/' немесе медиатиптер; Deprecation/Sunset және оқиғалар схемаларының үйлесімділігі.
10) iGaming/финтех үшін үлгілер
Төлемдер/қорытындылар веб-хаптары: қабылдау → қолтаңбаны валидациялау → демпотенттік → оқиғаны жариялау 'payout. updated '→ әмиян/есеп жаңартуларын топтастыру.
Антифрод-скоринг: enricher функциясы (IP/девайс/гео/тарих), асинхронды шешім, таймауттар және fallback стратегиялары.
KYC/AML пайплайн: қатарлас тексерулер (құжаттар, санкциялар, PEP), нәтижелерді біріктіру, қайталама сұраулар үшін сағаттар.
Турнирлер/рейтингтер: раундтар оқиғалары → streaming-агрегациялар → көшбасшылар кестелерін жаңарту, оқуға арналған TTL-кэш.
Реттеушілерге есеп беру: CDC → трансформация функциялары → DWH, SLA-дағы витриналар.
Маркетинг/CRM: мінез-құлық триггерлері → купондар/пуштар, дедупликация және пайдаланушыға арналған лимиттер.
11) Фрагменттердің мысалдары
11. 1 Вебхукты (жалған кодты) іспеттес қабылдау
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 Құралдарды шығару оркестрі (state machine, идея)
1. 'validate _ request' → 2) 'lock _ balance' → 3) 'call _ psp' (ретраларымен) →
2. 'await _ webhook' (таймаут → өтемақы) → 5) 'finalize/notify'.
12) serverless енгізу чек-парағы
1. Келісімшарттар (схемалар/нұсқалар) бойынша оқиғалар мен уағдаластықтардың көздері анықталды.
2. Бәсекелестік лимиттері мен «сақтық» ретрайлары реттелген, DLQ және replay бар.
3. Жеке желілер/VPC, egress-allow-list, тіркелген IP PSP қосылған.
4. IAM ең аз артықшылықтар қағидаты бойынша, KMS/Secret Manager құпиялары.
5. Observability: OTel трассасы, P99/қателер/суық бастау бойынша дашбордтар.
6. FinOps: бюджеттер, құн тәуекелдері, ұзақтығын/жадын бақылау.
7. CI/CD: canary/blue-green, келісімшарттардың/іспеттіліктің автотестері.
8. Құжаттама: DevPortal/Postman коллекциялары, payload's мысалдары, Deprecation/Sunset.
13) Қарсы үлгілер
Тәуелділік үйіндісімен «қалың» функциялар → баяу суық бастау.
Вебхуктардың сәйкессіздігі мен қолтаңбасының жоқтығы → дубликаттар/алаяқтық.
Лимитсіз фан-аут → бәсекелестік дауылы, провайдердегі троттлинг.
Трасссыз/алертсіз таймердегі/крондағы логика → SLA «тыныш» сәтсіздіктері.
Шифрлаусыз қоршаған ортаның ауыспалыларында прод-құпияларды араластыру.
Schema Registry және сыйысымдылық ережелері жоқ оқиғалар келісімшарттары.
14) Қорытынды
Serverless - бұл бұлттың оқиғалық операциялық жүйесі: сіз бизнес логикаға назар аударасыз, ал масштабтау және инфрақұрылым - «талап бойынша». FaaS + басқарылатын сервистерді қосыңыз, идемпотенттілікті, оркестрді және бақылауды қосыңыз, құнды реттеңіз - және шыңға төзетін, тез дамитын және үнемді болып қалатын платформаны алыңыз.