نمط تطبيق ويب موثوق به ل .NET - تخطيط التنفيذ

Azure App Service
Azure Front Door
Azure Cache for Redis
.NET

توضح لك هذه المقالة كيفية تطبيق نمط Reliable Web App. نمط Reliable Web App هو مجموعة من المبادئ وتقنيات التنفيذ التي تحدد كيفية تعديل تطبيقات الويب (replatform) عند الترحيل إلى السحابة. وهو يركز على الحد الأدنى من تحديثات التعليمات البرمجية التي تحتاج إلى إجراءها لتكون ناجحا في السحابة.

لتسهيل تطبيق هذا التوجيه، هناك تنفيذ مرجعي لنمط Reliable Web App الذي يمكنك نشره.

رسم تخطيطي يوضح بنية التنفيذ المرجعي.بنية التنفيذ المرجعي. قم بتنزيل ملف Visio لهذه البنية.

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

تحديد أهداف العمل

الخطوة الأولية في الانتقال إلى حوسبة السحابة هي توضيح أهداف عملك. يؤكد نمط Reliable Web App على أهمية تعيين الأهداف الفورية والمستقبلية لتطبيق الويب الخاص بك. تؤثر هذه الأهداف على اختيارك للخدمات السحابية وبنية تطبيق الويب الخاص بك في السحابة.

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

  • تطبيق تغييرات التعليمات البرمجية منخفضة التكلفة وعالية القيمة
  • الوصول إلى هدف مستوى الخدمة (SLO) بنسبة 99.9٪
  • اعتماد ممارسات DevOps
  • إنشاء بيئات محسنة للتكلفة
  • تحسين الموثوقية والأمان

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

اختيار الخدمات المدارة المناسبة

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

مثال: قبل الانتقال إلى السحابة، كان تطبيق الويب الخاص بتذاكر Relecloud تطبيقا محليا ومتجانسا ASP.NET. تم تشغيله على جهازين ظاهريين وكان لديه قاعدة بيانات Microsoft SQL Server. عانى تطبيق الويب من التحديات الشائعة في قابلية التوسع ونشر الميزات. قادت نقطة البداية هذه وأهداف أعمالهم وSLO خيارات الخدمة الخاصة بهم.

النظام الأساسي للتطبيق‬

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

مثال: اختار Relecloud Azure App Service كمنصة للتطبيق للأسباب التالية:

  • اتفاقية مستوى الخدمة العالية (SLA): لديها اتفاقية مستوى خدمة عالية تفي ببيئة الإنتاج SLO بنسبة 99.9٪.

  • تقليل الحمل الإداري: إنه حل مدار بالكامل يعالج التحجيم والفحوصات الصحية وموازنة التحميل.

  • دعم .NET: يدعم إصدار .NET الذي تتم كتابة التطبيق فيه.

  • إمكانية التعبئة في حاويات: يمكن أن يتقارب تطبيق الويب على السحابة دون التعبئة في حاويات، ولكن النظام الأساسي للتطبيق يدعم أيضا التعبئة في حاويات دون تغيير خدمات Azure

  • التحجيم التلقائي: يمكن لتطبيق الويب توسيع نطاقه تلقائيا لأعلى ولأسفل أو داخل أو خارج استنادا إلى حركة مرور المستخدم وإعداداته.

إدارة الهوية

اختر أفضل حل لإدارة الهوية لتطبيق الويب الخاص بك. لمزيد من المعلومات، راجع مقارنة حلولإدارة الهوية وأساليب المصادقة.

مثال: اختار Relecloud معرف Microsoft Entra للأسباب التالية:

  • المصادقة والتخويل: يحتاج التطبيق إلى مصادقة وتخويل موظفي مركز الاتصال.

  • قابل للتطوير: يتوسع لدعم سيناريوهات أكبر.

  • التحكم في هوية المستخدم: يمكن لموظفي مركز الاتصال استخدام هويات المؤسسة الموجودة لديهم.

  • دعم بروتوكول التخويل: يدعم OAuth 2.0 للهويات المدارة.

قاعدة البيانات

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

مثال: استخدم تطبيق الويب SQL Server محليا، وأراد Relecloud استخدام مخطط قاعدة البيانات الحالي والإجراءات المخزنة والوظائف. تتوفر العديد من منتجات SQL على Azure، ولكن Relecloud اختار Azure SQL Database للأسباب التالية:

  • الموثوقية: توفر طبقة الأغراض العامة اتفاقية مستوى خدمة عالية وتكرار متعدد المناطق. يمكن أن يدعم تحميل المستخدم العالي.

  • تقليل الحمل الإداري: يوفر مثيل قاعدة بيانات SQL مدارا.

  • دعم الترحيل: يدعم ترحيل قاعدة البيانات من SQL Server المحلي.

  • الاتساق مع التكوينات المحلية: يدعم الإجراءات المخزنة الحالية والوظائف وطرق العرض.

  • المرونة: تدعم النسخ الاحتياطية والاستعادة في نقطة زمنية.

  • الخبرة والحد الأدنى من إعادة العمل: تستفيد قاعدة بيانات SQL من الخبرة الداخلية وتتطلب الحد الأدنى من العمل لاعتماده.

