جعل كل الأشياء زائدة عن الحاجة
قم ببناء التكرار في التطبيق الخاص بك، لتجنب وجود نقاط فشل فردية
تطبيق مرن يسير بشأن الفشل. حدد المسارات الحرجة في تطبيقك. هل يوجد فائض عند كل نقطة في المسار؟ عندما يفشل نظام فرعي، هل سيفشل التطبيق في شيء آخر؟
في تنفيذ مثالي، يمكن أن تؤدي إضافة التكرار الموحد إلى زيادة توفر النظام بشكل كبير. على سبيل المثال، تخيل أن لديك N
مكونات متساوية متوازنة:
- يمكن أن يتعطل بشكل مستقل وفي وقت واحد إزالته من التجمع
- حالة متطابقة أو لا توجد حالة
- ليس لديها عمل قيد التقدم يتم فقدانه بشكل دائم أثناء العطل
- متطابقة في القدرات
- ليس لديهم تبعيات على بعضهم البعض
- يعالج تقليل السعة دون خلل إضافي
إذا كان لكل مكون فردي توفر ، A
فيمكن حساب توفر النظام الإجمالي باستخدام الصيغة 1 - (1 - A)^N
.
التوصيات
ضع في اعتبارك متطلبات العمل. يمكن أن يؤثر مقدار التكرار المضمن في النظام على كل من التكلفة والتعقيد. يجب أن تكون البنية الخاصة بك مستنيرة بمتطلبات عملك، مثل هدف وقت الاسترداد (RTO) وهدف نقطة الاسترداد (RPO). يجب عليك أيضا مراعاة متطلبات الأداء الخاصة بك، وقدرة فريقك على إدارة مجموعات معقدة من الموارد.
ضع في اعتبارك البنى متعددة المناطق ومتعددة المناطق. تأكد من فهم كيفية توفير مناطق التوفر والمناطق للمرونة ومجموعات مختلفة من المقايضات المعمارية.
مناطق توفر Azure هي مجموعات معزولة من مراكز البيانات داخل المنطقة. باستخدام مناطق التوفر، يمكنك أن تكون مرنا في مواجهة حالات فشل مركز بيانات واحد أو منطقة توفر بأكملها. يمكنك استخدام مناطق التوفر لإجراء مفاضلات بين التكلفة وتخفيف المخاطر والأداء وإمكانية الاسترداد. على سبيل المثال، عند استخدام خدمات المنطقة المكررة في البنية الخاصة بك، يوفر Azure النسخ المتماثل التلقائي للبيانات وتجاوز الفشل بين المثيلات المنفصلة جغرافيا، ما يخفف من العديد من أنواع المخاطر المختلفة.
إذا كان لديك حمل عمل بالغ الأهمية وتحتاج إلى التخفيف من مخاطر انقطاع الخدمة على مستوى المنطقة، ففكر في النشر متعدد المناطق. بينما تعزلك عمليات النشر متعددة المناطق ضد الكوارث الإقليمية، فإنها تأتي بتكلفة. عمليات النشر متعددة المناطق أكثر تكلفة من عملية نشر منطقة واحدة، وهي أكثر تعقيدا لإدارتها. ستحتاج إلى إجراءات تشغيلية للتعامل مع تجاوز الفشل وإرجاع الموارد. اعتمادا على متطلبات RPO الخاصة بك، قد تحتاج إلى قبول أداء أقل قليلا لتمكين النسخ المتماثل للبيانات عبر المناطق. قد تكون التكلفة الإضافية والتعقيد مبررين لبعض سيناريوهات الأعمال.
تلميح
بالنسبة للعديد من أحمال العمل، توفر البنية المكررة في المنطقة أفضل مجموعة من المفاضلات. ضع في اعتبارك بنية متعددة المناطق إذا كانت متطلبات عملك تشير إلى أنك بحاجة إلى التخفيف من المخاطر غير المحتملة للانقطاع على مستوى المنطقة، وإذا كنت مستعدا لقبول المفاضلات التي ينطوي عليها مثل هذا النهج.
لمعرفة المزيد حول كيفية تصميم الحل الخاص بك لاستخدام مناطق التوفر والمناطق، راجع توصيات لاستخدام مناطق التوفر والمناطق.
ضع الأجهزة الافتراضية خلف موازن التحميل. لا تستخدم جهاز افتراضي واحد لأحمال العمل ذات المهام الحرجة. بدلاً من ذلك، ضع أجهزة ظاهرية متعددة خلف موازن التحميل. إذا أصبح أي جهاز افتراضي غير متاح، يقوم موازن التحميل بتوزيع نسبة استخدام الشبكة على الأجهزة الظاهرية السليمة المتبقية.
نسخ قواعد البيانات. تقوم قاعدة بيانات Azure SQL وAzure Cosmos DB تلقائيا بنسخ البيانات داخل منطقة ما، ويمكن تكوينها للنسخ المتماثل عبر مناطق التوفر للحصول على مرونة أعلى. يمكنك أيضا اختيار تمكين النسخ المتماثل الجغرافي عبر المناطق. ينشئ النسخ المتماثل الجغرافي لقاعدة بيانات Azure SQL وAzure Cosmos DB نسخا متماثلة ثانوية قابلة للقراءة من بياناتك في منطقة ثانوية واحدة أو أكثر. إذا حدث انقطاع في المنطقة الأساسية، يمكن أن تفشل قاعدة البيانات إلى المنطقة الثانوية للكتابات. اعتمادا على تكوين النسخ المتماثل، قد تواجه بعض فقدان البيانات من المعاملات غير المبسطة.
إذا كنت تستخدم حل قاعدة بيانات IaaS، فاختر حلا يدعم النسخ المتماثل وتجاوز الفشل، مثل مجموعات قابلية وصول عالية التوفر ل SQL Server Always On.
قسم للتوفر. غالباً ما يُستخدم تقسيم قاعدة البيانات لتحسين قابلية التوسع، ولكن يمكنه أيضاً تحسين الإتاحة. إذا سقطت إحدى القطع، فلا يزال من الممكن الوصول إلى الأجزاء الأخرى. سيؤدي الفشل في جزء واحد إلى تعطيل مجموعة فرعية من إجمالي العمليات.
اختبار المكونات المكررة والتحقق من صحتها. يمكن أن تزيد مزايا الموثوقية بطرق عديدة من البساطة وإضافة التكرار من التعقيد. للتأكد من أن إضافة التكرار يؤدي بالفعل إلى توفر أعلى، يجب التحقق مما يلي:
- هل يمكن لنظامك اكتشاف المكونات الزائدة عن الحاجة السليمة وغير الصحية بشكل موثوق، وإزالتها بأمان وبسرعة من تجمع المكونات؟
- هل يمكن لنظامك توسيع نطاقه بشكل موثوق وفي المكونات المكررة؟
- هل يمكن لعمليات حمل العمل الروتينية والمخصصة والطوارئ التعامل مع التكرار؟
حلول متعددة المناطق
يعرض الرسم التخطيطي التالي تطبيقاً متعدد المناطق يستخدم Azure Traffic Manager للتعامل مع تجاوز الفشل.
إذا كنت تستخدم Traffic Manager أو Azure Front Door في حل متعدد المناطق كآلية لتوجيه تجاوز الفشل، ففكر في التوصيات التالية:
مزامنة تجاوز الفشل الأمامي والخلفي. استخدم آلية التوجيه الخاصة بك للفشل عبر الواجهة الأمامية. إذا أصبحت الواجهة الأمامية غير قابلة للوصول في منطقة واحدة، فإن تجاوز الفشل يوجه الطلبات الجديدة إلى المنطقة الثانوية. اعتمادا على مكونات الواجهة الخلفية وحل قاعدة البيانات، قد تحتاج إلى تنسيق الفشل عبر خدمات وقواعد البيانات الخلفية.
استخدم تجاوز الفشل التلقائي لكن مع الإرجاع اليدوي للفشل. استخدم الأتمتة لتجاوز الفشل، ولكن ليس لإرجاع الموارد. تنطوي إعادة الفشل التلقائي على مخاطر تتمثل في أنك قد تتحول إلى المنطقة الأساسية قبل أن تصبح المنطقة سليمة تماماً. بدلاً من ذلك، تحقق من أن جميع الأنظمة الفرعية للتطبيق سليمة قبل الفشل مرة أخرى يدوياً. كما يجب عليك التحقق من تناسق البيانات قبل الفشل مرة أخرى.
لتحقيق ذلك، قم بتعطيل نقطة النهاية الأساسية بعد تجاوز الفشل. لاحظ أنه إذا كان الفاصل الزمني لمراقبة الفحوصات قصيرا وكان عدد حالات الفشل المسموح بها صغيرا، تجاوز الفشل بالإضافة إلى إرجاع الموارد في وقت قصير. في بعض الحالات، لن يكتمل التعطيل في الوقت المناسب. لتجنب إعادة الفشل غير المؤكدة، ضع في اعتبارك أيضا تنفيذ نقطة نهاية صحية يمكنها التحقق من صحة جميع الأنظمة الفرعية. راجع نمط Health Endpoint Monitoring.
قم بتضمين التكرار لحل التوجيه الخاص بك. ضع في اعتبارك تصميم حل تكرار التوجيه العالمي لتطبيقات الويب ذات المهام الحرجة.