کانتینری و ارکستراسیون
1) چرا ظروف و k8s در iGaming
نرخ تغییر: تصاویر قابل پیش بینی، خط لوله CI/CD تک.
ثبات: خودکار راه اندازی مجدد، مقیاس افقی، خود شفا.
جداسازی داده ها/منطقه: فضای نام/خوشه تحت حوزه های قضایی.
استانداردهای عملیاتی: سیاست های منابع، تک ورود/معیارها/مسیرهای پیاده روی.
هنگامی که مورد نیاز نیست: یک تیم کوچک، 2-3 سرویس، نسخه های نادر - با PaaS/مونولیت مدولار شروع می شود.
2) تصاویر و ثبت (OCI/Docker)
2. 1 تصویر مجمع - اصول
چند مرحله ای: build → زمان اجرا (تصاویر پایه نازک «distroless»، «alpine» با احتیاط).
تکرارپذیری: fix versions/sha256, 'COPY --chown', '--mount = type = cache' در BuildKit.
SBOM و امضا: 'cosign sign/verify', 'slsa provenance', 'signed only' policy.
Slim-down: ابزارهای توسعه را حذف کنید، شامل 'USER nonroot'، 'readOnlyRootFilesystem'.
مثال Dockerfile (گره. ج)
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 ثبت و سیاست ها
رجیستری خصوصی + geo-replica (EU/NA) برای کاهش تاخیر و انطباق GDPR.
حفظ/ایمنی - جلوگیری از بازنویسی برچسب ها، گرم کردن کش در PoP.
کنترل پذیرش: فقط تصاویر امضا شده/اسکن شده (cosign + Trivy/Grype).
3) ارکستراسیون: الگوهای اساسی Kubernetes
3. 1 اولیه
استقرار - خدمات بدون حالت (لابی، API).
StatefulSet - کیف پول/صف/ذخیره سازی (نام ثابت، حجم پایدار).
DaemonSet - عوامل ورود/اجزای شبکه.
شغل/CronJob - مهاجرت، گزارش، ETL.
3. ۲ منابع و QoS
Specify «requests/limits» (CPU/Memory) → کلاس های QoS و برنامه ریزی قابل پیش بینی.
فقط در جایی که آگاه است قابل انفجار است ؛ انتقادی - تضمین شده
محل غلاف پرداخت بحرانی در استخر اختصاص داده شده (tains/تحمل, گره وابستگی).
3. 3 پایداری و انتشار
Probes: «راه اندازی»، «زنده بودن»، «آمادگی» (با زمان و دوره).
رول: 'maxSurge/maxUnavailable'، через قناری вес в ورود/دروازه/سرویس مش.
PDB (PodDisruptionBudget) + خاموش شدن برازنده (قلاب PreStop، 'TerminationGracePeriodSeconds').
گره های تخلیه/کوردون برای ارتقاء.
4) شبکه: CNI، خدمات، ترافیک ورودی
4. 1 لایه CNI
Calico/Cilium/Weave - NetworkPolicy، eBPF برای عملکرد.
قوانین بین فضایی: حداقل خروج/ورود مورد نیاز است.
4. 2 خدمات و ورود
سرویس: 'ClusterIP/NodePort/LoadBalancer'.
ورود یا دروازه API برای L7: مسیر/هدر/مسیرهای میزبان، TLS، وزن قناری.
mTLS درون خوشه: از طریق سرویس مش (Istio/Linkerd) - رهگیری TLS و سیاست.
مثال HTTPRoute (دروازه API، وزن قناری)
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) ذخیره سازی: CSI/PV/PVC، کلاس های حجم
ارائه دهنده درایور CSI (EBS/PD/حق بیمه SSD) + 'storageClass' با پارامترهای عملکرد.
RWX برای به اشتراک گذاری (NFS/FSx/Filestore) - مراقب قفل ها باشید.
پشتیبان گیری/بازیابی: Velero/Kasten، عکس های دوره ای، بررسی بازیابی.
رمزگذاری سطح دیسک و سطح پایگاه داده (KMS).
6) مقیاس خودکار: HPA/VPA/KEDA
HPA (توسط CPU/RAM/معیارهای سفارشی - RPS، P95): برای API/لابی.
VPA (توصیه/خودکار) - برای کارگران پایدار.
KEDA (رویداد محور) - مقیاس توسط صف کافکا/SQS/Redis, Cron-shedula.
خوشه خودکار - گره های بار ؛ استخرهای گرم برای قله (مسابقات/جریان).
7) سرویس مش (در صورت لزوم)
سیاست های mTLS/ servis↔servis، مجوز هویت (SPIFFE).
قطع کننده مدار/وقفه/تلاش مجدد، تخلیه خارج، سایه.
تله متری خارج از جعبه: معیارهای یکنواخت و آهنگ.
استفاده از جایی که شما نیاز به مدیریت ترافیک ظریف (پرداخت، ارائه دهندگان بازی).
8) امنیت: اسرار، سیاست، انطباق
اسرار: مدیر خارجی (AWS/GCP/Azure KMS، اسرار خارجی)، چرخش.
Policy-as-code: OPA/Gatekeeper/Kyverno - deny ': latest', root-USER, hostPath, privileges.
افزایش حقوق: فضاهای نام + RBAC، Dev/Stage/Prod تقسیم، حسابرسی.
امنیت تصویر: اسکن در CI/CD، امضای (cosign)، پذیرش با امضا.
mTLS و JWT در داخل (مش)، ورودی WAF/Rate-limit (ورودی/دروازه).
9) قابلیت مشاهده و SLO
معیارها: Prometheus/OpenTelemetry، p50/95/99، 4xx/5xx، اشباع.
سیاهههای مربوط: JSON ساختاری → Loki/الاستیک، PII/PAN/IBAN پوشش.
آثار: OTLP → سرعت/Jaeger ؛ «trace _ id» از دروازه می آید.
SLO: به عنوان مثال "سپرده p95 ≤ 300 میلی ثانیه، موفقیت ≥ 98. 5٪ "، هشدار سوختگی نرخ.
Proactivity: داشبورد در هر سرویس/در هر مسیر، نگهبان DLQ و صف عقب مانده است.
10) CI/CD، هلم، GitOps
CI: لاینترها، تست ها (واحد/قرارداد/ادغام)، SAST/DAST، SBOM.
Helm/Jsonnet/Kustomize: نمودارهای اعلانی با "مقادیر. در محیط ها
GitOps (ArgoCD/Flux): تک منبع حقیقت، بررسی آشکار PR، دکمه برگشت.
استراتژی: آبی سبز، قناری، سایه ؛ مهاجرت طرح - گسترش و قرارداد.
مقادیر قطعه. yaml (منابع/نمونه ها)
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) برنامه ریزی و جداسازی
NodePools: پرداخت/کیف پول را به گره های «سر و صدای کم» با دیسک سریع جدا کنید.
Tains/Tolerations: استخرهای محافظت شده برای بارهای بحرانی.
(ضد) وابستگی: کپی های اسمیر توسط منطقه/گره (HA).
ResourceQuota/LimitRange در فضای نام - حفاظت در برابر «همسایگان پر سر و صدا».
12) چند طبقه، چند منطقه، DR
تقسیم توسط صلاحیت: اتحادیه اروپا/LatAm/ROW خوشه ؛ داده های محلی - محلی
ورودی GSLB/Anycast، قابلیت مشاهده در هر کلاس و هشدارها.
سطح DR:- آماده به کار گرم (توصیه می شود): کپی از پایگاه داده های بحرانی، چک های دوره ای شکست خورده.
- فعال برای خواندن/مسیریابی منطقه ای فعال است.
- پشتیبان گیری: پشتیبان گیری (Velero)، بازیابی تمرین.
13) ویژگی iGaming
پرداخت/کیف پول: p95 ≤ 300-500 میلی ثانیه، استخر های فردی و PDB سخت ؛ قناری 1 → 5 → 10٪.
لابی/محتوا: HPA تهاجمی توسط RPS/INP، تصاویر گرم/حافظه پنهان بردار.
بازی های زنده/جریان: LC/حداقل retrays، timeouts سوکت طولانی، چسبنده در اتصال.
انطباق: neimspaces با سیاست های سخت، اسرار از طریق KMS، ممیزی تغییرات در نسخه های Helm.
بازی مسئول: محدود کردن/مسدود کردن سرویس - ترافیک اولویت (شکست باز/بسته شدن توسط سیاست).
14) چک لیست
قبل از ارائه خدمات
- تصویر چند مرحله ای، کاربر غیر ریشه، امضا cosign، اسکن گذشت.
- درخواست ها/محدودیت ها، پروب ها، ENV/راز از مدیر خارجی.
- PDB، «maxUnavailable ≤ 1»، خاموش شدن برازنده.
- SLO/هشدار، ردیابی از دروازه به DB.
- الگوی قناری و طرح برگشت.
- خط مشی OPA/Kyverno عبور می کند (بدون ریشه، بدون hostPath، نه: آخرین).
خوشه/پلت فرم
- CNI و NetworkPolicy را فعال کنید ؛ mTLS (مش) در صورت لزوم.
- StorageClass/retention، پشتیبان گیری/بازیابی بررسی شده است.
- HPA/VPA/KEDA پیکربندی شده است ؛ خوشه خودکار и استخر گرم.
- RBAC حداقل است، حسابرسی فعال است، اسرار از KMS هستند.
- GitOps: نمودار/آشکار در مخزن, بررسی روابط عمومی مورد نیاز.
15) ضد الگوهای
'Latest' images، کاربر ریشه، لایه های پایه ضخیم.
No 'requests/limits' → اخراج/خفه کردن.
آمادگی = زنده بودن
مخلوط کردن حالت/بدون حالت در همان استخر بدون لکه.
مهاجرت از طرح های «سر در» بدون گسترش و قرارداد.
تنها خوشه «به تمام بازارها» بدون انزوای منطقه ای.
سیاهههای مربوط با PII/PAN، اسرار در ConfigMap.
فقدان PDB/زهکشی → شکسته در قله و در طول ارتقاء.
16) معیارهای پلت فرم (حداقل)
Кластер: درخواست CPU/MEM در مقابل تخصیص، غلاف churn، گره فشار.
شبکه: p95 در هر مسیر، 4xx/5xx، تنظیم مجدد/زمان بندی، نرخ مجدد، خطاهای mTLS.
ذخیره سازی: IOPS/latency، عمق صف، خطاهای CSI.
مقیاس خودکار: تصمیمات HPA، رویدادهای CA، زمان گرم شدن.
کسب و کار: TTP، TtW، FTD-success، امتناع از پرداخت در ارائه دهنده.
امنیت: ناسازگاری OPA، تصاویر بدون امضا، اسرار منقضی شده.
17) نمونه هایی از مانیفست ها
استقرار (API، برچسب قناری)
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 (کیف پول)
yaml apiVersion: policy/v1 kind: PodDisruptionBudget spec:
minAvailable: 3 selector: { matchLabels: { app: wallet } }
HPA (از طریق RPS از طریق معیارهای سفارشی)
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) فرآیند پیاده سازی (با سرعت)
1. مونتاژ تصویر و امنیت: چند مرحله ای، SBOM، امضا، سیاست پذیرش.
2. پلت فرم پایه k8s: CNI، ورود/دروازه، نظارت/سیاهههای مربوط/مسیرهای پیاده روی، StorageClass.
3. CI/CD و GitOps: نمودارهای Helm، چهارشنبه ها، canary/rollback، مهاجرت طرح.
4. مقیاس و انعطاف پذیری: HPA/VPA/KEDA، PDB، استخر گره، tains/affinity، طرح DR.
برگه تقلب نهایی
تصاویر نازک، امضا شده + سیاست پذیرش = پایه امنیتی.
نمونه ها، منابع، PDB، تخلیه = استحکام آزاد.
HPA/VPA/KEDA + استخر تنظیم = مقیاس بدون drawdown.
Gateway/Ingress + mTLS/OPA = محیط امن و مخابره داخل ساختمان.
قابلیت مشاهده + SLO + GitOps = تغییرات مدیریت شده
انزوای منطقه ای و DR = انطباق و تحمل خطا.