مراقبة أداء التطبيق

اختر مراقبة أداء التطبيق لتطبيق الويب الخاص بك. Application Insights هو حل إدارة أداء التطبيق الأصلي Azure (APM). إنها ميزة من ميزات حل مراقبة Azure، Azure Monitor.

مثال: اختار Relecloud استخدام Application Insights للأسباب التالية:

  • التكامل مع Azure Monitor: يوفر أفضل تكامل مع Azure Monitor.

  • الكشف عن الحالات الشاذة: يكتشف تلقائيا حالات الشذوذ في الأداء.

  • استكشاف الأخطاء وإصلاحها: يساعدك على تشخيص المشاكل في التطبيق قيد التشغيل.

  • المراقبة: يجمع معلومات حول كيفية استخدام المستخدمين للتطبيق ويسمح لك بتعقب الأحداث المخصصة بسهولة.

  • فجوة الرؤية: لم يكن للحل المحلي حل مراقبة أداء التطبيق. يوفر Application Insights تكاملا سهلا مع النظام الأساسي للتطبيق والرمز.

ذاكرة التخزين المؤقت

اختر ما إذا كنت تريد إضافة ذاكرة التخزين المؤقت إلى بنية تطبيق الويب الخاص بك. Azure Cache for Redis هو حل ذاكرة التخزين المؤقت الأساسي ل Azure. إنه مخزن بيانات مدار في الذاكرة استنادا إلى برنامج Redis.

مثال: يتم انحراف تحميل تطبيق الويب الخاص ب Relecloud بشكل كبير نحو عرض الحفلات الموسيقية وتفاصيل المكان. أضاف ذاكرة التخزين المؤقت Azure ل Redis للأسباب التالية:

  • تقليل الحمل الإداري: إنها خدمة مدارة بالكامل.

  • السرعة والحجم: يحتوي على معدل نقل عال للبيانات وقراءات زمن انتقال منخفضة للبيانات التي يتم الوصول إليها بشكل شائع وبطيء التغير.

  • قابلية الدعم المتنوعة: إنه موقع ذاكرة تخزين مؤقت موحد لجميع مثيلات تطبيق الويب لاستخدامها.

  • مخزن البيانات الخارجي: قامت خوادم التطبيقات المحلية بإجراء التخزين المؤقت المحلي للجهاز الظاهري. لم يلغي هذا الإعداد تحميل البيانات المتكررة بشكل كبير، ولم يتمكن من إبطال البيانات.

  • جلسات عمل غير متقنة: تدعم حالة جلسة العمل الخارجية جلسات العمل غير العصية.

موازن التحميل

اختر أفضل موازن تحميل لتطبيق الويب الخاص بك. يحتوي Azure على العديد من موازنات التحميل. للحصول على تعليمات حول تضييق الخيارات، راجع اختيار أفضل موازن تحميل لتطبيقك.

مثال: احتاج Relecloud إلى موازن تحميل من الطبقة 7 يمكنه توجيه نسبة استخدام الشبكة عبر مناطق متعددة. احتاج Relecloud إلى تطبيق ويب متعدد المناطق لتلبية SLO بنسبة 99.9٪. اختار Relecloud Azure Front Door للأسباب التالية:

  • موازنة التحميل العمومية: إنه موازن تحميل من الطبقة 7 يمكنه توجيه نسبة استخدام الشبكة عبر مناطق متعددة.

  • جدار حماية تطبيق الويب: يتكامل أصلا مع Azure Web Application Firewall.

  • مرونة التوجيه: يسمح لفريق التطبيق بتكوين احتياجات الدخول لدعم التغييرات المستقبلية في التطبيق.

  • تسريع حركة المرور: يستخدم anycast للوصول إلى أقرب نقطة حضور Azure والعثور على أسرع مسار إلى تطبيق الويب.

  • المجالات المخصصة: يدعم أسماء المجالات المخصصة مع التحقق من صحة المجال المرن.

  • فحوصات السلامة: يحتاج التطبيق إلى مراقبة ذكية لفحص الصحة. يستخدم Azure Front Door استجابات من التحقيق لتحديد أفضل أصل لتوجيه طلبات العميل.

  • دعم المراقبة: يدعم التقارير المضمنة مع لوحة معلومات الكل في واحد لكل من Front Door وأنماط الأمان. يمكنك تكوين التنبيهات التي تتكامل مع Azure Monitor. يتيح للتطبيق تسجيل كل طلب وفحوصات السلامة الفاشلة.

  • حماية DDoS: تحتوي على حماية DDoS من الطبقة 3-4 المضمنة.

  • شبكة تسليم المحتوى: تقوم بوضع Relecloud لاستخدام شبكة تسليم المحتوى. توفر شبكة تسليم المحتوى تسريع الموقع.

