استراتيجيات النشر الأزرق والأخضر في Azure Spring Cloud
تنطبق هذه المقالة على: ✔️ طبقة المؤسسة الأساسية ✔️/القياسية
توضح هذه المقالة دعم النشر الأزرق والأخضر في Azure Spring Cloud.
يسمح Azure Spring Cloud (المستوى القياسي والأعلى) بعمليتي نشر لكل تطبيق، يتلقى أحدهما فقط حركة مرور الإنتاج. يعرف هذا النمط عادة باسم النشر الأزرق والأخضر. يتيح دعم Azure Spring Cloud للنشر الأزرق والأخضر، إلى جانب خط أنابيب التسليم المستمر (CD) والاختبار الآلي الصارم، عمليات نشر التطبيقات الرشيقة بثقة عالية.
عمليات النشر بالتناوب
تتمثل أبسط طريقة لتنفيذ النشر الأزرق والأخضر باستخدام Azure Spring Cloud في إنشاء عمليتي نشر ثابتتين والنشر دائما في النشر الذي لا يتلقى حركة مرور الإنتاج. باستخدام مهمة Azure Spring Cloud لخطوط أنابيب Azure، يمكنك النشر بهذه الطريقة فقط عن طريق تعيين UseStagingDeployment العلامة إلى true.
إليك كيفية عمل نهج عمليات النشر بالتناوب في الممارسة العملية:
لنفترض أن تطبيقك يحتوي على عمليتي نشر: deployment1 و deployment2. حاليا، يتم تعيينه كنشر الإنتاج، deployment1 ويتم تشغيل إصدار v3 من التطبيق.
هذا يجعل deployment2 نشر التدريج. وبالتالي ، عندما يكون خط أنابيب التسليم المستمر (CD) جاهزا للتشغيل ، فإنه ينشر الإصدار التالي من التطبيق ، الإصدار v4، على نشر deployment2التدريج .

بعد v4 بدء التشغيل deployment2، يمكنك إجراء اختبارات تلقائية ويدوية ضده من خلال نقطة نهاية اختبار خاصة لضمان v4 تلبية جميع التوقعات.

عندما يكون لديك ثقة في v4، يمكنك تعيين deployment2 نشر الإنتاج بحيث يتلقى كل حركة مرور الإنتاج. v3 ستظل قيد التشغيل deployment1 في حالة اكتشاف مشكلة حرجة تتطلب التراجع.

الآن ، deployment1 هو نشر التدريج. لذلك يتم نشر التشغيل التالي لخط أنابيب النشر على deployment1.

يمكنك الآن الاختبار على deployment1نقطة نهاية الاختبار V5 الخاصة.

أخيرا ، بعد v5 تلبية جميع توقعاتك ، يمكنك تعيين deployment1 نشر الإنتاج مرة أخرى ، بحيث v5 يتلقى كل حركة مرور الإنتاج.

مقايضات نهج النشر بالتناوب
نهج عمليات النشر بالتناوب بسيط وسريع ، لأنه لا يتطلب إنشاء عمليات نشر جديدة. ومع ذلك ، فإنه يقدم العديد من العيوب ، كما هو موضح في الأقسام التالية.
النشر التدريجي المستمر
يظل النشر التدريجي قيد التشغيل دائما، وبالتالي يستهلك موارد مثيل Azure Spring Cloud. يؤدي ذلك إلى مضاعفة متطلبات الموارد لكل تطبيق على Azure Spring Cloud بشكل فعال.
شرط سباق الموافقة
لنفترض أنه في التطبيق أعلاه ، يتطلب خط أنابيب الإصدار موافقة يدوية قبل أن يتمكن كل إصدار جديد من التطبيق من تلقي حركة مرور الإنتاج. يؤدي ذلك إلى خطر أنه بينما ينتظر إصدار واحد () الموافقة اليدوية على النشر المرحلي ، سيتم تشغيل خط أنابيب النشر مرة أخرى والكتابة فوقه بإصدار أحدث (v6v7). بعد ذلك ، عند منح الموافقة v6 ، سيقوم خط الأنابيب الذي تم نشره v6 بتعيين النشر التدريجي كإنتاج. ولكن الآن سيكون غير المعتمد v7، وليس المعتمد v6، هو الذي يتم نشره على هذا النشر ويتلقى حركة المرور.

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

لا يوجد خطر من نشر إصدار آخر بالتوازي. أولا، لا يسمح Azure Spring Cloud بإنشاء نشر ثالث أثناء وجود عمليتي نشر بالفعل. ثانيا، حتى لو كان من الممكن إجراء أكثر من عمليتي نشر، يتم تحديد كل عملية نشر بواسطة إصدار التطبيق الذي يحتوي عليه. وبالتالي ، فإن خط الأنابيب الذي ينظم نشر لن يحاول سوى تعيين deployment-v6 نشر v6 الإنتاج.

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

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