Logo GH

عملیات و → مدیریت مقیاس زیرساخت های عملیاتی

مقیاس زیرساخت عملیاتی

1) چرا و چه چیزی «مقیاس» در نظر گرفته شده است

مقیاس پذیری توانایی سیستم برای افزایش توان (RPS/TPS، اتصالات، IOPS، توان) و حجم داده بدون از دست دادن SLO و با هزینه کنترل شده است. برای iGaming/fintech، این به طور مستقیم در مورد پول است: تبدیل سپرده/شرط، بازی های زنده و حل و فصل.

اهداف:
  • SLO ها را در رشد بار X برابر و قله های فصلی نگه دارید.
  • زمان مقیاس قابل پیش بینی (دقیقه، نه ساعت) را فراهم کنید.
  • صرفه جویی در اقتصاد: هزینه/RPS، هزینه/معامله، هزینه/رویدادهای 1k.

2) اصول پلت فرم مقیاس پذیر

1. افقی اول: تقسیم به خدمات کوچک و بدون دولت ؛ وضعیت - در خوشه های داده.
2. فشار برگشتی و صف: انفجار صاف، حفاظت در برابر «طوفان».
3. ذخیره سازی در تمام لایه ها: مشتری/لبه/سرویس/پایگاه داده.
4. Idempotence و تکرارپذیری: عقب نشینی امن، outbox، dedup.
5. وابستگی های محدود: وقفه ها، قطع کننده ها، انزوا در دیوار، محدودیت های نرخ.
6. قابلیت مشاهده توسط سیگنال های ظرفیت: headroom، p95/p99، تاخیر، اتصالات، سهمیه.
7. مقیاس خودکار با ریل های گارد: HPA/VPA/Cluster Autoscaler + شرایط توقف.
8. چند منطقه با طراحی: مناطق انفجار مستقل، داده های محلی، fylovers پایدار.

3) برنامه ریزی ظرفیت: چگونه «محاسبه چقدر شما نیاز دارید»

ورودی های مدل: TPS پیک هدف، مشخصات ترافیک (ساعتی)، «مسیرهای بحرانی»، نسبت های ضربه کش، بارهای متوسط، SLO ها و محدودیت های ارائه دهنده.

ارزیابی سریع (قاعده کلی):
  • RPS → CPU/pods: 'pods = RPS p99_time/effective _ CPU _ in _ pod' (با حاشیه 30-50٪).
  • صف ها: "minimum _ speed _ of _ consumers ≥ peak _ speed _ of _ producers 1. 2`.
  • اتصالات DB: 'max _ conns = active _ service _ pools medium _ pool _ size 1. 3`.
  • کش: اندازه = «مجموعه کار گرم در N دقیقه» + حاشیه 20-30٪.
  • خروج/CDN: اوج خروج = اوج درخواست متوسط اندازه پاسخ (در نظر گرفتن فشرده سازی).

اتاق سر: هدف 20-40٪ در اوج (توسط لایه). زیر 15٪ → ماشه «افزایش ظرفیت».

4) لایه ها و الگوهای پوسته پوسته شدن

4. 1 لبه/CDN/WAF

ذخیره سازی لبه (TTL + SWR)، تعادل جغرافیایی، فشرده سازی، HTTP/2/3.
محدودیت نرخ در محیط توسط IP/JWT/کلید، حفاظت از افزایش.
طرفداران رویداد (jackpots، هشدارهای زنده) از طریق کارگزاران/کانال های میخانه/زیر.

4. 2 Backend-for-Frontend API دروازه

مقیاس افقی توسط statles، استخرهای اختصاصی توسط downstreams.
HPA با معیارهای تجاری: RPS، P99، صف استخر کار - نه فقط CPU.

4. 3 صف های ناهمزمان/جریان (کافکا/خرگوش/پولسار)

مقیاس توسط احزاب و مصرف کنندگان ؛ اجتناب از انحراف (کلید و توزیع).

هشدار تاخیر + مقیاس خودکار مصرف کنندگان ؛ DLQ و موضوعات مجدد

حفظ تحت SLA آشتی و پخش مجدد.

4. 4 حافظه پنهان (Redis/Memcached)

حالت های خوشه ای، کپی، سیاست های تخلیه (LFU)، چند منظوره، خط لوله.
جداسازی وظایف کلید داغ و پس زمینه، محدودیت های مشتری و سیاست حداکثر حافظه.