جدار حماية تطبيق الويب

اختر جدار حماية لتطبيق الويب لحماية تطبيق الويب الخاص بك من هجمات الويب. Azure Web Application Firewall هو جدار حماية تطبيق الويب Azure (WAF) ويوفر حماية مركزية من استغلالات الويب الشائعة ونقاط الضعف.

مثال: Relecloud مطلوب لحماية تطبيق الويب من هجمات الويب. استخدموا Azure Web Application Firewall للأسباب التالية:

  • الحماية العالمية: توفر حماية محسنة لتطبيق الويب العالمي دون التضحية بالأداء.

  • حماية Botnet: يمكن للفريق المراقبة والتكوين لمعالجة المخاوف الأمنية من شبكات الروبوت.

  • التماثل مع الموقع المحلي: كان الحل المحلي يعمل خلف جدار حماية تطبيق ويب تديره تكنولوجيا المعلومات.

  • سهولة الاستخدام: يتكامل Web Application Firewall مع Azure Front Door.

تخزين التكوين

اختر ما إذا كنت تريد إضافة تخزين تكوين التطبيق إلى تطبيق الويب الخاص بك. Azure App Configuration هي خدمة لإدارة إعدادات التطبيق وعلامات الميزات مركزيا. راجع أفضل ممارسات تكوين التطبيق لتحديد ما إذا كانت هذه الخدمة مناسبة لتطبيقك.

مثال: أراد Relecloud استبدال التكوين المستند إلى الملف بمخزن تكوين مركزي يتكامل مع النظام الأساسي للتطبيق والرمز. لقد أضافوا App Configuration إلى البنية للأسباب التالية:

  • المرونة: يدعم علامات الميزات. تسمح علامات الميزات للمستخدمين بالاشتراك في ميزات المعاينة المبكرة والخروج منها في بيئة إنتاج دون إعادة نشر التطبيق.

  • يدعم مسار Git: مصدر الحقيقة لبيانات التكوين اللازمة لتكون مستودع Git. البنية الأساسية لبرنامج ربط العمليات التجارية اللازمة لتحديث البيانات في مخزن التكوين المركزي.

  • يدعم الهويات المدارة: يدعم الهويات المدارة لتبسيط الاتصال بمخزن التكوين والمساعدة في تأمينه.

مدير الأسرار

استخدم Azure Key Vault إذا كان لديك أسرار لإدارتها في Azure. يمكنك دمج Key Vault في تطبيقات .NET باستخدام كائن ConfigurationBuilder.

مثال: يقوم تطبيق الويب المحلي في Relecloud بتخزين البيانات السرية في ملفات تكوين التعليمات البرمجية، ولكن من الممارسات الأمنية الأفضل إضفاء الطابع الخارجي على الأسرار. في حين أن الهويات المدارة هي الحل المفضل للاتصال بموارد Azure، فإن Relecloud لديها أسرار التطبيق التي تحتاج إلى إدارتها. استخدمت Relecloud Key Vault للأسباب التالية:

  • التشفير: يدعم التشفير في حالة الثبات وفي أثناء النقل.

  • الهويات المدارة: يمكن لخدمات التطبيق استخدام الهويات المدارة للوصول إلى المخزن السري.

  • المراقبة والتسجيل: يسهل الوصول إلى التدقيق وينشئ تنبيهات عند تغيير الأسرار المخزنة.

  • التكامل: يوفر التكامل الأصلي مع مخزن تكوين Azure (تكوين التطبيق) والنظام الأساسي لاستضافة الويب (App Service).

حل التخزين

اختر أفضل حل تخزين لتطبيق الويب الخاص بك. لمزيد من المعلومات، راجع مراجعة خيارات التخزين.

مثال: محليا، يحتوي تطبيق الويب على تخزين قرص مثبت على كل خادم ويب، ولكن الفريق أراد استخدام حل تخزين بيانات خارجي. اختار Relecloud Azure Blob Storage للأسباب التالية:

  • الوصول الآمن: يمكن لتطبيق الويب التخلص من نقاط النهاية للوصول إلى التخزين المكشوف للإنترنت العام مع وصول مجهول.

  • التشفير: يقوم بتشفير البيانات الثابتة والمتنقلة.

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

أمان نقطة النهاية

