GH GambleHub

Serverless funksiýalary we cold start

1) cold start näme we näme üçin ýüze çykýar

Cold start - wakany gaýtadan işlemezden ozal täze ýerine ýetiriş izolýasiýasy (sandbox/konteýner/mikro-VM) döredilende goşmaça gizlinlik. Adaty konweýer:

1. Gurşaw allokasiýasy (konteýner/mikro-VM, iş wagty ýüklemek).

2. VPC/ENI, syrlary, faýllary, konfigurasiýalary birikdirmek.

3. Kody başlamak (modullary import etmek, DB birikdirmek, modelleri ýüklemek).

4. Handler ýerine ýetirildi.

Warm start (reuse) 1-3 ädimlerini sypdyrýar. Cold start ähtimallygy iň ýokary derejelerde, iş wagtyndan soň, paralellik ýokarlananda we kod/konfigurasiýa täzelenende ýokarlanýar.

2) Nädip ölçemeli we maksat goýmaly (SLO)

Metrikler: 'init _ duration' (başlangyç), 'duration _ total', "sowuk uçuşlaryň paýy", p95/p99 latency, iş wagtyndan soň endiklere birikdirmegiň ýalňyşlyklary.
Telemetriýany aýyrmak: platforma ýazgylary + öz bellikleri (mysal üçin, 'context' bar bolsa 'cold = true/false'. isColdStart 'ýa-da statiki utgaşmada öz baýdagy).
SLO-maksatlar (mysal): API "login" p95 ≤ 200 ms, paýy cold ≤ 3%; Fon tabşyryklary - p95 ≤ 1 s. "Pul" ugurlary üçin - aýratyn, has berk.

3) cold start azaltmagyň esasy gollary

3. 1 Konkarrensi we ýylylyk dolandyryşy

Provisioned Concurrency/Min Instances: N ýyly gurşawy saklaýar. Möhüm tutawaçlar üçin ulanyň.
Warmers/gyzdyrma: workerleri ýyly saklamak üçin meýilleşdirilen jaňlar (cron/scheduler). Muny akylly ediň (sebit, wagt, ýük).
Burst-buferler: garaşylýan belentliklerden öň paralellik çägini öňünden ýokarlandyryň.

3. 2 Gaplamak we garaşlylyk

Kiçi deploy-artefakt: tree-shaking, '-only prod' garaşlylyk, gatlaklar (AWS Layers) uly lib üçin.
Lazy-init: ilkinji gezek gireniňizde handleriň içindäki agyr modullary import ediň; baglanyşyklary ýalta açyň.
Yssy çeşmeler: warm başlamak üçin global sebitdäki SDK/baglanyşyk müşderilerini kesiň.

3. 3 Tor we VPC

VPC bolmasa, hususylyga mätäç bolmadyk funksiýalar üçin (ýogsam ENI-attach onlarça-ýüzlerçe ms goşýar).
VPC hökman bolsa, VPC-ekonom üpjün ediji re modeimini (ENI-howuzlar/optimizasiýa), DB proxy (RDS Proxy/Cloud SQL Auth Proxy) we connection pooling ulanyň.

3. 4 Diller we randaýlar

Node. js/Go iň çalt başlaýar; Python - adatça çalt, ýöne uly importlara duýgur; Java/.NET - GraalVM/AOT we profil bolmasa has kyn.
JVM üçin SnapStart/CRaC/Graal Native; üçin. NET — trimmed Self-Contained.

3. 5 Başlangyç we state

Islegiň ýoluna däl-de, init phase (init phase) -a gymmat bahaly başlangyç getiriň.
Ýerli keş (TTL) bilen on-demand konfigurasiýalary/syrlary ýükläň.
Ulanyjy ýagdaýyny ýatda saklamaň - diňe keş signallary/konnektorlar.

4) cold start täsirini azaldýan binagärlik nusgalary

4. 1 Asinhron we nobatlar

