توسيع نطاق الهياكل الأساسية التشغيلية للعمليات وإدارة →
توسيع نطاق البنية التحتية التشغيلية
1) لماذا وما يعتبر «تحجيم»
التحجيم هو قدرة النظام الأساسي على زيادة الإنتاجية (RPS/TPS، الاتصالات، IOPS، الإنتاجية) وحجم البيانات دون فقدان SLO وبتكلفة خاضعة للرقابة. بالنسبة إلى iGaming/fintech، يتعلق الأمر مباشرة بالمال: تحويل الودائع/الرهان والألعاب الحية والتسويات.
الأهداف:- حافظ على SLOs عند نمو الحمل X-fold والقمم الموسمية.
- توفير وقت قياس يمكن التنبؤ به (دقائق وليس ساعات).
- وفر الاقتصاد: التكلفة/RPS، التكلفة/المعاملة، التكلفة/1k حدث.
2) مبادئ المنصة القابلة للتطوير
1. أفقياً أولاً: التقسيم إلى خدمات صغيرة عديمة الجنسية ؛ - في مجموعات البيانات.
2. الضغط الخلفي وقوائم الانتظار: رشقات نارية منعشة، الحماية من «العواصف».
3. التخزين المؤقت لجميع الطبقات: العميل/الحافة/الخدمة/قاعدة البيانات.
4. الغباء والتكرار: التراجعات الآمنة، صندوق الخروج، التخلص.
5. التبعيات المقيدة: المهلة، القواطع، عزل الحواجز، حدود المعدل.
6. إمكانية الملاحظة حسب إشارات السعة: الرأس، الصفحة 95/ص 99، التأخر، الوصلات، الحصص.
7. القياس التلقائي مع قضبان الحراسة: HPA/VPA/Cluster Autoscaler + ظروف التوقف.
8. مناطق متعددة حسب التصميم: مناطق انفجار مستقلة، بيانات محلية، ملفات ثابتة.
3) تخطيط القدرات: كيفية «حساب المبلغ الذي تحتاجه»
مدخلات النموذج: ذروة الهدف TPS، ملف تعريف حركة المرور (كل ساعة)، «المسارات الحرجة»، نسب إصابة ذاكرة التخزين المؤقت، متوسط الحمولات، SLOs وحدود المزود.
التقييمات السريعة (القاعدة العامة):- RPS → CPU/pods: 'pods = RPS p99_time/effective _ CPU _ in _ pod' (بهامش 30-50٪).
- قوائم الانتظار: "الحد الأدنى _ السرعة _ من _ المستهلكين ≥ الذروة _ السرعة _ من _ المنتجين 1. 2`.
- اتصالات DB: 'max _ conns = active _ service _ pools medium _ pool _ size 1. 3`.
- ذاكرة التخزين المؤقت: الحجم = «مجموعة عمل ساخنة في دقائق N» + هامش 20-30٪.
- Egress/CDN: ذروة الخروج = ذروة الطلبات متوسط حجم الاستجابة (ضغط).
غرفة الرأس: هدف 20-40٪ عند الذروة (حسب الطبقة). أقل من 15٪ → محفز «رفع السعة».
4) الطبقات وأنماط التحجيم
4. 1 Edge/CDN/WAF
Edge caching (TTL + SWR), geo-balance, compression, HTTP/2/3.
حدود المعدل على المحيط بواسطة IP/JWT/key، حماية الطفرة.
مروحة الحدث (الجوائز الكبرى، التنبيهات الحية) من خلال الوسطاء/الحانة/القنوات الفرعية.
4. 2 بوابة برمجة التطبيقات الخلفية مقابل الواجهة الأمامية
التحجيم الأفقي حسب الستاتيلات، تجمعات مخصصة حسب المصب.
HPA حسب مقاييس الأعمال: RPS، p99، قائمة انتظار تجمع العمل - وليس فقط وحدة المعالجة المركزية.
4. 3 طوابير/بث غير متزامن (كافكا/أرنب/بولسار)
الجدول حسب الأطراف والمستهلكين ؛ تجنب الانحراف (المفاتيح والتوزيع).
تنبيهات التأخير + التوسع التلقائي للمستهلكين ؛ DLQ وإعادة تجربة الموضوعات.
الاحتفاظ بها في إطار مطابقات جيش تحرير السودان وإعادة تشغيلها.
4. 4 مخابئ (Redis/Memcached)
الأنماط العنقودية، النسخ المتماثلة، سياسات الإخلاء (LFU)، متعدد العناصر، خط الأنابيب.
فصل مهام المفاتيح الساخنة والخلفية وحدود العملاء وسياسة الذاكرة القصوى.
4. 5 قواعد بيانات
اقرأ النسخ المتماثلة وتوجيه القراءة، وتجميع الاتصال.
الشحن حسب المنطقة/المستأجر/نطاق المفتاح.
CQRS: يكتب إلى السيد/القائد، ويقرأ إلى النسخ المتماثلة.
تدفقات عمل الفهرسة وكتابة الدفعات (الصندوق الخارجي → التيار → الحوض).
المحفوظات والبيانات الساخنة/الباردة (الترتيب).
4. 6 مخازن الملفات/الكائنات
تعدد القراءة، تنزيلات متعددة الأجزاء، CDN-front، تحولات غير متزامنة.
حصص المزود وميزانية تنظيف الذيل والخروج.
4. 7 مزودين (PSP/KYC/Studios)
تعدد البائعين والاقتباس/SLO/توجيه التكاليف.
قاطع الدائرة + حد السعر لكل مزود، قائمة انتظار إعادة، «أوضاع النعمة».
5) القضبان الآلية والحراسة
كوبرنيتس:- HPA: метрики 'rps _ per _ pod'،' queue _ depth '،' p99 _ latency '؛' الهدف متوسط القيمة '.
- VPA: المبادئ التوجيهية للموارد ؛ التحديث خارج الذروة.
- Cluster Autoscaler: لمحات فورية + عند الطلب مع الأولويات.
- PodDistructionBudget/TopologySpreadRestrictions: موحد عبر المناطق.
- LimiteRange/ResourceConta: الحماية من الاستنزاف «في حالة سكر».
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
حواجز الحماية (أمثلة):
- «Pause & Rollback»، إذا كان مع canary p99> 1. 3 × خط الأساس 10 دقائق.
- «تجميد تقليص» في وقت الذروة، توسيع نطاق فقط.
- «أوقف عمليات إعادة التشغيل» عند «دائرة مفتوحة = 1» للاختناقات.
6) المناطق المتعددة: الأصول/الأصول والأصول/الخصوم
المناطق المعزولة عن الانفجار: مجموعات مستقلة، أسرار/حصص محلية.
التوجيه العالمي: المسارات المتأخرة/الجغرافية، المجسات الصحية، التجاوز اليدوي.
- ساخن - محليًا + تكرار نهائي (تيارات).
- المعاملات الحرجة - متسقة حسب المجال (دفتر الأستاذ/الأرصدة).
- كتب اللعب الفاشلة: تغيير المصدر خطوة بخطوة، TTL، مخابئ الإحماء.
- تنظيم التمرين (DR): التدريبات الفصلية مع أهداف RTO/RPO.
7) أنماط الشبكة والخدمات
شبكة الخدمة: mTLS، إعادة المحاولة/الكسر، الكشف الخارجي، حدود المصب.
eBPF/إمكانية الرصد على L4/L7، حدود الاتصال، حماية رأس الخط.
بوابات برمجة التطبيقات الداخلية S2S والحد العام للمعدل ومراجعة الحسابات.
VPC/الشبكات الفرعية حسب مناطق الانفجار، ومراقبة NAT/Egress، والتحديق مع البائعين.
8) الأداء: الاختبارات والبراهين
حمل وإجهاد في ملف تعريف وقت الذروة + أسوأ حالة.
نقع (طويل) - تسرب الذاكرة/الوصف، نمو الكمون.
الفوضى/أيام اللعبة: الوسيط/المزود/المنطقة، «المزود البطيء».
انحدارات Perf في CI: مجموعة من السيناريوهات المرجعية والبوابات التلقائية.
9) البيانات والتخزين: استراتيجيات النمو
النمو الرأسي إلى السقف → الأفقي/الشحن.
اقرأ → نسخة طبق الأصل/ذاكرة التخزين المؤقت ؛ السجلات → الدفعة/الأسينشرون/السجل.
هجرات المخطط: التوسع → الهجرة → عقد، لا أقفال عالمية.
الأرشفة: دفعات باردة للتخزين الرخيص + إعادة الترطيب عند الطلب.
البحث: الفهارس الفردية (OpenSearch/Solr) مع خط أنابيب التحديثات الإضافية.
10) إدارة مقدمي الخدمات والحصص
بطاقة حصص (نظام تحديد النقاط والنوافذ والتكلفة) ؛ استخدام التنبيهات - النسبة> 0. 9`.
التوجيه حسب التكلفة/الجودة (التوجيه الذكي).
↔ مكتب الشؤون القانونية اتفاقات المنظمات غير الحكومية وعملية زيادة الحصص.
مجموعة من البدائل والتبديل «الساخن».
11) إمكانية الرصد وإشارات التحجيم
المقاييس (الحد الأدنى):- غرفة رأس السعة по слоям; طابور/تأخر/نمو الأعمال المتراكمة "؛ 'كافكا ISR' ؛ 'db connections'/' repl lag' ؛ 'redis executions' ؛' open _ circuit'/' retry _ rate '؛' cata _ usage '.
- مقاييس الأعمال: معدل النجاح/تحويل الودائع، وقت بدء اللعبة.
- التكلفة: التكلفة/RPS، التكلفة/1 ألف مكالمة.
- نظرة عامة على السعة (ارتفاع، أعلى المخاطر، معدل الحرق SLO).
- لوحة التيار والانتظار (التأخير/التراكم، تشبع المستهلك).
- DB & Cache (رقم 99، الاتصالات، الضربات/عمليات الإخلاء).
- المزودون والاسعار (TPS، المهلات، التكلفة، التبديل).
- Change Safety (pre/post release, canary, 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/recommendations, over-supported reports.
موضعية/قابلة للإفراغ لغير الحرجة ؛ محجوز/ملتزم به لحمل القاعدة.
ميزانية الخروج والتخزين المؤقت، تفريغ CDN/edge.
جمع السجلات وحفظها حسب مستوى القيمة (ساخن مقابل بارد).
حصص التحذير (سقف ناعم) والتذاكر الآلية للتمديد.
13) العمليات والأشخاص
إدارة التغيير: جزر الكناري، phicheflags، تتوقف في الانحدار.
الاستعداد للحوادث: كتاب التشغيل و «أين تضيف السعة»، «كيفية تبديل المنطقة».
قمم الجدولة: تقويم المباراة/البطولة/الحملة ونوافذ المزود.
أيام اللعب العادية وتمارين DR.
مصفوفة الملكية: من يمكنه «الضغط على الزر» على الحصص المزيفة/الزيادة.
14) قوائم التنفيذ المرجعية
بدء قابلية التوسع الأساسية (2-4 أسابيع):- خريطة المسارات والحدود الحرجة (حسب الطبقة)، هدف غرفة الرأس ≥ 30٪.
- HPA بواسطة Business Metrics + Cluster Autoscaler ؛ PDB/SpreadRestrictions.
- طوابير على المسارات الساخنة، مفاتيح الخصوصية، صندوق الخروج.
- المخابئ: أهداف ناجحة ≥ 90٪، سياسة الإخلاء، المؤشرات الرئيسية.
- DB: اقرأ النسخ المتماثلة، تجمع الاتصال، خطة الشحن.
- مقدمو الخدمات: البائعون المتعددون، والحصص، والقواطع/الخلوات.
- لوحات المعلومات "Capacity/Stream/DB/Providers'، تنبيهات من المادة 11.
- الكناري والسيارات السابقة/اللاحقة للإفراج.
- كتاب قواعد اللعبة DR وتدريب واحد جزئي.
- تسخين المخابئ، HPA/ASG على نطاق سابق، النسخ المتماثلة الاحتياطية الدافئة.
- زيادة حصص المزود، وتمكين التوجيه الذكي.
- يتيح قمع الوضع الليلي للتنبيهات غير الحرجة.
- ميزة «الوضع الآمن» جاهزة للتنشيط الفوري.
15) الأنماط المضادة
ترقية عمودية «توقف كامل» بدلاً من أفقي.
مجموعة مشتركة من الخيوط/الوصلات على جميع المصبات.
Retrai في مهلة عنق الزجاجة، ونقص النبض → العاصفة.
لا يوجد هستيريا في التنبيهات وسياسات الحجم → «النشر».
قاعدة بيانات عالمية واحدة بدون شحن البيانات وتوطينها.
ثقة عمياء في البائع SDK دون التحكم في المهلة/الاسترجاع/القابلية للمراقبة.
نقص تمارين DR: feilover «فقط على الورق».
16) قابلية التوسع KPI
(p95/p99، معدل النجاح).
الرأس طبقة تلو الأخرى في وقت الذروة.
MTTS (متوسط الوقت للمقياس) - حتى تتوفر موارد إضافية.
الوقت المتراكم/قرار التأخير - الوقت الذي تنهار فيه قوائم الانتظار بعد الذروة.
معدل الفشل لفترة من النمو النشط.
التكلفة/RPS والوفورات من التخزين المؤقت/CDN/التفريغ.
استعداد دكتور: 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
سياسة السيارات الكناري (موجز):
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) الأسئلة الشائعة
س: ما الذي يجب قياسه أولاً ؟
ج: الاختناقات حسب لوحات القيادة: قوائم الانتظار/المخابئ/قواعد البيانات تقرأ. المسارات الساخنة (الإيداع/الرهان/إطلاق اللعبة) هي أولوية.
س: كيف نفهم أن التحجيم التلقائي «يجعل الأمر أسوأ» ؟
ج: انظر الارتباط: scale- up↑، و p99/الأخطاء لا تتحسن - ربما «تسلق المشكلة» (ضيق التيار/الحصة). تشمل الكسور/التدهور.
س: هل تحتاج دائمًا إلى مزود ثانٍ ؟
ج: للمسارات الحرجة، نعم. خلاف ذلك، على الأقل «الوضع الآمن» مع نص ومخبأ مبسطين.
س: نشط или نشط سلبي ؟
ج: إذا كانت متطلبات RTO منخفضة وكان العديد من اللاعبين الإقليميين نشطين. خلاف ذلك، ابدأ بالسلبية النشطة باستخدام feilover.