Technologia i infrastruktura → Podejście i funkcje bez serwera
Podejście i funkcje bez serwera
1) Co jest bezbronne i kiedy jest potrzebne
Serverless to model, w którym chmura przejmuje zarządzanie serwerem, skalowanie i łaty, a zespół pisze obsługę zdarzeń i korzysta z FaaS (Funkcje-as-a-Service) i BaaS (usługi zarządzane: kolejki, bazy danych, przechowywanie). Wygrywasz w prędkości dostawy, płacisz za rzeczywistą realizację i łatwo skalujesz obciążenia musujące.
Gdzie jest to szczególnie przydatne w iGaming/fintech:- Haki internetowe PSP/KYC (wiele krótkich zapytań, nieprzewidywalne szczyty).
- Antyfraud/punktacja (funkcje zdarzeń, wzbogacanie, sklep z funkcjami).
- Raportowanie/CDC → DWH (seria i streaming).
- Marketing/CRM (zdarzenia wyzwalające, pushy, kupony, segmentacja).
- Lekkie interfejsy API typu backend i zadania użytkowe (throttling, funkcje cron).
- Bez wahania wymagana jest stała niska opóźnienie P99 (pod- 10 ms).
- Długotrwałe połączenia/protokoły (czas rzeczywisty wysokiej częstotliwości bez serwera proxy).
- Duży, stacjonarny komputer z długim procesorem/GPU i ciasnym sprzęgiem.
2) Cegły architektoniczne
2. 1 FaaS
Obsługa zdarzeń: brama HTTP/API, kolejki, strumienie, timery, przechowywanie obiektów, wyzwalacze bazy danych.
Cienki start/opakowanie: warstwy/funkcje obrazu, ocieplenie.
2. 2 BaaS i integracje
Kolejki/strumieniowe (co najmniej raz), Pub/Sub dla zdarzeń domenowych.
Przechowywanie: przedmiot (surowce/artefakty), KV/cache, dokumenty/relacyjne.
Orkiestra: państwowe maszyny/funkcje krokowe, sagi i kompensacje.
Brama API: uwierzytelnianie (OAuth/OIDC/HMAC), limity, transformacje.
2. 3 Obwód sieciowy
Front publiczny (brama krawędzi/API) + funkcje prywatne w VPC, aby uzyskać dostęp do bazy danych/tajemnic/PSP.
Egress control: allow-list to PSP/KYC, fixed NAT-IP.
3) Wydajność: zimny start, konkurencyjność, czas trwania
Zimny start: Pierwszy start pojemnika funkcyjnego po przestoju.
Łagodzić: zminimalizować zależności, używać „rozgrzać” (okresowe wywoływanie), utrzymywać funkcje w tej samej strefie ze źródłami, ostrożnie stosować długie czasy.
Konkurencyjność: ustawić limity „max _ concurrency” i źródła (kolejki/brama), aby nie „zalewać” PSP/DB.
Czas realizacji: dla długich zadań - podział na etapy + orkiestrę (funkcje etapowe), dla obliczeń ciężkich - partia/pojemniki.
4) Solidność: idempotencja, rekolekcje, DLQ
Idempotencja: 'Idempotence-Key '/deduplication at the reception (key + TTL storage).
Retrai: wykładniczy backoff + jitter, spróbuj limitów; Oddzielne błędy biznesowe (4xx) od błędów tymczasowych (5xx/timeout).
DLQ (kolejka martwych liter): dla wiadomości, które nie przeszły po próbach N; powtórzyć konsolę i wymagany ślad.
Dokładnie raz: szablony skrzynki odbiorczej/skrzynki odbiorczej, dziennik zdarzeń transakcyjnych.
5) Status i orkiestra
Brak stanu, stan w sklepach zewnętrznych.
Maszyny państwowe: kroki płatnicze/wyjściowe, KYC-workflow, kontrole zwalczania nadużyć finansowych; wyraźny model błędu/kompensacji.
Sagi: „rezerwa → potwierdzenie → rekompensata” podczas cofania.
6) Bezpieczeństwo i zgodność
IAM według zasady najmniejszych uprawnień: role per-function, scoping w kolejce/wiadra/tabele.
Sekrety: secret manager/KMS, rotacja, poziom HSM dla klawiszy.
mTLS/HMAC dla haków webowych, podpis nadwozia, okno czasu ± 5 min.
Wbudowana ochrona WAF/bot na bramce API, limity stawek/kwoty.
Segmentacja: prod/stage, konta serwisowe, podzbiory prywatne.
PII/PCI: tokenizacja PAN, maskowanie dziennika, „minimalizacja danych”.
Audyt: niezmienne dzienniki (WORM), śledzenie połączeń, przechowywanie regulacyjne.
7) Obserwowalność i kontrola jakości
Wskaźniki: RPS, P50/P95/P99, błędy kodu, czas trwania, początki zimna, rurociąg retray, rozmiar DLQ.
OTel: korelacja trace _ id przez bramę → → funkcja kolejki → DB/PSP; obowiązkowe etykiety „api _ version”, „region”, „partner”.
Kłody: ustrukturyzowane, z maskowaniem PII.
Uwaga na objawy: szybkość spalania SLO, wzrost retray, ogon P99.
Syntetyka: kontrole z krajów docelowych (TR/BR/EU), imitacja haków internetowych.
8) FinOps i koszty
Zapłać "za połączenia i milisekundy. "Śledzenie: częstotliwość startu, czas trwania, pamięć, ruch.
Profil gorących ścieżek: przynieść ciężkie zależności do warstwy/obrazu, połączenia pamięci podręcznej.
Wentylator przytrzymujący (masywne połączenia równoległe) z ograniczeniami i maskaniem.
Rozpoznaj „przecieki”: niekończące się przekaźniki, wiadomości w DLQ bez przetwarzania.
Planowanie okien szczytowych (turnieje/wydarzenia) - przewidywania rozgrzewki i kwot.
9) CI/CD i wersioning
IaC: Terraform/CloudFormation/SAM/CDK - szablony funkcji, kolejek, praw, bram.
Opakowanie: pliki zależności blokady, minimalny obraz/warstwy.
Testowanie: testy kontraktowe (OpenAPI/gRPC), integracja z runtime lokalnym, testy idempotencji.
Wdrożenie: kanaryjski/niebiesko-zielony, flagi funkcyjne, szybki zwrot.
Weryfikacja API: '/vN/' lub typy nośników; Deprecation/Sunset i kompatybilność schematu zdarzeń.
10) Wzory dla iGaming/fintech
Płatności/wypłaty webhooks: akceptacja podpisu → walidacja → idempotence → opublikowanie wydarzenia wypłaty. zaktualizowana "→ orkiestra portfela/aktualizacje raportu.
Punktacja przeciwdrobnoustrojowa: funkcja wzbogacająca (IP/device/geo/history), asynchroniczne rozwiązanie, terminy i strategie awaryjne.
Rurociąg KYC/AML: kontrole równoległe (dokumenty, sankcje, PEP), agregacja wyników, sagi dla powtarzających się wniosków.
Turnieje/oceny: wydarzenia rundy → agregacja strumieniowa → aktualizacja liderów, pamięć podręczna TTL do czytania.
Raportowanie do regulatorów: CDC → funkcje transformacji → prezentacje w DWH, SLA dla świeżości danych.
Marketing/CRM: wyzwalacze behawioralne → kupony/pushy, deduplication i ograniczenia użytkownika.
11) Fragmenty próbek
11. 1 Idempotent recepcja webhook (pseudokoda)
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 Orkiestra wycofania (state machine, idea)
1. 'validate _ request' → 2) 'lock _ balance' → 3) 'call _ psp' (z retras) →
2. „wait _ webhook” (timeout → rekompensata) → 5) „finalizuj/powiadom”.
12) Lista kontrolna implementacji bez serwera
1. Określono źródła zdarzeń i ustalenia umowne (schematy/wersje).
2. Skonfigurowano konkurencyjne limity i „ostrożne” przekaźniki, istnieją DLQ i powtórki.
3. Wliczone są prywatne sieci/VPC, lista odbiorców, stały IP do PSP.
4. IAM na zasadzie najmniejszych przywilejów, tajemnic w KMS/Secret Manager.
5. Obserwowalność: OTel odwzorowanie, P99 deski rozdzielcze/błędy/zimno uruchamia.
6. FinOps: budżety, wpisy kosztowe, czas trwania/kontrola pamięci.
7. CI/CD: kanaryjski/niebiesko-zielony, autotest kontraktów/idempotencji.
8. Dokumentacja: Kolekcje DevPortal/Postman, przykłady ładunków, Deprecation/Sunset.
13) Anty-wzory
„Grube” funkcje z grupą zależności → powolny zimno zaczyna.
Brak idempotencji i podpis haków → duplikaty/oszustwa.
Wentylator bez ograniczeń → burza konkurencji, uderzenie w dostawcę.
Logika w zegarkach/koronach bez śledzenia/wpisów → „ciche” awarie SLA.
Mieszanie tajemnic produkcyjnych w zmiennych środowiskowych bez szyfrowania.
Umowy na imprezy bez rejestru schematu i zasad zgodności.
14) Najważniejsze
Serverless to system operacyjny cloud event: skupiasz się na logice biznesowej, a skalowanie i infrastruktura są "na żądanie. "Łączyć usługi zarządzane FaaS +, dodać idempotencję, orkiestrę i obserwowalność, koszty dyscypliny - i uzyskać platformę, która może wytrzymać szczyty, szybko ewoluować i pozostać ekonomiczne.