Soragy kabul edýäris → tassyklaýarys → nobata goýýarys/teker (SQS/PubSub/Queue Storage) → jogap berýäris 202/Accepted → fon bilen gaýtadan işleýäris.
Işjeň däl amallar (tölegler, hasabatlar, agyr hasaplamalar) üçin amatlydyr.

4. 2 Precompute/Pre-cache

Girişleri/kataloglary/fiç-baýdaklary öňünden trigger (CRON/wakalar) boýunça döretmek we KV/keş/edge-de saklamak.

4. 3 Fan-out/Fan-in

Uzak operasiýany birnäçe gysga funksiýalara bölýäris (Map/Reduce-meňzeş) → wagt we gaýtalanma töwekgelçiligi az.

4. 4 Edge-offload

Iň ýönekeý barlaglary (JWT/HMAC, geo-redirekt, antibot) RTT tygşytlamak we origini düşürmek üçin edge (Workers/Functions @Edge) -de ýerine ýetirýäris.

5) Tejribe: konfigikler we usullar

5. 1 AWS Lambda (provisioned + RDS Proxy)

hcl
Terraform sketch: enable provisioned concurrency on the sales version of the resource "aws_lambda_provisioned_concurrency_config" "api" {
function_name = aws_lambda_function. api. function_name qualifier   = aws_lambda_alias. prod. name provisioned_concurrent_executions = 20
}

RDS Proxy for connection pool "aws_db_proxy" "rds_proxy" {
name          = "pg-proxy"
engine_family     = "POSTGRESQL"
idle_client_timeout  = 1800 require_tls      = true
}
Node. js (ýalta başlangyç we reuse):
js let pgClient ;//reuse between warm runs let cold = true;

exports. handler = async (event, ctx) => {
const isCold = cold; cold = false;
if (!pgClient) {
const { Client } = await import('pg');     // lazy import pgClient = new Client({ host: process. env. PG_PROXY, ssl: true });
await pgClient. connect();
}
const t0 = Date. now();
const data = await pgClient. query('select 1');
return {
statusCode: 200,
headers: { 'x-cold-start': String(isCold), 'x-elapsed-ms': String(Date. now()-t0) },
body: JSON. stringify({ ok: true })
};
};

5. 2 GCP Cloud Run / Cloud Functions (min instances)

yaml
Cloud Run service. yaml apiVersion: serving. knative. dev/v1 kind: Service metadata: { name: api }
spec:
template:
metadata:
annotations:
autoscaling. knative. dev/minScale: "5" # keep warm run containers. googleapis. com/cpu-throttling: "false"
spec:
containerConcurrency: 80 containers:
- image: gcr. io/proj/api:latest env:
- { name: DB_HOST, value: "10. 0. 0. 5" }

5. 3 Azure Functions (AlwaysOn/PreWarm)

AlwaysOn bilen Premium/Elastic meýilnamalary; pre-warmed instances ≥ çaklama p95 paralelligi.

6) Wagtlar, retralar, möhletler

Umumy möhleti (client-side) sözbaşy ('x-deadline-ms '/' grpc-timeout') arkaly geçiriň, funksiýanyň içinde 'per-hop timeout' -y gysgaldyň.
Diňe idempotent amallary üçin gaýtalanmalar; Idempotency-Key we de-duplikasiýany ulanyň.
Öň API üçin - hedging (p90-dan soň gaýtalanýan haýyş) we uzak aralyga garaşlylyk üçin circuit breaker.

7) DB/keş/syrlar bilen işlemek

Howuzlar/Proxy (RDS Proxy/Cloud SQL Proxy/pgBouncer) müňlerçe gysga konektiň ýerine.
Fonda täzelenen gysga TTL syr + ýatda kesh.
Kesh (Redis/Memcached/KV): "agyr" kataloglary init-e ýüklemek, ýöne wagt çäkleri bilen.

8) Kody guramak we ýygnamak

Dar use-case üçin aýratyn hendlerler; bir "galyň" bandl = uzyn init.
ESBuild/Rollup: Ulanylmaýan zady aýyryň, diňe kritiki zady birleşdiriň.
Gatlaklar (Layers/Extensions) - üpjün edijiniň keşini gaýtadan ulanmak üçin uly lipler (OpenSSL modelleri, SDK) üçin.

9) Pikleri barlamak we simulýasiýa etmek

"Sowuk" başlangyç sintetikasy: min instances-i zor bilen öçüriň we paralel traffigi ädimler bilen kowuň.
A/B: cold, p95 paýyny, konnektiň ýalňyşlygyny DB/syrlara, çykdajylara deňeşdiriň.
GameDay: iň ýokary ýük × 2 iň ýokary derejeden, ýylylygy öçürmek.

10) Bahasy (FinOps)

Min instances/provisioned concurrency puluň bahasy - diňe gyzgyn ugurlar üçin açyň.
Ýerine ýetiriş möhletini azaldyň: keş, gysga wagt, gereksiz SDK-lardan ýüz öwürmek.
Egress (daşarky API çagyryşlaryny) we logirlemegi göz öňünde tutuň.

11) Antipatternler

Onlarça megabaýt garaşlylygy bolan bir monolit handler.
Her jaňda hökmany DB birikdirmek (reuse/proxy bolmazdan).
"Mümkin boldugyça" ähli funksiýalar üçin VPC.
Uzyn wagtlar we kör retralar → "guýruklar" we fantom hasaplar.
Gije-gündiziň dowamynda "hemme zady" gyzdyrmak.
Gözleg ýolunda gizlin başlangyç (lentisya init> 100 ms - init/kese geçiriň).

12) iGaming/Maliýe aýratynlyklary

Pul ýollary (goýumlar/netijeler): provisioned/min instances, aýry-aýry SLO-lary saklaň, wagtlary we gaýtalamalary berk çäklendiriň (idempotentlik hökmanydyr).
KYC/PSP: durnuksyz daşarky API - kweue worker, öň tarapda - 202/polling/webhuk.
Düzgünleşdiriji we audit: üýtgemeýän loglar (WORM), "Idempotency-Key" bilen gelýän wakalaryň magazineurnaly, "trace _ id" baglanyşygy.
Data residency: PII işleýän funksiýalary sebitleýin hasaplarda/taslamalarda ýerleşdiriň; PII bilen edge-kesh ýok.

13) Prod-taýynlyk çek-sanawy

  • SLI/SLO kesgitlenildi: p95/p99, cold paýy, marşrutlar boýunça maksat bahalary.
  • Möhüm funksiýalarda provisioned/min instances goşuldy; konkarrensi çaklamasy.
  • Bandle iň az; agyr libalar gatlaklara çykaryldy; lazy-import/başlangyç.
  • SDK/DB müşderileriniň Reuse; RDS/SQL Proxy sazlandy; baglanyşyk howuzy.
  • VPC diňe zerur ýerlerde; ENI/proxy optimizirlendi; dolandyryjy arkaly syrlar + TTL ýerli keşi.
  • Wagt/möhletler/retrailer: backoff + jitter; diňe dempotent gaýtalanmalar.
  • Sintetika "cold" + ýük synaglary; cold we p99 paýynyň ýokarlanmagy üçin alertler.
  • Runbooks: provisioned nädip köpeltmeli, minScale nädip üýtgetmeli, degradasiýany nädip açmaly.
  • iGaming üçin: aýratyn SLO/dashbordlar "pul ýollary", Idempotency-Key, WORM-audit.

14) TL; DR

Sowuk başlangyç gutulgysyz, ýöne dolandyrýarys: möhüm ýerlerde ýyly ýagdaýlary saklaň, bandllary azaldyň, lazy-init we reuse birikmelerini ulanyň, artykmaç VPC-den gaça duruň, nobat/workerlerde agyr amallary geçiriň we ýeňil düzgünler üçin edge ulanyň. Möhüm maliýe ýollary üçin - aýratyn SLO, idempotentlik we berk taýmautlar; cold paýyny ölçäň we ýylylygy diňe töleýän ýerinde açyň.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Telegram
@Gamble_GC
Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.