أفضل الممارسات لعزل التطبيقات عن انقطاع ناقل الخدمة والكوارث

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

ناقل خدمة Azure ينشر بالفعل مخاطر الفشل الكارثي للأجهزة الفردية أو حتى الرفوف الكاملة عبر المجموعات التي تمتد عبر مجالات فشل متعددة داخل مركز البيانات وتنفذ آليات شفافة للكشف عن الفشل وتجاوز الفشل بحيث تستمر الخدمة في العمل ضمن مستويات الخدمة المؤكدة وعادة دون انقطاعات ملحوظة عند حدوث مثل هذه الإخفاقات.

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

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

الانقطاعات والكوارث

من المهم ملاحظة الفرق بين "الانقطاعات" و "الكوارث".

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

تُعرَّف الكارثة بأنها الخسارة الدائمة أو طويلة المدى لمجموعة "ناقل الخدمة" أو منطقة Azure أو مركز البيانات. قد تتوفر المنطقة أو مركز البيانات مرة أخرى أو قد لا تصبح متاحة، أو قد تكون معطلة لساعات أو أيام. ومن أمثلة هذه الكوارث الحرائق أو الفيضانات أو الزلازل. قد تتسبب الكارثة التي تصبح دائمة في فقدان بعض الرسائل أو الأحداث أو البيانات الأخرى. ومع ذلك، في معظم الحالات يجب ألا يكون هناك فقدان للبيانات ويمكن استرداد الرسائل بمجرد عودة مركز البيانات.

الحماية من الانقطاعات والكوارث

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

تتوفر مناطق التوفر على جميع مستويات ناقل خدمة Microsoft Azure، ويوفر الدعم المرونة داخل منطقة جغرافية معينة، مثل شرق الولايات المتحدة. للحصول على مناقشة تفصيلية لاستعادة القدرة على العمل بعد الكوارث في Microsoft Azure، راجع هذه المقالة.

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

خيارات التعافي من الكوارث الجغرافية

التعافي الجغرافي من الكوارث

تدعم طبقة ناقل خدمة Microsoft Azure المتميزة التعافي من الكوارث الجغرافية، على مستوى مساحة الاسم. لمزيد من المعلومات، راجع ناقل خدمة Azure التعافي من الكوارث الجغرافية. تقوم ميزة التعافي من الكوارث الجغرافية، المتوفرة للطبقة المتميزة فقط، بتنفيذ استرداد بيانات التعريف بعد الكوارث، وتعتمد على مساحات الأسماء الأساسية والثانوية. باستخدام التعافي من الكوارث الجغرافية، يتم نسخ بيانات التعريف للكيانات فقط بين مساحات الأسماء الأساسية والثانوية.

النسخ المتماثل الجغرافي

يدعم المستوى المتميز لناقل خدمة Microsoft Azure أيضا النسخ المتماثل الجغرافي، على مستوى مساحة الاسم. لمزيد من المعلومات، راجع ناقل خدمة Azure النسخ المتماثل الجغرافي (معاينة عامة). ميزة النسخ المتماثل الجغرافي، المتوفرة للطبقة المتميزة فقط وفي المعاينة العامة حاليا، تنفذ بيانات التعريف واسترداد البيانات بعد عطل فادح، وتعتمد على المناطق الأساسية والثانوية. باستخدام النسخ المتماثل الجغرافي، يتم نسخ كل من بيانات التعريف والبيانات للكيانات بين المناطق الأساسية والثانوية.

اختلافات الميزات عالية المستوى

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

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

مجموعات التوافر

