انتشار الأزرق الأخضر ودروبال - ما مقدار ما تعرفه حقًا؟

نشرت: 2019-07-23

يعد Blue Green Deployment أحد الدعائم الأساسية لاستراتيجيات النشر التي تتغلب على قيود النهج التقليدي لنشر التطبيق. ما مقدار ما تعرفه عن انتشار "بلو غرين"؟ كيف يتم تنفيذ Blue Green Deployment في دروبال؟

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

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

ما هو انتشار الأزرق والأخضر؟

Blue-Green Deployment هي تقنية لإصدار التطبيقات عن طريق تحويل أو نقل حركة المرور بين بيئتين متطابقتين تقومان بتشغيل نسختين مختلفتين من التطبيق.

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

توزيع_الخضر_الأزرق

مع ما يقارب الصفر من إمكانات الإطلاق والتراجع ، فإن الفكرة الأساسية لـ Blue-Green Deployment هي تحويل حركة المرور بين بيئتين متطابقتين تشغلان نسختين مختلفتين من التطبيق. بينما يتم تمثيل الإصدار الحالي من التطبيق من خلال بيئة Blue ، يتم تشغيل الإصدار الأخضر بتشغيل إصدار مختلف.

لماذا انتشار الأزرق والأخضر؟

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

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

كيف انتشار الأزرق والأخضر؟

الآن بعد أن عرفنا بيئتي نشر Blue-Green ، دعونا نلقي نظرة على بعض أفضل الممارسات لتنفيذها.

  • موازنة الحمل على تبديل DNS

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

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

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

  • التحديث المتداول

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

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

في حين أن مراقبة البيئة الحية أمر واضح ، إلا أنك لا تريد أن ينتهي بك الأمر إلى الوقوع على حين غرة من خلال عدم مراقبة البيئة الأخرى. نعم ، مراقبة البيئة الأخرى أقل أهمية. ومع ذلك ، نظرًا لأن نفس البيئة يمكن أن تعمل ككلا الحالتين ، فستحتاج إلى طريقة أسهل لتبديل التنبيه بين الحالتين. قم بإعداد رموز API مختلفة للبيئتين اللتين تم الإبلاغ عنهما مرة أخرى ، أو قم بتغيير سياسة التنبيه على البيئة برمجيًا عند تغيير / تبديل دورها.

  • أتمتة

ستؤدي مجموعة الإجراءات اليدوية إلى زيادة عملك. بدلاً من ذلك ، اكتب كل إجراء في عملية التبديل. ستؤدي أتمتة عملية التبديل إلى تنفيذ أسرع وأسهل وأكثر أمانًا لنشر Blue-Green.

انتشار الأزرق الأخضر لمواقع دروبال

مشاكل

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

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

الحل: انتشار الأزرق والأخضر!

دعونا نلقي نظرة على بعض نظرة عامة على البنية التحتية لتطبيق Blue Green Deployment مع دروبال. يتطلب أي نوع من العمليات في دروبال Nginx وخادم php (لتشغيل Drupal بشكل أساسي) ، نحتاج إلى قاعدة بيانات ، ومخزن للملفات ، وبعض ذاكرة التخزين المؤقت ، والمكدس مصمم بطريقة توفره بشكل كبير.

باستخدام Blue Green Deployment ، تحتاج إلى نشر مكدس جديد بقاعدة كود جديدة ونسخ جميع قاعدة البيانات الخاصة بك والحالات المختلفة من قاعدة التعليمات البرمجية السابقة ، ويفضل استخدام Drush.

نظرة عامة على البنية التحتية
المصدر: دروبال كون سياتل 2019

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

انتشار الأزرق والأخضر مع Docker

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

العبارة التي تبحث عنها هي Blue Green Deployment

أثناء نشر Drupal ، يضمن Docker الانتقال السهل بين التطبيقات ، ويسهل إنشاء وتشغيل إصدارات مختلفة من نفس التطبيقات. في مثيل EC2 ، توجد دائمًا مجموعة من حاويات عامل التحميل المرفوعة باللونين الأزرق والأخضر ، ويعمل nginx كخادم وكيل عكسي. يتيح نشر Blue green مع Docker للمستخدم إنشاء موقع ويب Drupal يعمل بالتوازي في بيئتين مختلفتين.


نشر Blue Green مع AWS

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

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

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

نشر AWS باللون الأزرق والأخضر

سيوفر نشر Blue green مع AWS ECS أيضًا مزايا التحسين نظرًا لأنك لست مقيدًا بنفس مجموعة الموارد. أي عندما يتغير غلاف أداء التطبيق من إصدار إلى آخر ، يمكنك ببساطة تشغيل البيئة الجديدة بالموارد المحسّنة (يمكن أن تكون أقل في العدد أو مجموعة مختلفة تمامًا من الموارد).

يتناسب نشر Blue Green في AWS أيضًا بشكل جيد مع عمليات سير عمل التكامل والنشر المستمرة ، مع الحفاظ على التحقق من تعقيداتها من خلال السماح لأتمتة النشر بالنظر في عدد أقل من التبعيات على البيئة الحالية.

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