لا تدفع مقابل وحدات معالجة الرسوميات (GPUs) الخاملة. وفر قوة حوسبة فورية (just-in-time)، عالج عبء العمل، ثم قم بتفكيكها — محولاً النفقات الرأسمالية إلى تكلفة تشغيل لكل وظيفة.

عبء عملك متقطع (burtsy) — مثل مهام ترميز الفيديو (video encoding) التي تزداد بشكل مفاجئ عند تحميل المحتوى، أو عمليات تدريب ML التي تتطلب 8 GPUs لمدة 4 ساعات ثم لا شيء بعدها، أو مهام الاستدلال الدفعي (batch inference) التي يتم تشغيلها بواسطة أحداث الأعمال، أو مسارات عمل العرض (rendering pipelines) التي تعمل طوال الليل. في هذه الحالات، إما أن تكون مواردك زائدة عن الحاجة (over-provisioned) (تدفع مقابل موارد خاملة 80% من الوقت) أو أنها غير كافية (under-provisioned) (تنتظر المهام في قائمة الانتظار لساعات خلال فترات الذروة). أنت بحاجة إلى هندسة معمارية توفر قوة الحوسبة التي تحتاجها بالضبط، عندما تحتاجها، وتطلقها عند اكتمال المهمة — دون عقوبة "البدء البارد" (cold-start penalty) التي تجعل "التوسع إلى الصفر" (scale to zero) غير عملي لأعباء عمل GPU.
Explore more design patterns and system architectures
يمكن لفريق معماري لدينا مساعدتك في تصميم وبناء الأنظمة باستخدام هذا النمط لمتطلباتك المحددة.
تواصل معناتقوم هندسة التوسيع عند الحاجة (On-off scaling) بإدارة موارد الحوسبة من خلال تجميع الموارد الساخنة/الباردة (warm/cold pooling)، وتوفير الموارد المدفوع بقائمة الانتظار (job-queue-driven provisioning)، والتفكيك التلقائي (automated teardown). يحافظ تجمع الموارد الساخنة (warm pool) على عدد قليل من المثيلات المهيأة مسبقاً (pre-initialized instances) الجاهزة للاستخدام الفوري. يوفر تجمع الموارد الباردة (cold pool) سعة إضافية من مثيلات Spot/Preemptible عندما يتجاوز الطلب سعة التجمع الساخن. يقوم منسق المهام (job orchestrator) بتوجيه العمل إلى المثيلات المتاحة، ومراقبة التقدم، ومعالجة عمليات إعادة المحاولة عند إخلاء Spot، ويقوم بتشغيل خفض السعة (scale-down) عند إفراغ قائمة الانتظار. يعتبر هذا النمط حرجاً بشكل خاص لأعباء عمل GPU حيث يمكن أن يستغرق "البدء البارد" (cold start) (سحب الحاوية + تحميل النموذج) من 3 إلى 10 دقائق.
يرتكز النظام على قائمة انتظار المهام (job queue) (SQS, Redis، أو مخصص) التي تقوم بتخزين طلبات العمل الواردة مؤقتاً. يقوم وحدة تحكم التوسيع (scaling controller) بمراقبة عمق قائمة الانتظار وتوفير المثيلات من تجمع الموارد الساخنة (warm pool) أولاً، ثم من تجمع الموارد الباردة (cold pool) (مثيلات Spot). يسحب كل مثيل عامل (worker instance) المهام من قائمة الانتظار، وينفذ عبء العمل (الترميز، التدريب، الاستدلال)، ويبلغ عن اكتماله، ثم يعود إلى التجمع أو يتم إنهاؤه. يتعامل مدير نقطة التحقق (checkpoint manager) مع إخلاء Spot عن طريق حفظ الحالة الوسيطة إلى S3، مما يتيح للمهام استئناف العمل على مثيل مختلف دون البدء من جديد.
| الطبقة | التقنيات |
|---|---|
| الحوسبة (Compute) | AWS EC2 Spot (G5/P4), GCP Preemptible (A2/L4), RunPod Serverless, Modal |
| التنسيق (Orchestration) | Kubernetes (Karpenter for autoscaling), AWS Batch, custom job orchestrator |
| قائمة انتظار المهام (Job Queue) | AWS SQS, BullMQ (Redis), Temporal, Celery |
| التخزين (Storage) | S3 (checkpoints, model artifacts), NVMe (model cache), EFS (shared workspace) |
| المراقبة (Monitoring) | CloudWatch/Prometheus (queue depth, instance utilization, job latency), custom cost dashboards |
| متى تستخدم | متى تتجنب |
|---|---|
| عندما يكون عبء العمل متقطعاً (bursty) — ويكون ذروة الطلب 5 أضعاف متوسط الطلب أو أكثر. | عندما تكون حركة المرور ثابتة ويمكن التنبؤ بها — فالمثيلات المحجوزة بالحجم الصحيح (right-sized reserved instances) تكون أرخص. |
| لمهام GPU/الحوسبة العالية التي تكون مكلفة عند الخمول. | عندما يكون عبء العمل معالجة خفيفة لوحدة المعالجة المركزية (CPU) تناسب البنية بدون خادم (serverless) (Lambda). |
| يمكن للمهام أن تتحمل بدءاً بارداً (cold start) لمدة 1-5 دقائق لتوفير تجمع الموارد الباردة (cold pool). | عندما يكون الكمون المطلوب لبدء المهمة أقل من ثانية (sub-second) — فأنت بحاجة إلى بنية تحتية تعمل دائماً (always-on). |
| عندما يكون تحسين التكلفة هو الشغل الشاغل وتوفر أسعار Spot توفيراً بنسبة 60-90%. | عندما يتسبب انقطاع Spot في فقدان البيانات لا يمكن تخفيفه بواسطة نقاط التحقق (checkpointing). |
تصمم MW توسيعاً عند الحاجة (on-off scaling) من منظور "التكلفة لكل مهمة" (cost per job) — حيث نقوم بنمذجة التكلفة الإجمالية لمعالجة وحدة عمل واحدة (فيديو واحد، عملية تدريب واحدة، استدلال دفعي واحد) عبر استراتيجيات توسيع مختلفة، ونختار الاستراتيجية التي تقلل التكلفة عند مستوى اتفاقية الخدمة للكمون (latency SLA) المطلوب. تتضمن تطبيقاتنا لوحات معلومات تكلفة في الوقت الفعلي تعرض تكلفة كل مهمة، واستغلال البنية التحتية، ووفورات Spot. لقد قمنا ببناء بنية تحتية لـ GPU تعمل بنظام التشغيل والإيقاف (on-off) قللت تكاليف معالجة الفيديو بنسبة 70% مقارنة بالمثيلات المحجوزة، ومجموعات تدريب ML توفر 64 GPUs لتشغيل تدريب لمدة 4 ساعات وتطلقها تلقائياً.
الأمن ليس ميزة تضيفها بعد الإطلاق. إنه خاصية معمارية — إما أن النظام قد صُمم لأجلها، أو لم يُصمم.
يشهد عملاء MicrocosmWorks الذين لديهم أعباء عمل كثيفة الدُفعات أو دورية عادةً تخفيضات في تكاليف السحابة تتراوح بين 60-80% بعد تطبيق on-off scaling، لأن موارد الحوسبة تعمل فقط خلال فترات المعالجة النشطة بدلاً من 24/7. نحن نصمم scaling policies بناءً على actual usage telemetry —على سبيل المثال، خط أنابيب لمعالجة البيانات يعمل لمدة 4 ساعات يومياً يدفع فقط مقابل تلك الساعات الأربع بدلاً من 24 ساعة كاملة. يحلل مهندسونا أنماط أعباء عملك خلال مرحلة الاكتشاف لتوقع المدخرات الدقيقة قبل بدء أي تنفيذ.
تتراوح أوقات البدء البارد من 2-3 ثوانٍ للتطبيقات المعبأة في حاويات على مجموعات العقد المُسخّنة مسبقًا إلى 5-10 دقائق لأحمال العمل التي تتطلب GPU instances متخصصة أو تحميل نماذج كبيرة، وتستخدم MicrocosmWorks عدة تقنيات لتقليل هذا التأخير. نحن نطبق التوسع التنبئي الذي يشغل الموارد قبل الطلب المتوقع باستخدام أنماط حركة المرور التاريخية والأحداث المجدولة، ونستخدم السحب المسبق لصور الحاويات وحجوزات التجمعات الجاهزة لأحمال العمل الحساسة للكمون. بالنسبة للتطبيقات التي لا تستطيع تحمل أي بدء بارد، نحافظ على أساس تشغيلي دافئ بحد أدنى يتوسع بسرعة كبيرة عندما يصل الطلب.
تطبق MicrocosmWorks reactive auto-scaling بسياسات aggressive scale-up تُفعّل بواسطة queue depth، أو CPU utilization، أو مقاييس تطبيق مخصصة، بالإضافة إلى سياسات gradual scale-down تتضمن cooldown periods لتجنب الـ thrashing. نقوم بتهيئة over-provisioning buffers أثناء أحداث الـ scale-up حتى يتوقع النظام نموًا مستمرًا بدلاً من مطاردة الطلب على مثيل واحد في كل مرة. بالنسبة للارتفاعات المفاجئة غير المتوقعة حقًا، مثل flash sales أو viral events، نقوم بالتزويد المسبق للقدرة باستخدام مُحفّزات تعتمد على الأحداث من تقويم التسويق أو العمليات الخاص بكم.
تقوم MicrocosmWorks بتطبيق on-off scaling على قواعد البيانات باستخدام عروض قواعد البيانات serverless مثل Aurora Serverless أو Neon أو PlanetScale التي تقوم بتوسيع نطاق compute إلى الصفر خلال فترات الخمول مع الحفاظ على storage مستمر ومتاح فورًا. بالنسبة لأعباء العمل stateful التي لا يمكنها استخدام serverless databases، نقوم بتطبيق read-replica scaling الذي يضيف ويزيل النسخ المتماثلة بناءً على حمل الاستعلام مع الإبقاء على primary instance أساسي قيد التشغيل دائمًا. يوفر هذا النهج الهجين للعملاء مزايا التكلفة للتوسع في طبقة البيانات الخاصة بهم دون تعقيد إدارة حالة قاعدة البيانات أثناء دورات الإيقاف وإعادة التشغيل.
يقوم MicrocosmWorks بنشر قابلية ملاحظة شاملة للتوسع تتتبع عدد الـ instances، وزمن استجابة أحداث التوسع، ومحاولات التوسع الفاشلة، والفجوة بين السعة المطلوبة والفعلية في الوقت الفعلي باستخدام لوحات تحكم Grafana أو Datadog. نقوم بتكوين تنبيهات متعددة القنوات لفشل التوسع، والاستخدام المرتفع المستمر الذي يشير إلى أن سقف التوسع منخفض جداً، وشذوذات التكلفة التي تدل على توسع جامح. تتضمن runbooks الخاصة بنا معالجة تلقائية لأنماط الفشل الشائعة مثل الوصول إلى حدود عدد الـ instances لمزود الخدمة السحابية أو مواجهة أخطاء عدم كفاية السعة في مناطق توفر محددة.