تدعم جميع مستويات ناقل خدمة Microsoft Azure مناطق التوفر، ما يوفر مواقع معزولة عن الأخطاء داخل نفس منطقة Azure. يدير ناقل خدمة Microsoft Azure ثلاث نسخ من مخزن المراسلة (1 أساسي و2 ثانوي). يحافظ ناقل خدمة Microsoft Azure على مزامنة جميع النسخ الثلاث لعمليات البيانات والإدارة. إذا فشلت النسخة الأساسية، يتم ترقية إحدى النسخ الثانوية إلى النسخة الأساسية دون أي توقف محسوس. إذا رأيت التطبيقات حالات قطع اتصال عابرة من ناقل خدمة Microsoft Azure، فإن منطق إعادة المحاولة في SDK يعيد الاتصال تلقائيا بناقل خدمة Microsoft Azure.

عند استخدام مناطق التوفر، يتم نسخ كل من بيانات التعريف والبيانات (الرسائل) عبر مراكز البيانات في منطقة التوفر.

إشعار

يتوفر دعم مناطق التوفر فقط في مناطق Azure حيث توجد مناطق التوفر.

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

إشعار

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

الحماية من الكوارث - المستوى القياسي

لتحقيق المرونة في مواجهة الكوارث باستخدام المستوى القياسي لناقل خدمة Microsoft Azure، يمكنك استخدام النسخ المتماثل النشط أو السلبي . لكل نهج، إذا كان يجب أن تظل قائمة انتظار أو موضوع معين متاحاً في ظل وجود انقطاع في مركز البيانات، فيمكنك إنشاؤه في كلتا مساحتي الاسم. ويمكن أن يكون لكلا الكيانين نفس الاسم. على سبيل المثال، يمكن الوصول إلى قائمة انتظار أساسية ضمن contosoPrimary.servicebus.windows.net/myQueue، بينما يمكن الوصول إلى نظيرتها الثانوية ضمن contosoSecondary.servicebus.windows.net/myQueue.

إشعار

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

إذا كان التطبيق لا يتطلب اتصالا دائما من المرسل إلى المتلقي، يمكن للتطبيق تنفيذ قائمة انتظار دائمة من جانب العميل لمنع فقدان الرسائل ولتدريع المرسل من أي أخطاء عابرة لناقل خدمة Microsoft Azure.

النسخ المتماثل النشط

يستخدم النسخ المتماثل النشط الكيانات في كلا مساحتي الأسماء لكل عملية. أي عميل يرسل رسالة يرسل نسختين من نفس الرسالة. يتم إرسال النسخة الأولى إلى الكيان الأساسي (على سبيل المثال، contosoPrimary.servicebus.windows.net/sales)، ويتم إرسال النسخة الثانية من الرسالة إلى الكيان الثانوي (على سبيل المثال، contosoSecondary.servicebus.windows.net/sales).

يتلقى العميل رسائل من قائمتي الانتظار. يعالج المتلقي النسخة الأولى من الرسالة، ويتم منع النسخة الثانية. لمنع الرسائل المكررة، يجب على المرسل تمييز كل رسالة باستخدام معرف فريد. يجب تمييز نسختين من الرسالة بنفس المعرف. يمكنك استخدام خصائص ServiceBusMessage.MessageId أو ServiceBusMessage.Subject أو خاصية مخصصة لوضع علامة على الرسالة. يجب أن يحتفظ المتلقي بقائمة من الرسائل التي استلمها بالفعل.

إشعار

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

النسخ المتماثل الخامل

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

يتلقى العميل رسائل من قائمتي الانتظار. نظرا لوجود فرصة أن يتلقى المتلقي نسختين من نفس الرسالة، يجب على المتلقي منع الرسائل المكررة. يمكنك منع التكرارات بنفس الطريقة الموضحة للنسخ المتماثل النشط.

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

عند استخدام النسخ المتماثل السلبي، في السيناريوهات التالية، يمكن فقدان الرسائل أو تلقيها مرتين:

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

يوضح نموذج مهام النسخ المتماثل لمراسلة Azure مع .NET Core النسخ المتماثل للرسائل بين مساحات الأسماء.

الخطوات التالية

لمعرفة المزيد حول التعافي من الكوارث، راجع المقالات التالية: