macduty

الدليل

تشغيل مزرعة CI من أجهزة Mac على أجهزة Mac mini مخصصة

كيف تشغل الفرق من 5 إلى 20 جهاز Mac mini مخصصًا كمزرعة CI: Runners لكل مشروع، وحساب واحد، وفاتورة واحدة، ومهندسون يجيبون.

حُدّث في ⁦2026-09-20⁩

جهاز Mac mini واحد يتولى عمليات بناء iOS لفريق واحد بارتياح. لكن بمجرد أن يصبح لديك ثلاثة تطبيقات، وفرعان يُبنيان بالتوازي، وقطار إصدارات (release train)، فأنت بحاجة إلى مزرعة، وطريقة هيكلتها هي التي تحدد ما إذا كان CI سيبقى سريعًا أم سيصبح الشيء الذي يشتكي منه الجميع.

إليك كيف تشغل الفرق من 5 إلى 20 جهاز Mac مخصصًا لدى MacDuty.

ابدأ من عدد عمليات البناء المتزامنة، لا من عدد الأشخاص

الرقم الوحيد المهم هو عدد عمليات البناء التي يجب أن تعمل في الوقت نفسه خلال ساعة الذروة لديك. ليس عدد المطورين، ولا عدد المستودعات: بل عمليات البناء المتزامنة.

تقدير تقريبي يصح لمعظم فرق iOS:

الحالةالأجهزة
تطبيق واحد، فريق واحد، عمليات بناء لطلبات الدمج (PR)من 1 إلى 2
تطبيقان أو ثلاثة، عمليات بناء PR وليلية بالتوازيمن 3 إلى 5
قطار إصدارات، واختبارات واجهة على مصفوفة أجهزةمن 6 إلى 10
وكالة أو فريق منصة يخدم منتجات عديدةمن 10 إلى 20 أو أكثر

وقت الانتظار في الطابور هو المؤشر. إذا انتظرت عمليات البناء أكثر من دقيقتين تقريبًا في وقت الذروة، فأضف جهازًا. هذا أرخص من الساعة التي يقضيها كل مطور في الانتظار.

Runner واحد لكل جهاز، أم عدة Runners؟

كل Mac mini مخصص لك بالكامل: لا hypervisor، ولا جار مزعج (noisy neighbour). وهذا يمنحك نمطين صالحين.

Runner واحد لكل جهاز

الأنظف. يحصل البناء على المعالج (CPU) ووحدة الرسوميات (GPU) والذاكرة بالكامل. استخدم هذا النمط لعمليات بناء Xcode واختبارات الواجهة، حيث يستهلك البناء عن طيب خاطر كل نواة تمنحها له.

اثنان أو ثلاثة Runners لكل جهاز

ينجح عندما تكون مهامك صغيرة ومحدودة بعمليات الإدخال والإخراج (I/O-bound): اختبارات الوحدات، والتدقيق (linting)، والتحزيم. على M4 أو M6 بذاكرة 32 GB، تعمل مهمتان خفيفتان بالتوازي بارتياح.

الجمع بين النمطين أمر طبيعي: أجهزة للمهام الثقيلة مخصصة لبناء الإصدارات، وأجهزة أخف مكتظة بالمهام السريعة.

تقسيم المزرعة بين الفرق والمشاريع

ضع تسميات (labels) على أجهزتك ودع خط المعالجة (pipeline) يوجه المهام إليها. التقسيمات المفيدة:

حسب المشروع

ios-app، sdk، internal-tools. يستهدف كل مستودع تسميته الخاصة، فلا يعطل بناء فاشل في منتج واحد منتجًا آخر أبدًا.

حسب الغرض

أجهزة pr سريعة ودائمًا في حالة جاهزة (warm)، وأجهزة release تمسح قبل كل بناء موقّع.

حسب العميل

تمنح الوكالات كل عميل أجهزته الخاصة ببيانات اعتماده وشهاداته الخاصة. لا شيء مشترك، ولا شيء يمكن أن يتسرب بين الحسابات.

كل ذلك على حساب MacDuty واحد، بفاتورة واحدة في نهاية الشهر.

الحفاظ على سلامة المزرعة

أعد التثبيت بين المشاريع ولا تهمله

جهاز Mac يبني منذ عام تتراكم عليه إصدارات Xcode والمحاكيات والذاكرات المؤقتة. عندما تنقل جهازًا إلى مشروع جديد، اطلب من الدعم إعادة تثبيت نظيفة. لا نقوم بذلك إلا بموافقتك، لأنه يمسح جهاز Mac.

ثبت سلسلة الأدوات (toolchain)

إصدار Xcode نفسه على كل أجهزة المجموعة، مع ترقية مقصودة. المزرعة التي تختلف أجهزتها تدريجيًا تنتج عمليات بناء تنجح على Runner وتفشل على آخر.

راقب الطابور، لا المعالج

