السرعة لم تكن أبداً الجزء الصعب في CI/CD

صورة بواسطة Duc Van على Unsplash

السرعة لم تكن أبداً الجزء الصعب في CI/CD

M. Zakyuddin Munziri

M. Zakyuddin Munziri

@zakiego

كتب أصلاً بـ English.

لفترة طويلة، اعتقدت الفرق أن تسريع CI/CD سيحل معظم مشاكل التسليم (delivery).

خطوط الأنابيب (Pipelines) كانت تبدو بطيئة. البناء يستغرق وقتاً طويلاً جداً. عمليات النشر تتراكم. لذا قمنا بتحسين السرعة.

قمنا بموازاة الوظائف. أضفنا التخزين المؤقت (caching). نشر تلقائي عند الدمج.

أصبح CI/CD سريعاً.

الشحن (Shipping) لا يزال يبدو مخيفاً.

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


خطوط الأنابيب الأسرع لم تزل التردد

حتى مع خطوط الأنابيب السريعة، المهندسون ما زالوا يتوقفون قبل الشحن.

التراجع (Rollbacks) بدا محفوفاً بالمخاطر. الحوادث لا تزال تسبب التوتر. أزرار النشر يتم النقر عليها بحذر.

لا شيء كان يمنع الإصدار تقنياً. ما كان يمنعه هو الشك.

CI/CD السريع يعني فقط أن الكود يتحرك بسرعة خلال النظام. لا يعني أن النظام آمن للتغيير.


سرعة CI/CD تحل التنفيذ وليس الثقة

CI/CD رائع في التنفيذ.

إنه يبني، يختبر، يحزم، وينشر بشكل موثوق ومتكرر. معظم الفرق يمكنها الوصول لهذا المستوى بجهد كافٍ.

الثقة (Confidence) شيء مختلف.

الثقة هي معرفة ما يحدث عندما يسوء شيء ما.

كم هو كبير التأثير. كم هي سرعة إخبار النظام لك. كم هي سرعة إيقافك له.

السرعة وحدها لا تجيب على أي من ذلك.


العلامات الخضراء لا تخلق الثقة

هذا فخ شائع.

كل الفحوصات خضراء. الاختبارات تنجح. خطوط الأنابيب تنجح.

مع ذلك، لا أحد يشعر بالرضا تجاه الشحن.

العلامات الخضراء تخبرك أن القواعد نجحت. لا تخبرك كيف يتصرف النظام تحت الظروف الحقيقية.

الثقة لا تُبنى باجتياز الفحوصات. إنها تُبنى برؤية الفشل يتم احتواؤه والتعافي منه.


ما جعل الشحن يبدو آمناً فعلياً

الأشياء تغيرت عندما توقفنا عن سؤال كيف نجعل CI/CD أسرع وبدأنا نسأل كيف نجعل الشحن يبدو أكثر أماناً.

بضعة أشياء كانت تهم أكثر من السرعة الخام.

مسارات التراجع التي تم التدرب عليها، وليست الموثقة فقط.

أعلام الميزات (Feature flags) المستخدمة كمفاتيح أمان، وليست فقط أدوات إطلاق.

بيئات المعاينة التي جعلت التغييرات مرئية مبكراً.

حلقات التغذية الراجعة التي أظهرت المشاكل قبل أن يشتكي المستخدمون.

لا شيء من هذا كان معقداً. كل هذا قلل عدم اليقين.


الثقة هي خاصية نظام

هذا كان أكبر تحول في العقلية.

الثقة لا تعيش في أداة واحدة أو خط أنابيب واحد.

إذا كان التراجع بطيئاً، الثقة منخفضة. إذا كانت التنبيهات صاخبة، الثقة منخفضة. إذا كانت الملكية غير واضحة، الثقة منخفضة.

الأتمتة تضخم النظام الذي تملكه بالفعل. إذا كان النظام هشاً، فإن CI/CD الأسرع يجعل الفشل يصل أسرع فقط.


ما لم يتغير

المهندسون ما زالوا يتخذون القرارات.

الحكم لا يزال مهماً. المقايضات لا تزال موجودة. الحالات الحادة (Edge cases) لا تزال تحدث.

CI/CD يساعد في نقل الكود. إنه لا يزيل المسؤولية.

الثقة تأتي من معرفة أن النظام سيساعدك على التعافي بدلاً من معاقبتك.


ختاماً

السرعة في CI/CD هي رهان أساسي.

العمل الحقيقي هو بناء أنظمة تتصرف بشكل يمكن التنبؤ به عندما تسوء الأمور.

إذا قمت بالتحسين للسرعة فقط، قد تشحن الفرق أسرع لكنها تشعر بشعور أسوأ.

إذا قمت بالتحسين للثقة، السرعة تتبع بشكل طبيعي.

السرعة لم تكن أبداً الجزء الصعب.

مقالات أخرى

توقفت عن الحفر في السجلات

توقفت عن الحفر في السجلات

تغير تصحيح الأخطاء (Debugging) عندما توقفت عن قراءة السجلات يدوياً وبدأت في استخدام وكلاء الذكاء الاصطناعي لربط الأخطاء عبر بيانات المراقبة - وصول أسرع للسبب الجذري، وطرق مسدودة أقل.

الألم الصامت عند نشر التطبيقات

الألم الصامت عند نشر التطبيقات

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