Konteynerleştirme ve orkestrasyon
1) Neden iGaming'de kaplar ve k8s
Değişim oranı: öngörülebilir görüntüler, tek CI/CD boru hattı.
Kararlılık: otomatik yeniden başlatmalar, yatay ölçek, kendi kendini iyileştirme.
Veri/bölge yalıtımı: yetki alanları altındaki ad alanları/kümeler.
Operasyonel standartlar: kaynak politikaları, tek günlük/metrikler/yollar.
Gerekmediğinde: Küçük bir ekip, 2-3 servis, nadir sürümler - PaaS/modüler monolit ile başlayın.
2) Görüntüler ve kayıtlar (OCI/Docker)
2. 1 Görüntü Assembly - İlkeler
Çok aşamalı: derleme - çalışma zamanı (ince taban görüntüleri 'distroless', 'alpine' dikkatli).
Tekrarlanabilirlik: düzeltme sürümleri/sha256, BuildKit'te 'COPY --chown', '--mount = type = cache'.
SBOM ve imza: 'cosign sign/verify', 'slsa provenance', 'signed only' politikası.
Slim-down: delete dev-tools, include 'USER nonroot', 'readOnlyRootFilesystem'.
Örnek Dockerfile (Düğüm. 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 Kayıtlar ve politikalar
Gecikme süresini ve GDPR uyumluluğunu azaltmak için özel kayıt defteri + coğrafi kopyalar (EU/NA).
Tutma/bağışıklık - etiketlerin üzerine yazılmasını önleyin, önbelleği PoP'da ısıtın.
Kabul kontrolü: sadece imzalı/taranmış görüntüler (cosign + Trivy/Grype).
3) Orkestrasyon: temel Kubernetes desenleri
3. 1 İlkeller
Dağıtım - durumsuz hizmetler (lobi, API).
StatefulSet - cüzdan/kuyruklar/depolama (sabit ad, kararlı birimler).
DaemonSet - günlük ajanları/ağ bileşenleri.
Job/CronJob - geçişler, raporlar, ETL.
3. 2 Kaynaklar ve QoS
'Yeniden görevler/sınırlar' (CPU/Bellek) belirtiniz. ^ QoS sınıfları ve öngörülebilir zamanlama.
Sadece bilinçli olduğu yerde patlayabilir; Kritik - Garantili.
Özel havuzlara kritik ödeme bölmeleri yerleştirin (ağrılar/tolerasyonlar, düğüm afinitesi).
3. 3 Sürdürülebilirlik ve sürümler
Problar: 'startup', 'liveness', 'readiness' (zaman aşımları ve periyotlarla).
Kullanıma sunma: 'maxSurge/maxUnavailable', kanarya через вес в Giriş/Ağ Geçidi/Servis Mesh.
PDB (PodDisruptionBudget) + zarif kapatma (PreStop kancası, 'terminationGracePeriodSeconds').
Yükseltmeler için drenaj/kordon düğümleri.
4) Ağ: CNI, hizmetler, giriş trafiği
4. 1 CNI katmanı
Calico/Cilium/Weave - NetworkPolicy, performans için eBPF.
Boşluklar arası kurallar: minimum gerekli çıkış/giriş.
4. 2 Hizmetler ve oturum açma
Servis: 'ClusterIP/NodePort/LoadBalancer'.
L7 için Ingress veya Gateway API: path/header/host routes, TLS, canary weights.
Küme içindeki mTLS: servis ağı üzerinden (Istio/Linkerd) - TLS ve politikanın ele geçirilmesi.
HTTPRoute Örneği (Ağ Geçidi API, Kanarya Ağırlığı)
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) Depolama: CSI/PV/PVC, hacim sınıfları
Sağlayıcı CSI sürücüleri (EBS/PD/Premium SSD) + performans parametrelerine sahip 'storageClass'.
Paylaşım için RWX (NFS/FSx/Filestore) - kilitlere dikkat edin.
Yedekleme/geri yükleme: Velero/Kasten, periyodik anlık görüntüler, kurtarma kontrolü.
Disk düzeyinde ve veritabanı düzeyinde (KMS) şifreleme.
6) Otomatik ölçeklendirme: HPA/VPA/KEDA
HPA (CPU/RAM/özel metriklere göre - RPS, p95): API/lobi için.
VPA (öneriler/otomatik) - istikrarlı işçiler için.
KEDA (olay odaklı) - Kafka/SQS/Redis kuyrukları, Cron-shedula tarafından ölçek.
Küme Otomatik Alıcı - yük düğümleri; Zirveler için sıcak havuzlar (turnuvalar/akışlar).
7) Servis-mesh (gerekirse)
mTLS/ servis↔servis politikaları, kimlik doğrulama (SPIFFE).
Devre kesici/zaman aşımı/yeniden deneme, aykırı-çıkarma, gölge.
Kutudan çıkan telemetri: tek tip metrikler ve izler.
İnce trafik yönetimine ihtiyacınız olan yerlerde kullanın (ödemeler, oyun sağlayıcıları).
8) Güvenlik: Sırlar, Politika, Uyum
Sırlar: Harici yönetici (AWS/GCP/Azure KMS, Harici Sırlar), rotasyon.
Kod olarak ilke: OPA/Gatekeeper/Kyverno - deny ': latest', root-USER, hostPath, ayrıcalıklar.
Hakların yükseltilmesi: Ad alanları + RBAC, Dev/Stage/Prod bölünmesi, denetim.
Görüntü Güvenliği: CI/CD'de tarama, imzalama (cosign), imza ile kabul.
mTLS ve JWT içi (kafes), WAF/Oran sınırı girişi (Giriş/Ağ Geçidi).
9) Gözlemlenebilirlik ve SLO
Metrikler: Prometheus/OpenTelemetry, p50/95/99, 4xx/5xx, saturasyonlar.
Loglar: yapısal JSON, Loki/Elastic, PII/PAN/IBAN maskeleme.
İzler: OTLP - Tempo/Jaeger; 'trace _ id' ağ geçidinden geliyor.
SLO: örneğin 'Mevduat p95 ≤ 300 ms, başarı ≥ 98. %5 ', yanma oranını uyarır.
Proaktivite: servis başına/rota başına gösterge panoları, DLQ watchdog ve kuyruk gecikmeleri.
10) CI/CD, Dümen, GitOps
CI: linters, testler (birim/sözleşme/entegrasyon), SAST/DAST, SBOM.
Dümen/Jsonnet/Kustomize: 'değerleri olan bildirimsel çizelgeler. 'ortamlar üzerine.
GitOps (ArgoCD/Flux): gerçeğin tek kaynağı, PR manifesto incelemesi, geri alma düğmesi.
Stratejiler: mavi-yeşil, kanarya, gölge; Şema geçişleri - genişlet ve sözleşme.
Değerler parçası. yaml (kaynaklar/örnekler)
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) Planlama ve izolasyon
NodePools: Ödemeleri/cüzdanı hızlı diske sahip "düşük gürültülü" düğümlere ayırın.
Tains/Tolerations: Kritik yükler için korumalı havuzlar.
(Anti-) Afinite: Bölge/düğüm (HA) ile smear kopyaları.
ResourceCota/LimitRange ad alanlarında - "gürültülü komşular'a karşı koruma.
12) Çok amaçlı, çok bölgeli, DR
Yargı yetkisine göre bölünme: AB/LatAm/ROW kümeleri; Yerleşik veriler - yerel olarak.
GSLB/Anycast girişi, sınıf başına gözlemlenebilirlik ve uyarılar.
- Sıcak bekleme (önerilen): Kritik veritabanlarının kopyası, periyodik yük devretme kontrolleri.
- Okuma/bölgesel yönlendirme için aktif-aktif.
- Yedekleme: Yedekleme (Velero), prova kurtarma.
13) iGaming özgüllüğü
Ödemeler/cüzdan: P95 ≤ 300-500 ms, bireysel havuzlar ve sıkı PDB; Kanarya 1 - 5 - 10 %.
Lobi/içerik: RPS/INP tarafından agresif HPA, ısıtılmış görüntüler/vektör önbelleği.
Canlı oyunlar/akışlar: LC/minimum retrays, uzun soket zaman aşımları, bağlantı üzerinde yapışkan.
Uyumluluk: Zorlu Politikaya sahip yeni alanlar, KMS aracılığıyla sırlar, Helm sürümlerindeki değişikliklerin denetimi.
Sorumlu oyun: limit/engelleme hizmeti - öncelikli trafik (politikaya göre fail-open/close).
14) Kontrol listeleri
Hizmeti vermeden önce
- Çok aşamalı görüntü, KULLANICI köksüz, cosign imza, tarama geçti.
- Harici yöneticiden istekler/sınırlar, problar, env/gizli.
- PDB, 'maxUnavailable ≤ 1', zarif kapatma.
- SLO/uyarılar, DB ağ geçidinden izleme.
- Kanarya deseni ve geri dönüş planı.
- OPA/Kyverno politikaları geçer (root yok, hostPath yok, no: latest).
Küme/Platform
- CNI ve NetworkPolicy etkin; Gerektiğinde mTLS (mesh).
- StorageClass/retention, backup/restore check.
- HPA/VPA/KEDA yapılandırılmış; Cluster Autoscaler и sıcak havuz.
- RBAC minimumdur, denetim etkindir, sırlar KMS'dendir.
- GitOps: charts/manifests in repository, PR review required.
15) Anti-desenler
'Son' görüntüler, kök kullanıcı, kalın taban katmanları.
'Görevler/sınırlar' yok - tahliyeler/kısma.
Hazırlık = canlılık.
Statefull/stateless'ı aynı havuzda boyasız karıştırmak.
Planların göçleri "kafa kafaya" genişleme ve sözleşme olmadan.
Bölgesel izolasyon olmadan'tüm pazarlara'tek küme.
PII/PAN ile günlükleri, ConfigMap sırları.
PDB/drenaj eksikliği - zirvelerde ve yükseltmeler sırasında kırılır.
16) Platform metrikleri (minimum)
Кластер: CPU/mem istekleri vs allocatable, pod-churn, node-pressure.
Ağ: p95 rota başına, 4xx/5xx, sıfırlama/zaman aşımı, yeniden deneme hızı, mTLS hataları.
Depolama: IOPS/gecikme, kuyruk derinliği, CSI hataları.
Autoscale: HPA kararları, CA olayları, ısınma süresi.
İş: TTP, TtW, FTD-başarı, sağlayıcı ödemelerin reddi.
Güvenlik: OPA tutarsızlıkları, imzalanmamış görüntüler, süresi dolmuş sırlar.
17) Manifesto örnekleri
Dağıtım (API, kanarya etiketi)
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 (özel metrikler aracılığıyla RPS aracılığıyla)
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) Uygulama süreci (sprintlerle)
1. Görüntü montajı ve güvenlik: çok aşamalı, SBOM, imzalar, kabul politikası.
2. Temel platform k8s: CNI, Ingress/Gateway, izleme/günlükler/yollar, StorageClass.
3. CI/CD ve GitOps: Dümen grafikleri, çarşamba günleri, kanarya/geri dönüş, şema geçişleri.
4. Ölçek ve esneklik: HPA/VPA/KEDA, PDB, düğüm havuzları, ağrı/afinite, DR planı.
Son hile sayfası
İnce, imzalı görüntüler + kabul politikası = güvenlik temeli.
Örnekler, kaynaklar, PDB, drain = release sağlamlığı.
HPA/VPA/KEDA + ayar havuzları = düşüşler olmadan ölçek.
Ağ Geçidi/Giriş + mTLS/OPA = güvenli çevre ve interkom.
Gözlemlenebilirlik + SLO + GitOps = Yönetilen Değişiklikler.
Bölgesel izolasyon ve DR = uyum ve hata toleransı.