رسوم استخدام المعالج البيانية على أجهزة البناء مقلقة دائمًا ونادرًا ما يمكن التصرف بناءً عليها. وقت الانتظار في الطابور هو ما يخبرك متى تضيف عتادًا.

احتفظ بجهاز احتياطي

مع عشرة أجهزة، يجب أن يكون تعطل أحدها مجرد إزعاج، لا حادثة.

مقارنة ذلك بسحابات Mac المعتمدة على التنسيق (orchestration)

تضيف منصات التنسيق جدولة على طريقة Kubernetes فوق macOS افتراضي، وأنت تدفع ثمن هذه الطبقة. وهي مفيدة فعلًا إذا كنت تحتاج إلى أجهزة افتراضية مؤقتة تُنشأ لكل مهمة على نطاق واسع.

معظم الفرق التي تملك أقل من عشرين جهازًا لا تحتاج إلى ذلك. إنها تحتاج إلى عدد قليل من أجهزة Mac السريعة المخصصة التي تبقى تعمل، وتحافظ على ذاكرتها المؤقتة جاهزة، وتكلف المبلغ نفسه كل شهر. هذا هو معنى المزرعة المخصصة: أجهزة فعلية كاملة بسعر ثابت، مع بقاء ذاكرة البناء المؤقتة موجودة للمهمة التالية بدل التخلص منها مع الجهاز الافتراضي.

وتحصل أيضًا على الفرق الذي يظهر في الثانية صباحًا قبل إصدار: من يديرون خزانات الخوادم هم من يردون على البريد الإلكتروني.

إعداد المزرعة

أخبرنا بالشكل الذي تريده: كم جهازًا، وأي طرازات، وما الذي يجب تثبيته عليها. عند الطلب نهيئها بإصدار Xcode الخاص بك ووكيل الـ Runner والمفاتيح والشهادات، ونتولى إعادة التثبيت وتغييرات الأسطول أثناء العمل، وكل منها بموافقتك.

متوفر اليوم

هذه الأجهزة في الخزانة الآن. اختر واحدًا، واطّلع على ما يأتي معه، ولا تُنشئ حسابك إلا عند الطلب.

جارٍ التحقق من الخزائن

جهاز ⁦Mac mini⁩ خاص بك

اختر تكوينًا. وإن لم يكن متوفرًا، اترك بريدك الإلكتروني ونراسلك يوم تركيبه في الخزانة.

سنويًا: أقل بنسبة ⁦19%⁩ على الأقل من الدفع الشهري

  • 16GB

    ذاكرة موحدة، ⁦120 GB/s⁩

    النوى
    10 CPU, 10 GPU
    التخزين
    متاح
    متوفر
  • الأكثر اختيارًا
    24GB

    ذاكرة موحدة، ⁦120 GB/s⁩

    النوى
    10 CPU, 10 GPU
    التخزين
    متاح
    متوفر
  • 32GB

    ذاكرة موحدة، ⁦120 GB/s⁩

    النوى
    10 CPU, 10 GPU
    التخزين
    متاح
    متوفر
Visa Mastercard تحويل ⁦SEPA⁩الأسعار بعملة ⁦EUR⁩، وتُضاف ضريبة القيمة المضافة عند الدفع حيثما تنطبق. شهر واحد كحد أدنى، ثم يمكنك الإلغاء في أي شهر.

الأسئلة

هل يمكنني تشغيل عدة أجهزة Mac mini على حساب MacDuty واحد؟
نعم. يضم الحساب الواحد عدد الأجهزة الذي تحتاجه، بفاتورة واحدة، لك أو لكل شركة من شركاتك.
كم جهاز Mac mini أحتاج لـ CI الخاص بتطبيقات iOS؟
حدد العدد حسب عمليات البناء المتزامنة في الذروة، لا حسب حجم الفريق. جهاز أو جهازان لتطبيق واحد، ومن ثلاثة إلى خمسة لبضعة تطبيقات تُبنى بالتوازي، ومن ستة إلى عشرين لقطار إصدارات أو وكالة.
هل يمكنني تشغيل عدة Runners لـ CI على جهاز Mac mini واحد؟
نعم. الجهاز لك بالكامل. Runner واحد لكل جهاز لعمليات بناء Xcode الثقيلة؛ واثنان أو ثلاثة للمهام الخفيفة المحدودة بالإدخال والإخراج على جهاز بذاكرة 32 GB.
هل يمكن أن تكون للفرق أو العملاء المختلفين أجهزة منفصلة؟
نعم. توضع على الأجهزة تسميات وتُفصل حسب المشروع أو العميل، ولكل منها بيانات اعتماده الخاصة، ضمن حساب واحد وفاتورة واحدة.
هل مزرعة Mac المخصصة أرخص من سحابة Mac المعتمدة على التنسيق؟
مع حمل CI ثابت، نعم: سعر شهري ثابت لكل جهاز فعلي، دون فوترة بالساعة ودون طبقة تنسيق تدفع ثمنها.

التالي