اختر تمكين الوصول الخاص فقط إلى خدمات Azure. يوفر Azure Private Link الوصول إلى حلول النظام الأساسي كخدمة عبر نقطة نهاية خاصة في شبكتك الظاهرية. تنتقل نسبة استخدام الشبكة بين شبكتك الظاهرية والخدمة عبر شبكة Microsoft الأساسية.

مثال: استخدمت Relecloud Private Link للأسباب التالية:

  • اتصال أمان محسن: يتيح للتطبيق الوصول بشكل خاص إلى الخدمات على النظام الأساسي Azure ويقلل من بصمة الشبكة لمخازن البيانات للمساعدة في الحماية من تسرب البيانات.

  • الحد الأدنى من الجهد: تدعم نقاط النهاية الخاصة النظام الأساسي لتطبيق الويب والنظام الأساسي لقاعدة البيانات التي يستخدمها تطبيق الويب. يعكس كلا النظامين الأساسيين التكوينات المحلية الحالية للحد الأدنى من التغيير.

أمن الشبكة

اختر ما إذا كنت تريد إضافة خدمات أمان الشبكة إلى الشبكات الظاهرية. جدار حماية Azure هو جدار حماية شبكة ذي حالة يفحص نسبة استخدام الشبكة. يسمح لك Azure Bastion بالاتصال بالأجهزة الظاهرية بشكل آمن دون الكشف عن منافذ RDP/SSH.

مثال: اعتمدت Relecloud طوبولوجيا شبكة محورية ورغبت في وضع خدمات أمان الشبكة المشتركة في المركز. يحسن جدار حماية Azure الأمان عن طريق فحص جميع نسبة استخدام الشبكة الصادرة من المحاور لزيادة أمان الشبكة. احتاج Relecloud إلى Azure Bastion لعمليات النشر الآمنة من مضيف الانتقال السريع في الشبكة الفرعية DevOps.

اختيار البنية المناسبة

بعد تحديد ما يعنيه تطبيق الويب الخاص بك وتحديد أفضل الخدمات السحابية، تحتاج إلى تحديد أفضل بنية لتطبيق الويب الخاص بك. تحتاج بنيتك إلى دعم متطلبات عملك والمتطلبات التقنية وSLO.

اختيار تكرار البنية

تحدد أهداف العمل مستوى البنية الأساسية وتكرار البيانات التي يحتاجها تطبيق الويب الخاص بك. يوفر SLO لتطبيق الويب أساسا جيدا لفهم متطلبات التكرار الخاصة بك. حساب اتفاقية مستوى الخدمة المركبة جميع التبعيات على المسار الهام للتوفر. يجب أن تتضمن التبعيات خدمات Azure والحلول غير التابعة ل Microsoft.

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

مثال: حدد Relecloud الخدمات على المسار الحرج للتوفر. استخدموا اتفاقيات مستوى الخدمة ل Azure لتقديرات التوفر. استنادا إلى حساب اتفاقية مستوى الخدمة المركبة، احتاج Relecloud إلى بنية متعددة المناطق لتلبية SLO بنسبة 99.9٪.

اختيار تخطيط الشبكة

اختر تخطيط الشبكة المناسب لمتطلبات الويب والشبكات. مخطط الشبكة المحوري هو التكوين القياسي في Azure. يوفر مزايا التكلفة والإدارة والأمان. كما أنه يدعم خيارات الاتصال المختلط بالشبكات المحلية.

مثال: اختار Relecloud طوبولوجيا شبكة محورية ومركز لزيادة أمان النشر متعدد المناطق بتكلفة أقل ونفقات إدارية.

اختيار تكرار البيانات

ضمان موثوقية البيانات من خلال توزيعها عبر مناطق Azure ومناطق التوفر؛ كلما كان الفصل الجغرافي أكبر، كلما ارتفعت الموثوقية.

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

  • تنفيذ النسخ المتماثل للبيانات. محاذاة النسخ المتماثل للبيانات مع البنية وRPO. يدعم Azure عادة النسخ المتماثل المتزامن داخل مناطق التوفر. استخدم مناطق متعددة لتعزيز الموثوقية بسهولة. بالنسبة لتطبيقات الويب متعددة المناطق في إعداد نشط-سلبي، قم بنسخ البيانات نسخا متماثلا إلى المنطقة السلبية وفقا ل RPO لتطبيق الويب، ما يضمن تجاوز تكرار النسخ المتماثل RPO. تتطلب التكوينات النشطة-النشطة مزامنة البيانات في الوقت الفعلي تقريبا عبر المناطق، مما قد يتطلب تعديلات التعليمات البرمجية.

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

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

توضح لك هذه المقالة كيفية التخطيط لتنفيذ نمط تطبيق ويب موثوق به. الخطوة التالية هي تطبيق تقنيات التنفيذ لنمط Reliable Web App.