أنماط تصميم السحابة التي تدعم الموثوقية
عند تصميم بنيات حمل العمل، يجب عليك استخدام أنماط الصناعة التي تعالج التحديات الشائعة. يمكن أن تساعدك الأنماط على إجراء مفاضلات مقصودة داخل أحمال العمل وتحسين النتيجة المرجوة. كما يمكن أن تساعد في التخفيف من المخاطر التي تنشأ من مشاكل محددة، والتي يمكن أن تؤثر على الأمان والأداء والتكلفة والعمليات. إذا لم يتم تخفيف هذه المخاطر، فستتسبب في النهاية في مشكلات الموثوقية. هذه الأنماط مدعومة بتجربة العالم الحقيقي، ومصممة لنماذج التشغيل والحجم السحابي، وهي بطبيعتها غير محددة للموردين. يعد استخدام أنماط معروفة كطريقة لتوحيد تصميم حمل العمل الخاص بك مكونا من عناصر التميز التشغيلي.
تدعم العديد من أنماط التصميم مباشرة ركيزة هيكلية واحدة أو أكثر. أنماط التصميم التي تدعم ركيزة الموثوقية تعطي الأولوية لتوفر حمل العمل والحفاظ على الذات والاسترداد وسلامة البيانات والمعالجة واحتواء الأعطال.
أنماط التصميم للموثوقية
يلخص الجدول التالي أنماط تصميم السحابة التي تدعم أهداف الموثوقية.
النمط | الملخص |
---|---|
السفير | تغليف اتصالات الشبكة وإدارتها عن طريق إلغاء تحميل المهام الشاملة المتعلقة بالاتصال بالشبكة. تبدأ خدمات المساعد الناتجة الاتصال نيابة عن العميل. توفر نقطة الوساطة هذه فرصة لإضافة أنماط موثوقية إلى اتصال الشبكة، مثل إعادة المحاولة أو التخزين المؤقت. |
الخدمات الخلفية للخدمات الأمامية | تفرد طبقة الخدمة لحمل العمل عن طريق إنشاء خدمات منفصلة حصرية لواجهة أمامية معينة. وبسبب هذا الفصل، قد لا يؤثر عطل في طبقة الخدمة التي تدعم عميلا واحدا على توفر وصول عميل آخر. عند معاملة عملاء مختلفين بشكل مختلف، يمكنك تحديد أولويات جهود الموثوقية استنادا إلى أنماط وصول العميل المتوقعة. |
الفواصل | يقدم تجزئة مقصودة وكاملة بين المكونات لعزل نصف قطر الانفجار من الأعطال. تحاول استراتيجية عزل الفشل هذه احتواء أخطاء على الرأس المجمع الذي يواجه المشكلة فقط، ما يمنع التأثير على الرؤوس المجمعة الأخرى. |
ذاكرة التخزين المؤقت الجانبية | تحسين الوصول إلى البيانات المقروءة بشكل متكرر عن طريق إدخال ذاكرة تخزين مؤقت يتم ملؤها عند الطلب. ثم يتم استخدام ذاكرة التخزين المؤقت على الطلبات اللاحقة لنفس البيانات. ينشئ التخزين المؤقت نسخا متماثلا للبيانات، ويمكن استخدامه، بطرق محدودة، للحفاظ على توفر البيانات التي يتم الوصول إليها بشكل متكرر إذا كان مخزن البيانات الأصلي غير متوفر مؤقتا. بالإضافة إلى ذلك، إذا كان هناك عطل في ذاكرة التخزين المؤقت، يمكن أن يعود حمل العمل إلى مخزن بيانات الأصل. |
قاطع الدائرة | يمنع الطلبات المستمرة إلى تبعية غير وظيفية أو غير متوفرة. من خلال القيام بذلك، يمنع هذا النمط التحميل الزائد للتبعية المعيبة. يمكنك أيضا استخدام هذا النمط لتشغيل تدهور رشيق في حمل العمل. غالبا ما تقترن قاطعات الدوائر باسترداد تلقائي لتوفير كل من الحفاظ على الذات والشفاء الذاتي. |
فحص المطالبة | يفصل البيانات عن تدفق المراسلة، ما يوفر طريقة لاسترداد البيانات المتعلقة برسالة بشكل منفصل. لا توفر حافلات الرسائل نفس الموثوقية والإصلاح بعد كارثة التي غالبا ما تكون موجودة في مخازن البيانات المخصصة، لذلك يمكن أن يوفر فصل البيانات عن الرسالة موثوقية متزايدة للبيانات الأساسية. يسمح هذا الفصل أيضا بنهج استرداد قائمة انتظار الرسائل بعد وقوع كارثة. |
عمليات تعويضية | يوفر آلية للتعافي من حالات الفشل عن طريق عكس تأثيرات الإجراءات المطبقة مسبقا. يعالج هذا النمط الأعطال في مسارات حمل العمل الهامة باستخدام إجراءات التعويض، والتي يمكن أن تتضمن عمليات مثل التراجع المباشر عن تغييرات البيانات أو كسر تأمين المعاملات أو حتى تنفيذ سلوك النظام الأصلي لعكس التأثير. |
عملاء الحوسبة | تطبيق المعالجة الموزعة والمتزامنة لمعالجة العناصر في قائمة انتظار بكفاءة. ينشئ هذا النموذج التكرار في معالجة قائمة الانتظار عن طريق التعامل مع المستهلكين كنسخ متماثلة، لذلك لا يمنع فشل المثيل المستهلكين الآخرين من معالجة رسائل قائمة الانتظار. |
مصادر الأحداث | يعامل تغيير الحالة كسلسلة من الأحداث، والتقاطها في سجل إلحاقي فقط غير قابل للتغيير. يمكنك استخدام هذا النمط عندما يكون التاريخ الموثوق به للتغييرات أمرا بالغ الأهمية في عملية تجارية معقدة. كما أنه يسهل إعادة بناء الدولة إذا كنت بحاجة إلى استرداد مخازن الحالة. |
الهوية الموحدة | تفويض الثقة إلى موفر هوية خارجي لحمل العمل لإدارة المستخدمين وتوفير المصادقة لتطبيقك. يؤدي إلغاء تحميل إدارة المستخدم والمصادقة إلى نقل الموثوقية لتلك المكونات إلى موفر الهوية، والذي عادة ما يكون له اتفاقية مستوى خدمة عالية. بالإضافة إلى ذلك، أثناء الإصلاح بعد كارثة لحمل العمل، ربما لا تحتاج مكونات المصادقة إلى المعالجة كجزء من خطة استرداد حمل العمل. |
تجميع البوابة | يبسط تفاعلات العميل مع حمل العمل الخاص بك عن طريق تجميع المكالمات إلى خدمات خلفية متعددة في طلب واحد. يمكنك هذا المخطط من تحويل معالجة الأخطاء العابرة من تنفيذ موزع عبر العملاء إلى تنفيذ مركزي. |
تفريغ البوابة | إلغاء تحميل معالجة الطلب إلى جهاز بوابة قبل وبعد إعادة توجيه الطلب إلى عقدة خلفية. يؤدي إلغاء تحميل هذه المسؤولية إلى بوابة إلى تقليل تعقيد التعليمات البرمجية للتطبيق على العقد الخلفية. في بعض الحالات، يستبدل إلغاء التحميل الوظائف تماما بميزة موثوقة توفرها النظام الأساسي. |
توجيه البوابة | توجيه طلبات الشبكة الواردة إلى أنظمة خلفية مختلفة استنادا إلى أهداف الطلب ومنطق العمل وتوافر الواجهة الخلفية. يمكنك توجيه البوابة من توجيه نسبة استخدام الشبكة إلى العقد السليمة فقط في نظامك. |
جيود | توزيع الأنظمة التي تعمل في أوضاع التوفر النشطة-النشطة عبر مناطق جغرافية متعددة. يستخدم هذا النمط النسخ المتماثل للبيانات لدعم المثالي الذي يمكن لأي عميل الاتصال بأي مثيل جغرافي. يمكن أن يساعد حمل العمل الخاص بك على تحمل انقطاع إقليمي واحد أو أكثر. |
مراقبة نقطة النهاية الصحيحة | يوفر طريقة لمراقبة صحة النظام أو حالته عن طريق الكشف عن نقطة نهاية مصممة خصيصا لهذا الغرض. يمكنك استخدام نقطة النهاية هذه لإدارة صحة حمل العمل والتنبيه ولوحة المعلومات. يمكنك أيضا استخدامه كإشارة للمعالجة الذاتية. |
جدول الفهرس | يحسن استرداد البيانات في مخازن البيانات الموزعة من خلال تمكين العملاء من البحث عن بيانات التعريف بحيث يمكن استرداد البيانات مباشرة، وتجنب الحاجة إلى إجراء عمليات فحص كاملة لمخزن البيانات. نظرا لأنه تتم الإشارة إلى العملاء إلى الجزء أو القسم أو نقطة النهاية الخاصة بهم من خلال عملية بحث، يمكنك استخدام هذا النمط لتسهيل نهج تجاوز الفشل للوصول إلى البيانات. |
اختيار المسؤول الرئيسي | إنشاء قائد لمثيلات تطبيق موزع. ينسق المسؤول الرئيسي المسؤوليات المتعلقة بتحقيق الهدف. يخفف هذا النمط من تأثير أعطال العقدة عن طريق إعادة توجيه العمل بشكل موثوق. كما أنه ينفذ تجاوز الفشل عبر خوارزميات توافق الآراء عندما يتعطل قائد. |
الخطوط وعوامل التصفية | تقسيم معالجة البيانات المعقدة إلى سلسلة من المراحل المستقلة لتحقيق نتيجة محددة. تتيح المسؤولية الفردية لكل مرحلة الاهتمام المركز وتتجنب تشتيت انتباه معالجة البيانات المتشابكة. |
قائمة انتظار الأولوية | يضمن معالجة العناصر ذات الأولوية الأعلى وإكمالها قبل العناصر ذات الأولوية الأقل. يمكنك فصل العناصر استنادا إلى أولوية العمل من تركيز جهود الموثوقية على العمل الأكثر أهمية. |
الناشر/المشترك | فصل مكونات البنية عن طريق استبدال الاتصال المباشر من عميل إلى خدمة أو اتصال من عميل إلى خدمات بالاتصال عبر وسيط رسائل وسيط أو ناقل حدث. |
تسوية التحميل المستند إلى قائمة الانتظار | يتحكم في مستوى الطلبات أو المهام الواردة عن طريق تخزينها مؤقتا في قائمة انتظار والسماح لمعالج قائمة الانتظار بمعالجتها بوتيرة خاضعة للرقابة. يمكن أن يوفر هذا النهج المرونة ضد الارتفاع المفاجئ في الطلب من خلال فصل وصول المهام عن معالجتها. يمكن أيضا عزل الأعطال في معالجة قائمة الانتظار بحيث لا تؤثر على المدخول. |
تحديد المعدل | يتحكم في معدل طلبات العميل لتقليل أخطاء التقييد وتجنب سيناريوهات إعادة المحاولة عند الخطأ غير المحدودة. يحمي هذا التكتيك العميل من خلال الاعتراف بقيود وتكاليف الاتصال بالخدمة عند تصميم الخدمة لتجنب الوصول إلى حدود محددة. يعمل عن طريق التحكم في عدد و/أو حجم العمليات التي يتم إرسالها إلى الخدمة خلال فترة زمنية محددة. |
إعادة المحاولة | يعالج حالات الفشل التي قد تكون عابرة أو متقطعة عن طريق إعادة محاولة عمليات معينة، بطريقة خاضعة للرقابة. يعد التخفيف من الأخطاء العابرة في نظام موزع تقنية رئيسية لتحسين مرونة حمل العمل. |
المعاملات الموزعة في Saga | ينسق المعاملات طويلة الأمد والمحتمل أن تكون معقدة عن طريق تحليل العمل إلى تسلسلات من المعاملات الأصغر المستقلة. يجب أن يكون لكل معاملة أيضا إجراءات تعويضية لعكس حالات الفشل في التنفيذ والحفاظ على التكامل. نظرا لأن المعاملات المتجانسة عبر أنظمة موزعة متعددة عادة ما تكون مستحيلة، يوفر هذا النمط الاتساق والموثوقية من خلال تنفيذ الذرية والتعويض. |
مشرف وكيل أداة الجدولة | توزيع المهام وإعادة توزيعها بكفاءة عبر النظام استنادا إلى العوامل التي يمكن ملاحظتها في النظام. يستخدم هذا النمط مقاييس السلامة للكشف عن حالات الفشل وإعادة توجيه المهام إلى عامل سليم من أجل التخفيف من تأثيرات الخلل. |
Sequential Convoy | يحافظ على دخول المراسلة المتزامنة مع دعم المعالجة بترتيب محدد. يمكن لهذا النمط التخلص من ظروف السباق التي يصعب استكشاف الأخطاء وإصلاحها أو معالجة الرسائل المثيرة للجدل أو الحلول البديلة الأخرى لمعالجة الرسائل التي تم ترتيبها بشكل غير صحيح والتي يمكن أن تؤدي إلى أعطال. |
التقسيم | يوجه التحميل إلى وجهة منطقية معينة للتعامل مع الطلب المحدد، ما يتيح الموقع المشترك للتحسين. نظرا لأن البيانات أو المعالجة معزولة عن الجزء، يظل عطل في جزء واحد معزولا عن ذلك الجزء. |
Strangler Fig | يوفر نهجا لاستبدال مكونات النظام قيد التشغيل بشكل منهجي بمكونات جديدة، غالبا أثناء ترحيل النظام أو تحديثه. يمكن أن يساعد النهج التزايدي لهذا النمط في التخفيف من المخاطر أثناء الانتقال. |
التحكم بالنطاق الترددي* | يفرض حدودا على معدل أو معدل نقل الطلبات الواردة إلى مورد أو مكون. يمكنك تصميم الحدود للمساعدة في منع استنفاد الموارد التي قد تؤدي إلى أعطال. يمكنك أيضا استخدام هذا النمط كآلية تحكم في خطة تدهور آمنة. |
الخطوات التالية
راجع أنماط تصميم السحابة التي تدعم ركائز Azure Well-Architected Framework الأخرى: