GH GambleHub

Konteynerləşdirmə və orkestrləşdirmə

1) Niyə iGaming konteynerlər və k8s

Dəyişmə sürəti: proqnozlaşdırıla bilən şəkillər, vahid CI/CD payline.
Dayanıqlıq: avtomatik yenidən başlamalar, üfüqi skail, self-hilinq.
Məlumat/regionların təcrid olunması: yurisdiksiya altında olan neyspeys/klasterlər.
Əməliyyat standartları: resurs siyasəti, vahid log/metrika/treys.

Lazım olmadıqda: kiçik komanda, 2-3 xidmət, nadir buraxılışlar - PaaS/modul monolit ilə başlayın.

2) Şəkillər və reyestrlər (OCI/Docker)

2. 1 Şəkillərin toplanması - prinsiplər

Multi-stage: bild → rantaym (incə əsas şəkillər 'distroless', 'alpine' ehtiyatla).
Təkrarlanabilirlik :/sha256, 'COPY --chown', '--mount = type = cache' versiyalarını BuildKit-ə yazın.
SBOM və imza: 'cosign sign/verify', 'slsa provenance', «yalnız imzalanmış» siyasət.
Slim-down: dev-tools sil, 'USER nonroot', 'readOnlyRootFilesystem' daxil edin.

Dockerfile nümunəsi (Node. js)

dockerfile build
FROM node:22-bookworm AS build
WORKDIR /app
COPY package. json./
RUN npm ci --omit=dev
COPY..
RUN npm run build

runtime (distroless)
FROM gcr. io/distroless/nodejs22
WORKDIR /srv
COPY --from=build /app/dist./dist
COPY --from=build /app/node_modules./node_modules
USER 10001
ENV NODE_ENV=production
CMD ["dist/server. js"]

2. 2 Reyestrlər və siyasətlər

Gizlilik və GDPR uyğunluğunu azaltmaq üçün Private registry + geo-replikalar (EU/NA).
Retention/immutability: PoP-də cachın isidilməsi, etiketlərin yenidən yazılmasını qadağan edir.
Admission-Control: Yalnız imzalanmış/Saf şəkillər (cosign + Trivy/Grype).

3) Orkestr: Kubernetes əsas nümunələri

3. 1 Primitivlər

Deployment - stateless xidmətləri (lobbi, API).
StatefulSet - cüzdan/növbə/saxlama (fix adı, sabit cildlər).
DaemonSet - log agentləri/şəbəkə komponentləri.
Job/CronJob - miqrasiya, hesabatlar, ETL.

3. 2 Resurslar və QoS

'requests/limits' (CPU/Memory) → QoS sinifləri və proqnozlaşdırıla bilən planlaşdırma.
Burstable yalnız şüurlu olduğu yerdə; kritik - Guaranteed.
Kritik ödəniş PODları xüsusi hovuzlara (taints/tolerations, node-affinity) yerləşdirin.

3. 3 Sabitlik və buraxılışlar

Probes: 'startup', 'liveness', 'readiness' (taymaut və periodlarla).
Rollout: `maxSurge/maxUnavailable`, canary через вес в Ingress/Gateway/Service Mesh.
PDB (PodDisruptionBudget) + graceful shutdown (PreStop hook, `terminationGracePeriodSeconds`).
Yeniləmə zamanı Drain/cordon nod.

4) Şəbəkə: CNI, xidmətlər, giriş trafiki

4. 1 CNI təbəqəsi

Calico/Cilium/Weave - şəbəkə siyasəti (NetworkPolicy), performans üçün eBPF.
İntermispace qaydaları: minimum tələb olunan egress/ingress.

4. 2 Xidmətlər və giriş

Service: `ClusterIP/NodePort/LoadBalancer`.
L7 üçün Ingress və ya Gateway API: yol marşrutları/heder/host, TLS, kanarya çəkiləri.
Klaster daxilində mTLS: xidmət-mesh vasitəsilə (Istio/Linkerd) - TLS və siyasətin tutulması.

HTTPRoute nümunəsi (Gateway API, kanarya çəkisi)

yaml apiVersion: gateway. networking. k8s. io/v1 kind: HTTPRoute spec:
rules:
- backendRefs:
- name: lobby-v1 weight: 90 port: 8080
- name: lobby-v2 weight: 10 port: 8080

5) Saxlama: CSI/PV/PVC, cild sinifləri

Provayderin CSI sürücüləri (EBS/PD/Premium SSD) + performans parametrləri ilə 'storageClass'.
RWX (NFS/FSx/Filestore) - kilidlərlə ehtiyatlı olun.
Backup/restore: Velero/Kasten, periodik snapshot, bərpa yoxlama.
Şifrələmə: disk səviyyəsində və DB (KMS) səviyyəsində.

6) Avtomatik miqyaslı: HPA/VPA/KEDA

HPA (CPU/RAM/xüsusi metrlər üzrə - RPS, p95): API/lobbi üçün.
VPA (tövsiyələr/avtomobil) - sabit işçilər üçün.
KEDA (event-driven) - Kafka/SQS/Redis, Cron-şedullara görə miqyas.
Cluster Autoscaler - yük qovşaqları; zirvələr üçün warm-hovuzlar (turnirlər/axınlar).

7) Xidmət-meş (lazım olduqda)

mTLS/siyasət xidmət, şəxsiyyət avtorizasiyası (SPIFFE).
Circuit-breaker/timeout/retry, outlier-ejection, güzgü (shadow).
Qutudan tele-metriya: vahid metriklər və treklər.
Zərif trafik menecmenti (ödənişlər, oyun provayderləri) lazım olan yerlərdə istifadə edin.

8) Təhlükəsizlik: sirləri, siyasət, uyğunluq

Secrets: xarici menecer (AWS/GCP/Azure KMS, External Secrets), rotasiya.
Policy-as-code: OPA/Gatekeeper/Kyverno - qadağa ': latest', root-USER, hostPath, imtiyazlar.
Hüquqların artması: Namespaces + RBAC, Dev/Stage/Prod bölgüsü, audit.
Image Security: CI/CD skan, imza (cosign), imza admission.
mTLS və JWT daxili (mash), WAF/Rate-limit giriş (Ingress/Gateway).

9) Müşahidə və SLO

Metrics: Prometheus/OpenTelemetry, p50/95/99, 4xx/5xx, saturations.
Logs: struktur JSON → Loki/Elastic, maskalama PII/PAN/IBAN.
Traces: OTLP → Tempo/Jaeger; 'trace _ id' şlüzdən gəlir.
SLO: məsələn, 'Deposit p95 ≤ 300 ms, success ≥ 98. 5% ', burn-rate alertləri.
Proaktivlik: dashboard per-service/per-route, watchdog DLQ və lag növbələri.

10) CI/CD, Helm, GitOps

CI: linterlər, testlər (unit/contract/integration), SAST/DAST, SBOM.
Helm/Jsonnet/Kustomize: «values.» Ilə əhatə olunmuş bəyannamə siyahıları.
GitOps (ArgoCD/Flux): single-source-of-truth, PR-review manifestlər, rollback düyməsi.
Strategiyalar: mavi-yaşıl, canary, shadow; sxemlərin miqrasiyası - expand-and-contract.

Fraqment values. yaml (resurslar/sınaqlar)

yaml resources:
requests: { cpu: "200m", memory: "256Mi" }
limits:  { cpu: "500m", memory: "512Mi" }
livenessProbe: { httpGet: { path: /healthz, port: 8080 }, initialDelaySeconds: 20, periodSeconds: 10 }
readinessProbe: { httpGet: { path: /readyz, port: 8080 }, initialDelaySeconds: 5, periodSeconds: 5 }

11) Planlaşdırma və təcrid

NodePools: ödənişləri/cüzdanı sürətli disk ilə «aşağı səs-küylü» qovşaqlara ayırın.
Taints/Tolerations: kritik yüklər üçün qorunan hovuzlar.
(Anti-) Affinity: replikaları zonalara/düyünlərə (HA) görə yağlayın.
ResourceQuota/LimitRange - «səs-küylü qonşulara» qarşı müdafiə.

12) Multiklaster, multi-region, DR

Yurisdiksiyalara görə bölünmə: EU/LatAm/ROW klasterləri; rezidentlərin məlumatları - yerli.
GSLB/Anycast giriş, per-izlənmə və alertlər.

DR səviyyələri:
  • Warm standby (tövsiyə olunur): kritik DB-nin sinx-replikası, periodik yoxlamalar failover.
  • Active-active oxu/regional marşrutlaşdırma üçün.
  • Rezerv: backup (Velero), rehearsal bərpa.

13) iGaming spesifikasiyası

Ödənişlər/cüzdan: p95 ≤ 300-500 ms, fərdi hovuzlar və ciddi PDB; canary 1→5→10%.
Lobbi/məzmun: təcavüzkar HPA RPS/INP, qızdırılmış görüntülər/vektor önbellək.
Canlı oyunlar/streams: LC/minimum retras, uzun müddət yuva, sticky əlaqə.
Komplayens: Sərt Policy ilə Neymspace, KMS vasitəsilə sirləri, Helm buraxılışlarında dəyişikliklərin auditi.
Məsuliyyətli oyun: limit/bloklama xidməti - prioritet trafik (siyasət üzrə fail-open/close).

14) Çek vərəqləri

Xidmətin hesablanmasından əvvəl

  • Multi-stage image, USER nonroot, imza cosign, tarama keçdi.
  • Xarici menecerdən Requests/limits, probes, env/secret.
  • PDB, `maxUnavailable ≤ 1`, graceful shutdown.
  • SLO/alertlər, hava kilidindən DB-yə qədər izləmə.
  • Kanarya sxemi və geri dönüş planı.
  • OPA/Kyverno siyasətçiləri keçir (no root, no hostPath, no: latest).

Klaster/platforma

  • CNI və NetworkPolicy daxildir; mTLS (mesh) lazım olan yerdə.
  • StorageClass/retenshn, backup/restore yoxlanılır.
  • HPA/VPA/KEDA xüsusi; Cluster Autoscaler и warm-pool.
  • RBAC minimum, audit daxildir, sirləri - KMS.
  • GitOps: anbarda charts/manifests, PR baxış tələb olunur.

15) Anti-nümunələr

Şəkillər 'latest', root-istifadəçi, «qalın» əsas təbəqələr.
No 'requests/limits' → eviksiya/trottling.
Readiness = liveness.
taints olmadan bir hovuz statful/statateless qarışdırılması.
expand-and-contract olmadan «alın» sxemləri miqrasiya.
Regional təcrid olmadan «bütün bazarlara» yeganə klaster.
PII/PAN ilə log, ConfigMap sirləri.
PDB/drenaj yoxluğu → zirvələrdə və yeniləmələrdə qırılma.

16) Platformanın metrikası (minimum)

Кластер: CPU/mem requests vs allocatable, pod-churn, node-pressure.
Şəbəkə: p95 per-route, 4xx/5xx, reset/timeout, retry-rate, mTLS səhvləri.
Saxlama: IOPS/latency, queue-depth, CSI səhvləri.
Avtoskeyl: HPA decisions, CA events, qızma vaxtı.
Biznes: TTP, TtW, FTD-success, provayder tərəfindən ödəniş rədd.
Təhlükəsizlik: OPA uyğunsuzluqları, imzalanmamış şəkillər, vaxtı keçmiş sirlər.

17) Manifestlərin nümunələri

Deployment (API, kanarya label)

yaml apiVersion: apps/v1 kind: Deployment metadata: { name: wallet-api, labels: { app: wallet, track: stable } }
spec:
replicas: 4 strategy: { type: RollingUpdate, rollingUpdate: { maxSurge: 1, maxUnavailable: 1 } }
selector: { matchLabels: { app: wallet, track: stable } }
template:
metadata: { labels: { app: wallet, track: stable } }
spec:
serviceAccountName: wallet-sa containers:
- name: api image: registry. local/wallet/api@sha256:...
ports: [{ containerPort: 8080 }]
resources:
requests: { cpu: "250m", memory: "256Mi" }
limits:  { cpu: "500m", memory: "512Mi" }
readinessProbe: { httpGet: { path: /readyz, port: 8080 }, periodSeconds: 5 }
livenessProbe: { httpGet: { path: /healthz, port: 8080 }, initialDelaySeconds: 20 }
securityContext:
runAsNonRoot: true readOnlyRootFilesystem: true

PDB (cüzdan)

yaml apiVersion: policy/v1 kind: PodDisruptionBudget spec:
minAvailable: 3 selector: { matchLabels: { app: wallet } }

HPA (custom-metrics vasitəsilə RPS üzrə)

yaml apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler spec:
minReplicas: 4 maxReplicas: 40 metrics:
- type: Pods pods:
metric:
name: http_requests_per_second target:
type: AverageValue averageValue: "50"

18) Tətbiq prosesi (sprintlər üzrə)

1. Görüntülərin yığılması və təhlükəsizliyi: multi-stage, SBOM, imzalar, admission siyasəti.
2. k8s baza platforması: CNI, Ingress/Gateway, monitorinq/log/treys, StorageClass.
3. CI/CD və GitOps: Helm-charts, mühit, canary/rollback, sxemlərin miqrasiyası.
4. Skale və sabitlik: HPA/VPA/KEDA, PDB, node-hovuzlar, taints/affinity, DR planı.

Yekun şparqalka

Nazik, imzalanmış şəkillər + tolerantlıq siyasəti = təhlükəsizlik əsası.
Nümunələr, resurslar, PDB, drain = buraxılışların davamlılığı.
HPA/VPA/KEDA + tuning hovuzları = heç bir «çökmə» miqyaslı.
Gateway/Ingress + mTLS/OPA = təhlükəsiz perimetr və daxili əlaqə.
Observability + SLO + GitOps = idarə olunan dəyişikliklər.
Regional izolyasiya və DR = uyğunluq və uğursuzluğa davamlılıq.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

Telegram
@Gamble_GC
İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.