تقنية

DevOps و CI/CD

خطوط نشر آلية، وقابلية مراقبة، وإصدارات دون توقف.

الفرق التي تطلق تحديثات يوميًا ليست أكثر جرأة، بل لديها خطوط نشر أفضل. نبني منظومة التسليم التي تجعل الإصدارات أمرًا روتينيًا: اختبارات آلية، وإطلاق تدريجي، وقابلية مراقبة تجيب عن الأسئلة قبل أن تُطرح. تتناول هذه الصفحة الطريق من التعديل الذي يكتبه المطوّر إلى عملائك: ما الذي يُفحص، وبأي بيئات يمر التغيير، وكيف يصل إلى المستخدمين دون أن يحبس أحد أنفاسه. أما تشغيل بيئة الإنتاج بعد ذلك، من مراقبة وتحديثات أمنية ونسخ احتياطية وفاتورة سحابية، فهو من اختصاص خدمة الحوسبة السحابية وDevOps لدينا. وكل ما نبنيه هنا يعيش في مستودعك، فيبقى مسار النشر قائمًا بعد رحيل أي مهندس، بما في ذلك مهندسونا.

ما نقدمه

كيف ننفّذ DevOps و CI/CD.

أتمتة خطوط النشر

كل تعديل (commit) يُفحص ويُختبر ويُبنى ويصبح جاهزًا للنشر، دون أي خطوات يدوية.

نشر دون توقف

إصدارات blue-green وتدريجية مع تراجع فوري.

قابلية المراقبة

سجلات ومقاييس وتتبّع مترابطة لتشخيص الحوادث في دقائق.

تطابق البيئات

بيئة اختبار تتصرف مثل بيئة الإنتاج، لتحدث المفاجآت هناك لا في الإنتاج، والاثنتان مبنيتان من التعريفات نفسها فلا تبتعد إحداهما عن الأخرى.

اختبارات تركّز على ما يكلّف مالًا

فحوص آلية مركّزة على الأسعار والضرائب وإتمام الشراء والصلاحيات، أي المواضع التي يتحول فيها خطأ صامت إلى استرداد أموال أو أسبوع من المطابقات المحاسبية.

سجل تغييرات يمكنك إثباته

كل تغيير في بيئة الإنتاج يمكن تتبّعه إلى تعديل تمت مراجعته، وموافقة، وسجل نشر، وهو الدليل الذي يطلبه المدققون وعملاء المؤسسات الكبرى.

على أرض الواقع

ما يتضمنه العمل فعلًا.

لا شيء يصل إلى الإنتاج يدويًا

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

اختبر المسارات المكلفة أولًا

نسبة تغطية الاختبارات رقم يجمّل الصورة. المهم هو ما إذا كانت الفحوص تحرس المواضع التي يكلّف فيها الخطأ مالًا أو ثقة. في SG-Mart كان يجب أن تطابق الضريبة نظام Odoo حتى آخر قرش، وتعيش قواعد التسعير والضرائب والعروض في نواة تجارية واحدة تستدعيها تطبيقات iOS وAndroid والموقع جميعًا. والقواعد الموجودة في مكان واحد يمكن اختبارها في مكان واحد، ويُطلق تغيير السعر مرة واحدة فيظهر على المنصات الثلاث.

بيئات يمكن إعادة بنائها من المستودع

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

النشر شيء والإطلاق شيء آخر

الفصل بينهما هو ما يجعل الإصدار المتكرر آمنًا. يمكن أن يصل الكود إلى بيئة الإنتاج وهو معطّل، ثم يُفعَّل للموظفين، ثم لشريحة من المستخدمين، ثم للجميع، ويمكن إيقافه مجددًا دون إعادة نشر. نماذج blue-green والنشر التدريجي تتولى جانب البنية التحتية، ومفاتيح التفعيل (feature flags) تتولى جانب المنتج. والتغييرات الصغيرة أسهل في المراجعة والتراجع، ولهذا نعرض عليك برمجيات تعمل كل أسبوع.

استبدال نظام قائم إصدارًا بعد إصدار

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

مسار النشر هو سجل التغييرات لديك

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

ما تحصل عليه

نتائج، لا مجرد مخرجات.

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

ما ستريد أن تسأل عنه.

ما الفرق بين هذه الخدمة وخدمة الحوسبة السحابية وDevOps لديكم؟

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

ننشر يدويًا اليوم. من أين نبدأ؟

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

ما الأدوات التي تستخدمونها، وهل سنصبح مقيّدين بكم؟

أدوات CI/CD قياسية وTerraform، مُعدّة داخل مستودعاتك وحساباتك. لا أدوات احتكارية، ولا شيء يحتاج إلينا لتشغيله. وإن كانت لديك خدمة CI وأعراف عمل قائمة، نتكيّف معها، مع مستودعاتك ودورات العمل (sprints) لديك ومعاييرك، بدل استبدالها بما نفضّله.

من يملك مسار النشر وبيانات الدخول التي يستخدمها؟

أنت. إعدادات مسار النشر كود داخل مستودع مؤسستك من أول تعديل، وبيانات دخول النشر تتبع حسابات المؤسسة، لا الحساب الشخصي لأي مهندس. وتطبيق «مرشدك» السعودي يوضح حجم ما هو على المحك: حين تسلّمناه كان كوده المصدري قد فُقد، واضطررنا إلى إعادة بناء التطبيق بالكامل من الصفر.

كم يحتاج المهندس الجديد حتى يطلق تغييرات عبر هذا المسار؟

يصبح منتجًا خلال دورة العمل الأولى. وما يحسم ذلك يقع في معظمه على جانبك: الوصول إلى المستودع وبيئة العمل منذ الصباح الأول، ومهمة بداية صغيرة لكنها فعلية، وملاحظات سريعة على أول طلب دمج (pull request). أما البيئة القابلة لإعادة البناء والفحوص الموحّدة للجميع فتتكفل بالباقي.

كم يكلّف إعداد ذلك؟

يعتمد على عدد التطبيقات والبيئات ووجهات الإطلاق، وعلى حجم الاختبارات الموجودة، لذلك لا توجد باقة ثابتة. يتراوح سعر عملنا بالساعة بين 25 و49 دولارًا، ويُذكر الرقم في عرض السعر قبل أن تلتزم. وفي المنتجات التي نبنيها، البنية التحتية المكتوبة ككود جزء من مجموعة التقنيات الافتراضية بدءًا من المنتج الأولي، فلا تكون البيئات القابلة لإعادة البناء إضافة لاحقة.

لنتحدث عن DevOps و CI/CD.

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