سواء أكان ذلك بناء أو اختبار أو نشر التعليمات البرمجية ، فإن أتمتة العمليات اليدوية هو مفتاح تحسين تجربة المطورين وتحقيق استراتيجية DevOps الناجحة.
على github ، يمكنك استخدام أفعال جيثب ليس فقط لتنفيذ خط أنابيب CI/CD ، ولكن أيضًا أتمتة العمليات الأخرى سواء داخل وخارج جيثب. عندما تعتمد إجراءات GitHub على Github Enterprise Cloud ، يمكنك الاختيار بين المتسابقين الذين يستضيفونه GitHub والعدائين الذين يستضيفونهم ذاتيًا لتشغيل أعباء العمل الخاصة بك ، ولكل منها إيجابيات وسلبيات.
في هذا المنشور ، سنقارن عن المتسابقين الذين يستضيفونه GitHub مع المتسابقين الذين يستضيفون ذاتيًا في خمسة مجالات لمساعدتك في تحديد النوع الذي يناسب استراتيجية تبني الإجراءات الخاصة بك.
ما هم المتسابقون المستضيفون في GitHub والعدائين الذين يستضيفونهم أنفسهم؟
يستند المتسابقون الذين يستضيفونه GitHub والعدائين المستضيفون ذاتيًا إلى نفس البرامج المفتوحة المصدر ودعم كل من MacOS و Windows و Linux. لكن لديهم العديد من الاختلافات.
المتسابقون المستضيفون جيثب تتم إدارتها بالكامل على البنية التحتية لـ Github باستخدام أجهزة Windows و Linux و MacOS الافتراضية. بالإضافة إلى تقديم المتسابقين القياسيين لأعباء العمل النموذجية ، يقدم المتسابقون المستضافون عدائين أكبر مع المزيد من الموارد (الذاكرة ، وحدة المعالجة المركزية ، والتخزين) ، والصور المخصصة ، ونطاقات IP ثابتة ، وتكامل الشبكة الافتراضية Azure لتحسين الأمان.
المتسابقين المستضافة ذاتيا تعمل على البنية التحتية الخاصة بك ، سواء كانت محمية أو في السحابة. يمكنك إدارة جميع الجوانب – التكوين والأمن والتوسيع. كما أنها تتيح لك تشغيل المتسابقين في أماكن لا يمكنك خلاف ذلك – على سبيل المثال ، على GitHub Enterprise Server أو على أجهزة مخصصة. يمكن أن تكون أيضًا الطريقة الوحيدة لتنفيذ بعض متطلبات الامتثال ، خاصة عند العمل مع الأنظمة المضمنة للغاية.
يقدم كلا الخيارين مزايا مميزة اعتمادًا على احتياجاتك ومواردك المحددة. دعونا نستكشف متى قد يكون المتسابقون المستضيفون GitHub هو الخيار الصحيح لمشاريعك ، وعندما يكون من الأفضل استخدام المتسابقين الذين يستضيفون ذاتيًا.
تتم إدارتها بالكامل أو تديرها ذاتيا؟
هناك تمييز رئيسي بين هذين الخيارين هو المكان الذي استضافتهما ، كما أشارنا. لكن هذا الاختيار يأتي مع عدة آثار.
المتسابقون المستضيفون جيثب توفير البنية التحتية المدارة مع تجمعات من الأجهزة الافتراضية عند الطلب (VMS) التي يتم تأمينها وتحديثها تلقائيًا. البيئات سريعة الزوال ، مع إعادة تمثيل الأقراص بعد كل وظيفة ، مما يمنع الملفات من الوظائف السابقة من التأثير على التشغيل اللاحق. يتم تحسين VMS لإجراءات GitHub ، مع البرامج والأدوات المثبتة مسبقًا ، بما في ذلك أحدث إصدارات Github CLI و Docker ومنصات التطوير الشائعة لضمان أوقات بدء التشغيل وتجنب حدود الأسعار.
مع المتسابقين الذين يستضيفون GitHub ، يمكنك القفز مباشرة في بناء سير العمل. لا يوجد شيء لتكوينه أو تأمينه قبل البدء ، مما يجعلها مثالية عندما تريد البدء بسرعة. ونحن نفضل جميعًا قضاء المزيد من الوقت على الكود أكثر من البنية التحتية ، أليس كذلك؟
المتسابقين المستضافة ذاتيا تقدم لك مرونة كاملة في تحديد الحل الخاص بك ، ولكن يعني أيضًا أنك مسؤول عن إدارة البنية التحتية والصور والخزائن والأمن وتوافر المراقبة والاستخدام مقابل حدود معدل Github. وهذا يتطلب خبرة في إجراءات GitHub Architecture و VM و Building Image Building ، وإدارة الشبكة والبنية التحتية. إذا كان عرض أعمالك الأساسي هو حلول البنية التحتية القابلة للتطوير أو Kubernetes ، فقد يكون المتسابقون المستضيفون ذاتيًا منطقيًا.
لنلقي نظرة فاحصة.
قابلية التوسع
لكي تظل مثمرًا ، من المهم أن تتوفر موارد متاحة للغاية عند الطلب ، خاصة بالنسبة لأعباء عمل CI/CD ، حيث قد يعني انتظار تشغيل الوظيفة أنك محظور من العمل في مهام أخرى. في الواقع ، يمكن أن تكلف ساعة واحدة ضائعة كل أسبوع شركة تزيد عن 4000 دولار في السنة لكل مطور!
لكن التوسع المتاح للغاية ، وموارد عند الطلب أمر صعب. حتى مع وجود البنية التحتية السحابية المصممة جيدًا ، فإن الأمر يستغرق بعض الوقت لتوفير أجهزة افتراضية جديدة. تحتاج إلى أنظمة في مناطق متعددة للحفاظ على الوقت ، مع سعة احتياطية 20-25 ٪ لتوسيع نطاقها بسرعة والتعامل مع فشل النظام غير المتوقع.
المتسابقون المستضيفون جيثب استفد من مركز البيانات العميق في Microsoft والخبرة السحابية ولديهم فرق مخصصة للقاء اتفاقية مستوى الخدمة (SLA) من 99.9 ٪ توافر. وهذا بدون أي خبرة من جانبك. في الواقع ، تعتبر العديد من الفرق المتسابقين الذين يستضيفون أنفسهم على أمل التغلب على هذا التوفر ، ولكن اتضح أن هذا لا حتى ممكن من الناحية الفنية، كما يعتمد جميع عمليات التشغيل على نفس الخدمات وطائرة التحكم. ومع ذلك ، هناك شروط قد يعمل فيها المتسابقون الذين يستضيفون ذاتيًا من أجلك.
المتسابقين المستضافة ذاتيا قد تلبي احتياجاتك إذا كنت بحاجة إلى عدد ثابت من الخوادم ، وتركز بشكل أساسي على النشر على الموارد غير السوداء ، ولا تحتاج إلى توسيع نطاق الطلب. فقط تذكر أن الحالات ليست سريعة الصدفة ، لذلك ستحتاج إلى استراتيجية للحفاظ على الحالات خالية من القطع الأثرية التي تم إنشاؤها بواسطة عمليات التشغيل السابقة. لا يفتقر المتسابقون المستضيفون أيضًا إلى إمكانات التحجيم التلقائي ؛ أنها تتطلب حل التحجيم ليتمكن من دعم الفرق الكبيرة أو إنشاء مثيلات جديدة ديناميكيا.
جيثب أجهزة Runner Controller (ARC) يوفر حلاً ، ولكنه يحتوي على قيود لأنه يتطلب خبرة Kubernetes ويدعم عداء Linux فقط. يعتمد Kubernetes على الحاويات بدلاً من VMs ، والتي قد تتطلب منك استكشاف الأخطاء وإصلاحها في مشكلات الموارد وتوسيع نطاقها. يمكن أن توفر ARC أيضًا توفرًا كبيرًا من خلال وجود مجموعات متعددة. كما لاحظنا من قبل ، إذا كان عملك الأساسي يستضيف ويدير مجموعات Kubernetes ، فقد يكون ARC هو النهج الصحيح.
لا يدعم ARC أعباء عمل MacOS أو Windows ، ويقدم كلتا البيئتين عددًا من القيود. على سبيل المثال ، على جهاز MacOS ، يُطلب منك استخدام أجهزة Apple ، فأنت تقتصر على VMs لكل جهاز ، ولا يتم دعم وقت تشغيل Apple. بالنسبة لنظام التشغيل Windows ، يتم دعم الأجهزة الافتراضية ، لكنك تحتاج إلى أوركسترا مخصص لتوسيع الحالات. على الرغم من أنه يمكنك إنشاء حاويات Windows وإدارتها باستخدام Kubernetes ، فإن الحاويات لديها أوقات بدء تشغيل بطيئة وقد لا تدعم بعض أدوات التطوير والاختبار اللازمة.
باختصار ، نوصي المتسابقين المستضيفون GitHub لكل من أعباء عمل MacOS و Windows.
حماية
يعد الأمان أمرًا بالغ الأهمية لعمليات CI/CD ، نظرًا لأنها قد تتطلب الوصول إلى الموارد الداخلية أو الإنتاجية ، وغالبًا ما تستخدم البناء مكتبات أطراف ثالثة وأوقات تشغيلها وأدواتها ، والتي يمكن أن تنشئ سطحًا كبيرًا في الهجوم إذا لم يكن مضمونًا بشكل صحيح.
المتسابقون المستضيفون جيثب توفير الأمن المدمج من خلال نهج الدفاع في العمق ، صفرية. توفر VMs عزل الشبكة ، ومنع التعرض للعدائين الآخرين وموارد الشركات. في الواقع ، يتطلب الوصول إلى الموارد المشتركة أو السحابية امتيازات مرتفعة (نوصي مقرر). تقوم طبيعتها سريعة الزوال بإلغاء ثبات الكود وتمنع تنفيذ التطبيق بعد الانتهاء من المهمة ، مما يقلل من مخاطر الوصول غير المصرح بها.
يتم تشفير أقراص التخزين للعدائين المستضافين في بقية ، مما يضمن حماية الكود على القرص. يتم تشفير جميع الاتصالات على github ، ويتم توجيه عمليات النشر إلى Microsoft Azure من خلال العمود الفقري Azure ، مما يقلل من العبور عبر الإنترنت العام. نحن نقدم تحديثات أمان منتظمة لكل من أنظمة التشغيل وبرامج العداء. يعد سطح الهجوم المصقول وتقليل مخاطر الانتهاكات الأمنية عوامل رئيسية في وزارة الدفاع تصميم DevSecops المرجعي التوصية لتفضيل المتسابقين الذين يستضيفون GitHub لأعباء العمل حتى التأثير المستوى 5.
المتسابقين المستضافة ذاتيا تحول مسؤولية الأمان بالكامل لك ، تتطلب إدارة الشبكة والبنية التحتية والصور والحاويات والذاكرة التخزين المؤقت – هذا كثير من العمل. تحتاج أيضًا إلى الحفاظ على كل شيء محدثًا ، لأن المتسابقين متصلين بـ Github Enterprise Cloud لن يتمكنوا من الاتصال إذا وصلت إلى ذلك أكثر من 30 يومًا متأخراً الإصدار الحالي.
ناهيك عن ذلك ، إذا كنت تدير المتسابقين في بيئة الشبكات الخاصة بك مع الوصول إلى موارد الشركات وبيئات الإنتاج ، فستحتاج إلى تنفيذ استراتيجية صفر ودافع في العمق مع الوصول إلى الموارد المحدودة زمنياً ، والتي تتطلب مستوى عالٍ من خبرة أمان الشبكة.
أخيرًا ، ستحتاج إلى تنفيذ ومواصلة تحديث كلاهما ذاكرة التخزين المؤقت للأداة و الإجراءات ذاكرة التخزين المؤقت أرشيف. خلاف ذلك ، من المحتمل أن تواجه حدود معدلنا أثناء توسيعك.
استكشاف الأخطاء وإصلاحها
إن الحفاظ على الإنتاجية يعني أن المشكلات المتعلقة بتدفقات العمل أو الوظائف – من الموارد ، ومشكلات الشبكة ، وانقطاع التيار الكهربائي – يجب حلها بسرعة. نتيجة لذلك ، من المهم أن يكون لديك استراتيجية دعم.
المتسابقون المستضيفون جيثب تعال مع 24/7 يدعم في جميع المناطق الزمنية ، مع وجود خطط متميزة تقدم مهندسين موثوقية متخصصين وأوقات استجابة سريعة مدتها 30 دقيقة للمشكلات الحرجة. هذا يلغي الحاجة إلى استكشاف الأخطاء وإصلاحها في البنية التحتية. يعالج Github جميع مشكلات البيئة العداء ، من مشاكل الأداء إلى أوقات الانتظار ، مما يتيح لك التركيز على التنمية أثناء توزيع الأكمام لدينا ، واكتشاف المشكلات ، ونصل إلى إصلاحها.
المتسابقين المستضافة ذاتيا، ومع ذلك ، قم بتحويل مسؤولية الدعم من المستوى الأول بالنسبة لك ، مما يعني أن شخصًا ما سيتعين عليه استكشاف أخطاء الأداء أو الشبكة أو الطوابير عند حدوثها ، مما يترك وقتًا أقل للترميز المرح. 🙁
ليس ذلك فحسب ، بل يمكن لـ GitHub المساعدة فقط في خدمة الإجراءات نفسها ؛ لا يمكننا المساعدة في البنية التحتية الخاصة بك ، أو مجموعات Kubernetes ، أو حلول تزامن مخصصة. لذلك إذا اكتشفوا أن المشكلة مع نظامك ، فستكون بمفردك لحلها. بدون تخطيط كافٍ ، يمكنك قضاء الكثير من الوقت في انتظار حل يتيح لك العودة إلى الكتابة ونشر التعليمات البرمجية. يمكن أن يكون ذلك سعرًا كبيرًا لدفع ثمن المتسابقين الذين يستضيفونه.
إدارة التكلفة
أخيرًا ، هناك مسألة التكلفة. إذا كنت تقدم حلول إدارة Kubernetes أو Prostructure Management ، فقد يكون لدى المتسابقين الذين يستضيفونهم بعض المزايا. إذا لم يكن الأمر كذلك ، فمن المحتمل أن يكون المتسابقون المستضيفون Github هو الإجابة هنا أيضًا.
المتسابقون المستضيفون جيثب العمل على نموذج الدفع AS-you مع عدم وجود تكاليف أو التزامات مقدمة. تعمل الفرق على تحسين النفقات من خلال تحسينات سير العمل واختيار العداء المناسب. بالإضافة إلى ذلك ، هناك وفورات مضمنة في التكاليف. على سبيل المثال ، لا يتقاضى Github رسومًا للخروج من الشبكة – ميزة كبيرة عند العمل مع صور الحاويات الكبيرة على منصات السحابة. لدى Github أيضًا شراكة مع Docker التي تسمح بسحب الصور غير المحدود من Docker Hub من قبل المتسابقين الذين يستضيفونه GitHub ، مما يزيل في كثير من الأحيان الحاجة إلى إنشاء سجل تمرير أو شراء تراخيص أعمال لعمليات CI/CD. تتم معالجة الحفاظ على البيئة ودعمها وتأمينها من قبل Github ، وتجنب نفقات الموظفين الإضافية والخدمة. أخيرًا ، تستفيد حسابات المؤسسات من 50000 دقيقة شهرية مجانية للعدائين القياسيين.
المتسابقين المستضافة ذاتيا، كما هو الحال في مجالات أخرى ، تعني المؤسسات مسؤولية جميع تكاليف البنية التحتية والشبكة والتخزين والأمن ودعم تكاليف. يمنحك هذا الكثير من المرونة في تحديد البيئة ، وحجم مواردك ، وتخصيص الشبكات. على الرغم من أن نفقات الجهاز الظاهري لكل دقيقة قد تبدو في البداية أقل ، إلا أن إجمالي تكلفة الملكية يمكن (وغالبًا ما لا) أن تتجاوز الحلول التي تستضيفها الجمعية عند حساب تكاليف الدعم الإضافية هذه.
أي عداء هو الأفضل لك؟
يعتمد اختيار العداء المناسب على احتياجاتك المحددة. يكون المتسابقون المستضيفون ذاتيًا أكثر ملاءمة عند استخدام GitHub Enterprise Server (الذي يفتقر إلى المتسابقين المستضافين) ، إذا كان عملك الأساسي يتضمن إدارة البنية التحتية أو Kubernetes ، أو عندما يكون لديك متطلبات الامتثال لا تلتقي بها GitHub Enterprise Cloud مع إقامة البيانات. تحديات التحجيم والحيوية تجعل الاستضافة الذاتية أقل مثالية لنظام التشغيل Windows و MacOS. إذا كان الاستضافة الذاتية ضروريًا ، ففكر في نهج هجين واستخدام المتسابقين الذين يستضيفون ذاتيًا فقط لأعباء العمل المحددة حيث تكون هناك حاجة إليها.
بالنسبة لمعظم المطورين والغالبية العظمى من السيناريوهات ، ما لم يكن لديك متطلبات فريدة للغاية أو كنت على استعداد للاستثمار بعمق في البنية التحتية للحفاظ على طنين نظام CI/CD ، فمن المحتمل أن يكون المتسابقون الذين يستضيفون Github أفضل خيار لك. إنها مفيدة بشكل خاص لأولئك الجدد في إجراءات github ويتيحون لك قضاء وقتك في التركيز على قيمة العمل والأفكار الجديدة وكتابة التعليمات البرمجية – على نحو إدارة المتسابقين.
كتبه
اترك تعليقاً