نعم ، يمكن أن يكون التدريج مؤلمًا – ولكن إليك سبب عدم تخطي ذلك
نعم ، يمكن أن يكون التدريج مؤلمًا – ولكن إليك سبب عدم تخطي ذلك
سر البرمجة القذر الكبير هو أن الجميع ، في مرحلة ما من حياتهم المهنية ، كسروا شيئًا كبيرًا.
كبير مثل ، مسح قاعدة بيانات الإنتاج الكاملة في أول يوم عمل لهمقتل التطبيق الحي بينما يعرضه العديد من موظفي المبيعات للعملاءأو إسقاط نصف الإنترنت عن طريق تمرير جزء خاطئ من البيانات.
أُووبس.
انضم إلى TNW في فالنسيا!
يأتي قلب التكنولوجيا إلى قلب البحر الأبيض المتوسط
هناك مليون سبب لسوء الأمور ، ولا يمكن تجنب جميع الأسباب تمامًا. لكن وجود إعداد جيد لاختبار رمز جديد يمكن أن يخفف على الأقل من بعض أسوأ الأخطاء.
تقليديا ، نشر رمز جديد على موقع ويب أو تطبيق يتبع ثلاث خطوات. أولاً ، يكتب المهندس الكود ويختبره على أجهزته المحلية – أي جهاز الكمبيوتر الخاص به.
إذا نجح ذلك ، فسيتم نشر هذا الرمز في ما يسمى ببيئة التدريج ، وهي قريبة جدًا من الصفقة الحقيقية. تسمح بيئة التدريج باختبار الميزات أو التحديثات الجديدة باستخدام بيانات حقيقية أو مجهولة المصدر كخطوة أخيرة قبل دفع الكود في النهاية إلى الإنتاج.
ومع ذلك ، فإن الأمر أكثر تعقيدًا قليلاً من ذلك مع تقسيم بيئات التدريج إلى عدة فروع أو شوكات تسمح باختبار ميزات مختلفة في وقت واحد. يتم بعد ذلك دمج هذه التشعبات مرة أخرى في رمز البيئة المرحلية وإرسالها إلى الإنتاج كمجموعة بمجرد إثباتها جميعًا.
الآن هذا يبدو وكأنه إعداد جيد جدا ، أليس كذلك؟ يشبه إلى حد ما كيف تحطمت الطائرات الجديدة عدة مرات على الأرض ، ثم تحلق بدون ركاب ، وأخيراً تحصل على الضوء الأخضر لنقل الأشخاص الذين تم اختبارهم.
ومع ذلك ، توقف العديد من المهندسين مؤخرًا عن استخدام بيئات التدريج بالكامل ، بحجة أنه من الأفضل والأسرع والأرخص تخطي هذه المرحلة وإطلاق التحديثات والميزات الجديدة على الفور. لكن هل يمكن أن يؤذيك هذا أكثر من المساعدة؟
دعنا نلقي نظرة أعمق على سبب تخلي بعض المهندسين عن البيئات التدريجية ولماذا قد لا تتضافر هذه الحجج.
الفيسبوك يفعل ذلك …
يشير الكثيرون إلى Facebook ، الذي اشتهر بأنه لا يستخدم بيئة التدريج ولكنه يدفع التغييرات إلى مجموعة فرعية صغيرة (ولكن لا تزال ضخمة) من المستخدمين – على سبيل المثال 1 ٪ من المستخدمين في المجر – وإذا نجح ذلك ، فإنه يطرح التحديثات على نطاق أوسع جمهور. لكن ليس كل شركة لديها مليارات المستخدمين مثل Facebook.
بالتأكيد ، اعتمادًا على تحمل الفرد لوقت التوقف عن العمل وإجراء الإصلاحات العاجلة ، يمكن إجراء حجة لنشر إصدارات جديدة في البرية ورؤية ما يحدث. بالنسبة لمعظم الشركات ، لا توجد اعتمادات على الحياة أو الموت على منتجاتها. ويمكن أن يكون مجرد السماح لموقع ويب أو تطبيق غير مستجيب ، على الرغم من الوقت الذي يستغرقه التراجع عن التغييرات والتحقق من سبب الاضطراب ، خيارًا.
ثم مرة أخرى ، قد لا يكون هذا هو النهج الأكثر سهولة في الاستخدام. أيضًا ، قد تكون هناك اتفاقيات سارية مع العملاء تحد من حد فترة التوقف عن العمل قبل فرض العقوبات على مزود الخدمة (أنت).
بدلاً من إزالة المساءلة ، فإنها تحولها إلى مجموعة أوسع.
من المهم أن تتأكد من أن التحديثات أو التغييرات التي تهدف إلى إفادة العميل – وقد تكون حتى طلبًا مباشرًا منهم – تعمل بالفعل على النحو المنشود ولا تطلب من مديري حسابك التوسل للمغفرة.
بيئات التدريج مكلفة للغاية
اعتمادًا على حجم موقع الويب أو التطبيق الخاص بك ، فإن الاحتفاظ بخوادم إضافية قيد التشغيل للتشغيل المرحلي يمكن أن يؤدي إلى قيام مدير مالي حزين بدفع فواتير AWS مزدوجة.
اسمحوا لي أن أجري تشبيهًا لمطعم. نعم ، إذا كنت تحتفظ بمطبخك مجهزًا بالكامل وموظفين لاختبار عناصر قائمة جديدة لمطعم ، فسيؤدي ذلك إلى تناول الطعام في النتيجة النهائية. أو كل ذلك.
ولكن يمكن أيضًا إعداد وصفة جديدة وفي المنزل ، على موقد عادي مُختبر ، بكميات أقل من المكونات.
الشيء نفسه ينطبق على التدريج. لا تحتاج بالضرورة إلى نفس سعة الأجهزة لاختبار كود الإنتاج. طالما أنك تأخذ في الاعتبار الموارد النسبية التي تستخدمها ، فمن المفترض أن تحقق نتائج مفيدة. وإذا تأكدت من إنتاج مرايا مرحلية بدلاً من إعداد منزلك ، فيجب أن تكتشف قريبًا ما إذا كنت تفتقد أي مكونات.
انشر IONOS الآن الميزة ، على سبيل المثال ، تعتني بذلك عن طريق تدوير الفروع المميزة وإدارتها في مرحلة التدريج ، دون كسر البنك.
عملت على جهازي
لا يقتصر تنظيم الكود الخاص بك على التأكد من أنه يعمل أثناء الإنتاج فقط. التدريج هو أيضًا حول إشراك أصحاب المصلحة الآخرين.
يجادل المدافعون عن مناهضة التدريج بأن وجود بيئة التدريج يخفف من المسؤولية لأن المطورين يرمون الكود الخاص بهم فوق السياج للأشخاص الذين يديرونه.
قد يكون هذا صحيحًا ، ولكنه يساعد أيضًا في كسر الصوامع بين فرق المنتجات المختلفة.
تسمح بيئة التدريج للمصممين باختبار شكل الأشياء ، وتسمح لمهندسي ضمان الجودة (QA) باختبار الكود الجديد على منصات مختلفة ، ومديري المنتجات لتتبع التغييرات ، والعملاء للتعرف على ميزة جديدة قبل إطلاقها . .
إنه يشبه في الأساس تشغيل مطعمين متوازيين ولكن متطابقين.
بدلاً من إزالة المساءلة ، فإنها تحولها إلى الفريق الأوسع ، والذي بدوره يشجع على المزيد من المشاركة والمشاركة مع المنتج.
التدريج يؤدي إلى طوابير كبيرة
إذا كنت تمثل مؤسسة أكبر تضم العديد من الفرق التي تعمل على أجزاء مختلفة من التطبيق ، فإن وجود بيئة مرحلية واحدة يمكن أن يؤدي إلى عمليات موافقة أطول – وهذا لا يؤدي إلى إبطاء الأمور فحسب ، بل يمنع المهندسين أيضًا من البدء في مهمة جديدة أو القيام بمهام جديدة. عليهم العودة وإصلاح عناصر ميزة سابقة بعد أن بدأوا في مشروع جديد.
قد يكون هذا مملاً للغاية.
من الناحية المثالية ، ما تريده من التدريج هو أن يكون لديك تلقائيًا العديد من فروع الميزات مع بيئات التدريج المقابلة التي تسمح باختبار الكود على الفور ودفعه مباشرةً بعد اجتيازه جميع عمليات الفحص.
مرة أخرى ، يمكن أن تكون إدارة هذا أمرًا شاقًا ، لكن ميزة Deploy Now في IONOS يمكن أن تفعل ذلك من أجلك. من حيث المبدأ ، يجب أن يعني ذلك أنه يمكنك النشر باستمرار ، دون إنشاء قوائم انتظار كبيرة – أو فقدان الإنتاجية بسبب تبديل المهام.
لا يتكافأ التدريج مع الإنتاج
سبب آخر يكره بعض الناس التدريج هو أن الأمر يتطلب الكثير من العمل للحفاظ على بيئة التدريج في حالة نسخة كربونية مع الإنتاج.
هذا لا ينطبق فقط على جميع التبعيات ، ولكن أيضًا للبيانات المستخدمة أثناء الإنتاج ولكن لا يمكن استخدامها أثناء التدريج لأنها تحتوي على أشياء مثل كلمات المرور أو الهويات الشخصية أو بيانات بطاقة الائتمان.
هذا يعني أنك بحاجة إلى الاحتفاظ بمجموعة بيانات وهمية ولديك أيضًا مخطط لتلك البيانات يتوافق مع المعلومات التي لديك في مرحلتي التدريج والإنتاج. يحتاج المطورون أيضًا إلى بيانات وهمية أو بيانات اختبارية مماثلة للتنمية المحلية (أو المراجعة) بحيث يمكن أيضًا استخدام ذلك في التدريج.
إنه يشبه في الأساس تشغيل مطعمين متوازيين ولكن متطابقين.
قد يبدو بناء هذا من الصفر مهمة جبارة. ولكن ، مرة أخرى ، إذا بدأت ببيئة انطلاق مناسبة وتأكدت من تحديثها بانتظام لتعكس الإنتاج ، فسيستغرق الأمر القليل من الوقت الإضافي لمواكبة ذلك.
وقد يساعد وجود هذه العادة في شركتك في الحفاظ على إنتاجية المهندسين ، والأهم من ذلك ، إبقاء عملائك سعداء.
لذا إذا كنت تفكر في التخلص من بيئات التدريج ، فكر مرة أخرى. بدلاً من أن تكون عملية مرهقة ، فإن الحفاظ على مرحلة تطوير المنتج هذه سيساعد في الحفاظ على تجربة العميل تعمل بسلاسة ويسمح لك بإشراك الشركة على نطاق أوسع ، دون كسر البنك.