4. 5 پایگاه داده ها

خواندن کپی و خواندن مسیریابی، اتصال اتصال.
شاردینگ توسط منطقه/مستاجر/محدوده کلیدی.
CQRS: به استاد/رهبر می نویسد، به کپی می خواند.
Indexing and batch-writing workflows (خروجی → جریان → سینک).
بایگانی و داده های گرم/سرد (tiering).

4. 6 فروشگاه فایل/شیء

Multithreading، دانلود چند بخش، CDN جلو، تحولات ناهمزمان.
سهمیه ارائه دهنده، تمیز کردن دم و بودجه خروج.

4. 7 ارائه دهندگان (PSP/KYC/استودیو)

چند فروشنده و نقل قول/SLO/هزینه مسیریابی.
قطع کننده مدار + نرخ محدود برای هر ارائه دهنده, retray صف, «حالت فضل».

5) ریل های خودکار و گارد

کوبرنتیز:
  • HPA: метрики 'rps _ per _ pod', 'queue _ depth', 'p99 _ latency'; 'targetAverageValue'.
  • VPA: دستورالعمل منابع ؛ به روز رسانی از قله.
  • خوشه Autoscaler: نقطه + بر روی تقاضا پروفایل با اولویت.
  • PodDisruptionBudget/TopologySpreadConstraints: یکنواخت در سراسر مناطق.
  • LimitRange/ResourceQuota: حفاظت در برابر خستگی های «مست».
شبه مانیفست HPA:

apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler spec:
scaleTargetRef: {apiVersion: apps/v1, kind: Deployment, name: api-gw}
minReplicas: 8 maxReplicas: 200 metrics:
- type: Pods pods:
metric:
name: rps_per_pod target:
type: AverageValue averageValue: "120"
- type: Pods pods:
metric:
name: p99_latency_ms target:
type: AverageValue averageValue: "280"
behavior:
scaleUp:
stabilizationWindowSeconds: 90 scaleDown:
stabilizationWindowSeconds: 300
گاردریل (نمونه):
  • «مکث و برگشت»، اگر با قناری p99> 1. 3 × پایه 10 دقیقه.
  • «یخ مقیاس پایین» در زمان نخست، فقط مقیاس بالا.
  • «توقف تلاش مجدد» در 'open _ circuit = 1' به تنگناها.

6) چند منطقه: دارایی/دارایی و دارایی/بدهی

مناطق انفجار جدا شده: خوشه های مستقل، اسرار/سهمیه های محلی.
مسیریابی جهانی: latency-/geo-based، health-probes، override دستی.

داده ها:
  • داغ - به صورت محلی + تکرار احتمالی (جریان).
  • معاملات بحرانی - سازگار با دامنه (دفتر کل/تعادل).
  • کتابهای پخش Failover: تغییر منبع گام به گام، TTL، کش های گرم کردن.
  • تنظیم ورزش (DR): تمرینات سه ماهه با اهداف RTO/RPO.

7) الگوهای شبکه و خدمات

مش سرویس: mTLS، retry/breaker، تشخیص بیرونی، محدودیت های هر پایین دست.
eBPF/مشاهده پذیری در L4/L7، محدودیت اتصال، حفاظت از سر خط.
دروازه های API داخلی برای S2S، محدودیت نرخ عمومی و حسابرسی.
VPC/subnets توسط مناطق انفجار، کنترل NAT/Egress، با فروشندگان همکاری می کند.

8) عملکرد: تست ها و اثبات ها

بار و استرس در زمان اولیه + مشخصات بدترین مورد.
خیس (طولانی) - نشت حافظه/توصیف، رشد تاخیر.
هرج و مرج/بازی روز: کارگزار/ارائه دهنده/قطره منطقه، «ارائه دهنده آهسته».
رگرسیون Perf در CI: مجموعه ای از سناریوهای مرجع و دروازه های اتوماتیک.

ماتریس مینی سناریو:
سناریو هاهدف از طراحیآستانه ها
سپرده TPS × 2اوج پرداختp99 ≤ 350ms، SR ≥ 99. 5%
پخش برنده تمام پولهااز دست دادن فناتصالات WS ≤ 90٪ محدودیت، بدون قطره
کاهش سرعت KYCارائه دهنده خارجیتخریب خودکار + Feilover ≤ 2 دقیقه

9) داده ها و ذخیره سازی: استراتژی های رشد

رشد عمودی تا سقف → افقی/شاردینگ.
خواندن → ماکت/کش; سوابق → batch/asynchron/log.
مهاجرت طرح: گسترش → مهاجرت → قرارداد, هیچ قفل جهانی.
بایگانی: دسته های سرد برای ذخیره سازی ارزان + هیدراتاسیون مجدد بر روی تقاضا.
جستجو: شاخص های فردی (OpenSearch/Solr) با خط لوله به روز رسانی افزایشی.

10) مدیریت ارائه دهندگان و سهمیه

کارت سهمیه (TPS، پنجره ها، هزینه) ؛ استفاده از هشدارها _ نسبت> 0. 9`.
مسیریابی با هزینه/کیفیت (مسیریابی هوشمند).
OLA ↔ موافقت نامه های SLO و روند افزایش سهمیه.
استخر جایگزین و «داغ» تعویض.

11) سیگنال های قابل مشاهده و مقیاس پذیری

معیارها (حداقل):
  • ظرفیت headroom по слоям ؛ 'صف _ تاخیر/رشد عقب مانده' ؛ 'kafka ISR' ؛ 'اتصالات db '/' repl تاخیر' ؛ 'redis اخراج' ؛ 'open _ circuit '/' retry _ rate' ؛ 'quota _ usage'.
  • معیارهای کسب و کار: نرخ موفقیت/تبدیل سپرده، زمان شروع بازی.
  • هزینه: هزینه/RPS، هزینه/1k تماس.
داشبورد:
  • بررسی ظرفیت (سر و صدا، خطرات بالا، SLO سوختگی).
  • پانل جریان و صف (تاخیر/عقب ماندگی، اشباع مصرف کننده).
  • DB & Cache (P99، اتصالات، ضربه/اخراج).
  • ارائه دهندگان و نقل قول (TPS، زمان، هزینه، تعویض).
  • تغییر ایمنی (قبل/بعد از انتشار، قناری، autogates).
هشدارها (ایده ها):

ALERT HeadroomLowAPI
IF capacity_headroom{layer="api"} < 0. 15 FOR 10m

ALERT KafkaBacklogAtRisk
IF (consumer_lag > 5e6 AND rate(consumer_lag[5m]) > 5e4) AND (hpa_desired == hpa_max) FOR 10m

ALERT DBConnectionsNearMax
IF active_conns / max_conns > 0. 85 FOR 5m

ALERT ProviderQuota90
IF usage_quota_ratio > 0. 9 FOR 5m

12) FinOps: مقیاس پذیری سودآور است

نسبت بهره وری: هزینه/RPS، هزینه/سپرده، هزینه/رویدادهای 1k.
اندازه گیری راست: VPA/توصیه ها، گزارش های بیش از حد ارائه شده.
نقطه/قابل پیش بینی برای غیر بحرانی ؛ محفوظ/متعهد برای بار پایه.
بودجه و ذخیره سازی را خارج کنید، بارگیری CDN/edge.
جمع آوری و بایگانی سیاهههای مربوط به سطح ارزش (گرم در مقابل سرد).
سهمیه های هشدار دهنده (soft-cap) و بلیط های خودکار برای گسترش.

13) فرآیندها و مردم

مدیریت تغییر: canaries، phicheflags، توقف در رگرسیون.
آمادگی حادثه: runbook "و" کجا برای اضافه کردن ظرفیت "،" نحوه تغییر منطقه ".
قله های برنامه ریزی: تقویم مسابقه/مسابقات/مبارزات انتخاباتی و پنجره های ارائه دهنده.
روزهای بازی منظم و تمرینات DR.
ماتریس مالکیت: چه کسی می تواند «دکمه» را در feilover/افزایش سهمیه ها فشار دهد.

14) چک لیست پیاده سازی

شروع مقیاس پذیری اولیه (2-4 هفته):
  • نقشه مسیرهای بحرانی و محدودیت ها (توسط لایه)، هدف headroom ≥ 30٪.
  • HPA توسط معیارهای کسب و کار + خوشه Autoscaler ؛ PDB/SpreadConstraints
  • صف در مسیرهای داغ، idempotency-کلید، صندوق پستی.
  • حافظه های پنهان: اهداف ضربه ≥ 90٪، سیاست اخراج، شاخص های کلیدی.
  • DB: خواندن کپی، استخر اتصال، طرح sharding.
  • ارائه دهندگان: چند فروشنده، سهمیه، شکن/عقب نشینی.
  • داشبورد «ظرفیت/جریان/DB/ارائه دهندگان»، هشدار از § 11.
  • قناری و قبل/بعد از انتشار autogates.
  • دفترچه راهنمای DR و یک آموزش جزئی feilover.
قبل از یک رویداد بزرگ:
  • گرم کردن انبارها، پیش مقیاس HPA/ASG، کپی گرم آماده به کار.
  • افزایش سهمیه ارائه دهنده، مسیریابی هوشمند را فعال کنید.
  • سرکوب های حالت شب را برای هشدارهای غیر بحرانی فعال می کند.
  • ویژگی «safe mode» برای فعال سازی فوری آماده است.

15) ضد الگوهای

ارتقاء عمودی «توقف کامل» به جای افقی.
یک استخر سر از خط مشترک از موضوعات/اتصالات در تمام downstreams.
Retrai در زمان تنگنا، عدم لرزش → طوفان.
هیچ هیسترزیس در هشدار و سیاست های مقیاس → «اره» وجود دارد.
پایگاه داده جهانی تنها بدون sharding داده ها و محلی سازی.
ایمان کور در SDK فروشنده بدون کنترل زمان/retray/مشاهده.
فقدان تمرینات DR: feilover «تنها بر روی کاغذ».

16) مقیاس پذیری KPI

انطباق SLO در اوج (p95/p99، میزان موفقیت).
سر و صدا توسط لایه در زمان نخست.
MTTS (میانگین زمان برای مقیاس) - تا زمانی که منابع اضافی در دسترس هستند.
Backlog/Lag Resolution Time: زمانی که صف ها بعد از پیک بسته می شوند.
نرخ شکست تغییر برای یک دوره رشد فعال.
هزینه/RPS و صرفه جویی از کش/CDN/لبه offload.
آمادگی DR: RTO/RPO در ورزش.

17) نمونه هایی از قالب های «سریع»

کافکا: مشارکت و مقیاس خودکار مصرف کنندگان (ایده ها):

partitions(topic="bets") = ceil(peak_msgs_per_sec / target_msgs_per_partition)
consumers = min(partitions, max_pods); rebalance_on: skew > 1. 5x scale_up_if: lag > 5e5 && rate(lag[5m]) > 5e4
PostgreSQL:

max_connections = poolers pool_size 1. 3 read_routing: primary (write), replicas (read majority)
shard_key: tenant_id or region_id
ردیس:

maxmemory-policy: allkeys-lfu cluster-replicas: 1 evict-alert: rate(evictions[5m]) > 0 && used_mem/limit > 0. 8
سیاست autogate قناری (خلاصه):

guardrails:
- metric: api_p99_ms, threshold: 1. 3 baseline_1d, window: 10m, action: pause_and_rollback
- metric: error_rate, threshold: 2 baseline_1d, window: 5m, action: pause max_step: 10%
step_interval: 15m

18) سوالات متداول

س: چه چیزی برای اولین بار مقیاس می شود ؟

A: تنگناها با توجه به داشبورد: صف/کش/پایگاه داده می خواند. مسیرهای داغ (راه اندازی سپرده/شرط/بازی) یک اولویت است.

س: چگونه می توان فهمید که مقیاس خودکار «آن را بدتر می کند» ؟

A: همبستگی را ببینید: مقیاس up↑ و p99/خطاها بهبود نمی یابند - شاید شما «مقیاس مشکل» (محدود کردن جریان/سهمیه). شامل شکستن/تخریب.

س: آیا شما همیشه به یک ارائه دهنده دوم نیاز دارید ؟

A: برای مسیرهای بحرانی، بله. در غیر این صورت، حداقل «حالت امن» با یک اسکریپت ساده و کش.

س: فعال فعال или فعال منفعل ؟

A: اگر الزامات RTO کم باشد و بسیاری از بازیکنان منطقه ای فعال هستند. در غیر این صورت، با فعال-منفعل با یک feilover استفاده می شود شروع می شود.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

Telegram
@Gamble_GC
شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.