تمرين - توسيع تصميمك إلى مناطق متعددة
تحتاج شركة Contoso Shoes إلى طريقة لتحمل الانقطاعات الإقليمية. تريد نشر الطابع الحالي إلى طبولوجيا نشطة ومشتركة ومتعددة المستويات. يجب تصميم البنية لإعادة توجيه حركة المرور إلى منطقة أخرى في حالة فشل المنطقة.
الحالة الحالية والمشكلة الحالية
كانت منطقة واحدة كافية للتطبيق. ومع ذلك، تسبب الانقطاع الإقليمي الأخير الذي أثر على الشبكات في عدم اتصال النظام من منظور المستخدم النهائي. لم يكن التحجيم الأفقي داخل المنطقة - أو حتى نشر طابع جديد في تلك المنطقة - قد استرد التطبيق من الحالة الفاشلة.
يحتفظ مسجل حالي ب DNS ل api.contososhoes.com
. يتم حل سجل DNS إلى نقطة نهاية خدمات التطبيقات الخلفية (apicontososhoes.azurewebsites.net
) مع فترة مدة البقاء (TTL) لمدة يومين. عند نشر الحل في مناطق متعددة، يجب ترحيل DNS.
المواصفات
- توسيع البنية للعمل في مخطط نشط-نشط ومتعدد المستويات.
- قم بتعديل نموذج طابع النشر الذي يسمح لك بإضافة المناطق وإزالتها ديناميكيا حسب الحاجة بدلا من قائمة بالموارد المشفرة عبر منطقتين.
- إذا كان هناك فشل إقليمي، يجب توجيه حركة المرور إلى المنطقة غير المعيبة دون أي تأثير ملحوظ على العملاء بالفعل في المنطقة غير المعيبة.
- لا ينبغي تثبيت العملاء في منطقة.
- يجب ألا يحتاج العملاء إلى تغيير عناوين URL للاتصال بواجهة برمجة التطبيقات. يجب ترحيل DNS إلى الموجه العمومي.
النهج المُستحسن
للبدء في تصميمك، نوصي باتباع الخطوات التالية:
1-طبولوجيا متعددة
يجب توزيع البنية على منطقتين أو أكثر من مناطق Azure للحماية من الانقطاعات الإقليمية. ضع في اعتبارك هذه العوامل عند اختيار منطقة:
- يجب أن تكون المنطقة قادرة على تحمل انقطاع مركز البيانات في تلك المنطقة.
- يجب دعم خدمات Azure والقدرات المستخدمة في البنية في المنطقة.
- يجب أن تكون المنطقة والموارد المنشورة في المنطقة قريبة من المستخدمين النهائيين والأنظمة التابعة لتقليل زمن انتقال الشبكة.
فكر في سيناريو الفشل. لنفترض أن المنطقة 1 تحصل على 75٪ من نسبة استخدام الشبكة وتحصل المنطقة 2 المضافة حديثا على نسبة استخدام الشبكة المتبقية. يتم تحجيمهما بشكل مناسب للتعامل مع هذا الحمل. هناك انقطاع إقليمي في المنطقة 1، ويتم الآن توجيه جميع حركة المرور إلى المنطقة 2. هل يمكنك جعل هذا الانتقال سلسا؟ هل يمكن أن تدعم المنطقة 2 زيادة تحميل نسبة استخدام الشبكة؟
التحقق من تقدمك: التوزيع العمومي
2- التوجيه العمومي
لكي يتم توجيه العملاء بشفافية إلى منطقة العمل، أضف موازن تحميل عمومي. يجب أن يستخدم موازن التحميل عمليات التحقق من الصحة التي أضفتها في التمرين السابق لتحديد ما إذا كان الطابع سليما أم لا. هل يمكنك التفكير في طرق لخدمة الطلبات المتكررة والمتشابهة التي يمكن تلبيتها دون الوصول إلى الخلفية؟
- اختر خدمة Azure أصلية تتكامل مع البنية الحالية وقادرة على تجاوز الفشل بسرعة.
- تأكد من أن مسار دخول الشبكة يحتوي على عناصر تحكم في مكانها لرفض نسبة استخدام الشبكة غير المصرح بها.
- تقليل زمن انتقال الشبكة عن طريق خدمة المستخدمين النهائيين من ذاكرة التخزين المؤقت للحافة.
- ترحيل DNS الحالي دون التأثير على العملاء الحاليين.
- لديك طريقة تلقائية للإشارة إلى فشل إقليمي لضمان عدم توجيه حركة المرور إلى المنطقة التي حدث فيها خطأ. أيضا، احصل على إشعار عند توفر المنطقة مرة أخرى بحيث يمكن لموازن التحميل استئناف التوجيه إلى تلك المنطقة.
تحقق من تقدمك: توجيه نسبة استخدام الشبكة العمومية
3- تغييرات طابع النشر
الحالة المثالية هي تكوين نشط-نشط لا يتطلب أي تجاوز فشل يدوي، ويمكن تقديم طلبات العميل من أي منطقة. فكر في ما يعنيه ذلك للبنية الخاصة بك. على سبيل المثال، هل لديك أي حالة مخزنة في الطابع الإقليمي؟
تتمتع بعض الخدمات في البنية الحالية بقدرات النسخ المتماثل الجغرافي. ضع في اعتبارك فصل الخدمات إلى طوابع مختلفة: طابع واحد يحتوي على موارد عالمية وطابع إقليمي آخر يشارك الموارد مع الطابع العمومي. وينبغي أن يكون أحد العوامل الحاسمة دورة حياة تلك الموارد. ما العمر المتوقع للمورد بالنسبة إلى الموارد الأخرى في البنية؟ هل يجب أن ينبض المورد بالحياة أو يشارك العمر مع النظام أو المنطقة بأكملها، أم يجب أن يكون مؤقتا؟
استكشف ميزات الموثوقية لخدمات Azure المستخدمة في البنية. يمكنك البدء بهذه الميزات واستكشاف المزيد لتحقيق أقصى قدر من الموثوقية.
خدمة Azure | ميزة |
---|---|
Azure Cosmos DB | الكتابة متعددة المناطق |
Azure Container Registry | النسخ المتماثل الجغرافي |
خطة Azure App Service | دعم منطقة التوفر |
تحقق من تقدمك: النظام الأساسي لبيانات النظام الأساسي | للتطبيقات
راجع عملك
فيما يلي خيارات تصميم التطبيق والبياناتلبنية مماثلة. هل قمت بتغطية جميع الجوانب في تصميمك؟
- ما هي منطقة Azure الأخرى التي حددتها لمخططك متعدد المناطق، ولماذا؟
- هل قمت بتمكين منطقتين أو أكثر من مناطق توفر Azure في كل منطقة Azure للحماية من انقطاع مركز البيانات؟
- هل قمت بتضمين Web Application Firewall للتحكم في حركة مرور الدخول؟ ما هي قواعد التوجيه التي وضعتها ولماذا؟
- كيف يدعم موازن التحميل سجل DNS الحالي؟
- كيف استخدمت واجهة برمجة تطبيقات التحقق من الصحة من التمرين السابق؟
- هل قمت بحماية التطبيق من هجمات DDoS، خاصة منع العملاء الضارين من تجاوز موازن التحميل والوصول إلى المثيلات الإقليمية؟
- كيف تعاملت مع ترحيل DNS؟
- هل قمت بإجراء أي تغييرات SKU على المكون الحالي لدعم المخطط متعدد المناطق؟
- ما هي خدمات Azure التي تركتها كقاعدة بيانات أحادية؟ كيف بررت اختيارك لكل خدمة؟ هل أجريت أي تغييرات في التكوين؟
- هل تقوم بتسجيل الموارد؟ هل تعتقد أن ذلك سيؤثر على قدرتك على فحص السجلات للنظام العام؟