انتقل إلى المحتوى الرئيسي

الوحدة 2 — أهداف الحساب: مثيلات، عناقيد، حوسبة عند الطلب

مساحة العمل من الوحدة السابقة لا تحسب بنفسها أيّ شيء: إنّها مجرّد حاوية. يتمّ الحساب على هدف حساب (compute target) تختاره لكلّ استعمال. اختيار سيّئ للهدف يعني إمّا فاتورة مضاعفة أو مهمّة تستغرق ثلاثة أضعاف الوقت. هذه الوحدة تُقدّم الأنواع الثلاثة الرئيسية، ومتى يُختار كلّ نوع، والفخّ الوحيد الذي يستنزف الميزانية.

الأنواع الثلاثة الرئيسية

النوعالحالة الطبيعيةمتى نستعمله
Compute Instanceمثيل واحد يعمل دائمًاالتطوير التفاعلي في دفاتر Jupyter
Compute Clusterعنقود يتوسّع ديناميكيًّاالتدريب الدفعي، مسح المعاملات الفائقة
Serverless Computeلا شيء نديّرهمهامّ قصيرة أو نادرة، ابتداء سريع

الفكرة المشتركة: الحساب مصفوفة قابلة للاختيار. تُصرّح عنه في وقت إرسال المهمّة، ولا تحفر في الشفرة اسم المثيل الذي يحسب.

مثيل الحساب (Compute Instance)

هذا آلة افتراضية شخصية لعالم البيانات، تحتوي بايثون وJupyter وVS Code في المتصفّح. مفيدة للاستكشاف السريع لبيانات المبيعات في سلسلة متاجرنا، ولكتابة الشفرة قبل ترحيلها إلى مهمّة رسمية. لكن ثمنها يمشي بالساعة حتى لو لم تفعل شيئًا.

القاعدة الحاسمة: أوقف المثيل ليلًا وفي عطلات الأسبوع. Azure يوفّر جدولة تلقائية للإيقاف والتشغيل داخل تعريف المثيل:

name: ci-analyst-01
type: computeinstance
size: Standard_DS3_v2
schedules:
compute_start_stop:
- action: stop
cron:
hours: "19"
minutes: "0"
time_zone: "W. Europe Standard Time"

مثيل بحجم Standard_DS3_v2 يعمل 24/7 يكلّف نحو 4× ما يكلّفه لو عمل فقط في ساعات المكتب. لا شيء تقني هنا، فقط انضباط تشغيلي.

عنقود الحساب (Compute Cluster)

العنقود مجموعة عقد متطابقة. أهمّ صفتين فيه:

  • min_instances = 0: يهبط العنقود إلى صفر عقد حين لا مهمّة تنتظر، فلا تدفع شيئًا للحوسبة (يبقى مصروف يسير للتخزين).
  • max_instances: السقف الأعلى. إن أُرسلت خمس مهامّ متوازية، يمتدّ العنقود إلى خمس عقد ثمّ يعود.

لتدريب نموذج تنبّؤ الطلب على عيّنات كثيرة (متغيّر عبر مسح معاملات فائقة)، ننشئ عنقودًا كالتالي:

az ml compute create \
--name cpu-cluster \
--type amlcompute \
--min-instances 0 \
--max-instances 8 \
--size Standard_DS3_v2 \
--idle-time-before-scale-down 120

idle-time-before-scale-down بالثواني: بعد دقيقتين من الخمول تتقلّص العقد.

الفخّ الأكبر: كتابة --min-instances 1 بدل صفر. يبدو خيار «الأمان» ليحافظ على استعداد فوري للمهامّ، لكنّه يعني أنّ عقدة تدفع فاتورتها 168 ساعة أسبوعيًّا حتى في غياب أيّ مهمّة. سلسلة متاجر مرّت بهذا الخطأ فوجدت 4000 يورو تسرّبت في شهرين. اترك الحدّ الأدنى صفرًا واقبل تأخير الابتداء البارد بضع دقائق.

المثيلات ذات الأولوية المنخفضة (Low Priority)

Azure تعرض عقدًا بسعر مخفَّض 60% إلى 80%، بشرط أن تستطيع أن تنتزعها في أيّ لحظة إن احتاجها زبون آخر بأولوية أعلى. مفيدة لمسح معاملات فائقة تحتمل إعادة تشغيل: تفقد 3 مهامّ من أصل 20، تعيد إطلاقها، وتوفّر رغم ذلك.

az ml compute create \
--name spot-cluster \
--type amlcompute \
--tier low_priority \
--size Standard_DS3_v2 \
--max-instances 10

لا تستعملها لتدريب نموذج نهائي ينبغي تسليمه اليوم. الانتزاع في اللحظة الحرجة يعني فقدان النموذج قبل تسجيله.

الحوسبة بلا خادم (Serverless)

نوع أحدث: لا تديّر عنقودًا على الإطلاق. تُرسل المهمّة مع الحجم المطلوب وينشئ Azure حوسبة مؤقّتة تختفي في النهاية. الاستعمال المثالي:

  • مهامّ نادرة أو غير منتظمة (تدريب شهري)
  • بيئات CI/CD لا تريد تسيير عنقود لها
  • إثبات مفهوم قبل بناء بنية تحتية

الحصص الإقليمية (Quotas)

كلّ اشتراك Azure له سقف على عدد أنوية vCPU لكلّ عائلة (DSv2, NC, ND…) في كلّ منطقة. يظهر الخطأ في وقت الإرسال: Not enough quota — والمهمّة تنتظر دون إخطار.

قبل تجربة مسح 32 مهمّة على Standard_NC6s_v3 (6 أنوية × 32 = 192 نواة)، تحقّق:

az ml compute list-usage --location westeurope

ثمّ اطلب زيادة عبر تذكرة دعم إن لزم. زيادة الحصّة مجانية لكنّها تحتاج 24 إلى 48 ساعة.

min_instances وحسابك البنكي

min_instances: 1 ليس «أمانًا»، بل نزيف. لا خيار غير الصفر إلّا لعنقود ينبغي أن يكون جاهزًا خلال ثوانٍ لطلب مستخدم — وفي هذه الحالة تكون نقطة نهاية مُدارة (الوحدة 8) هي الحلّ، لا عنقود دائم.

الخلاصة

  • ثلاثة أنواع من الحساب: مثيل للتطوير، عنقود للتدريب الدفعي، حوسبة بلا خادم للمهامّ النادرة.
  • المثيل يُوقَف بالجدولة ليلًا وعطلات الأسبوع، أو يستنزف الميزانية.
  • العنقود يُنشَأ دائمًا بـmin_instances = 0 والابتداء البارد ثمن مقبول.
  • الأولوية المنخفضة توفّر إلى 80% لمهامّ تحتمل الانتزاع، لا لتسليم نهائي.
  • الحصص إقليمية وتُطلَب زيادتها قبل مسح كبير، لا في وقته.

الوحدة التالية: أصول البيانات — كيف نربط مبيعات المتاجر بمساحة العمل بإصدارات محفوظة.