نمط توجيه البوابة

Azure Application Gateway

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

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

السياق والمشكلة

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

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

حل

ضع بوابة أمام مجموعة من التطبيقات أو الخدمات أو عمليات التوزيع. استخدم توجيه الطبقة 7 للتطبيق لتوجيه الطلب إلى الحالات المناسبة.

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

خدمات متباينة متعددة

رسم تخطيطي للبوابة الموجودة أمام خدمة البحث وخدمة السداد مع الخروج وخدمة محفوظات الطلبات وخدمة عربة التسوق وخدمة المراجعات.

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

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

مثيلات متعددة لنفس الخدمة

رسم تخطيطي للبوابة الموجودة أمام خدمة بحث في المنطقة 1 وخدمة بحث في المنطقة 2.

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

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

إصدارات متعددة من نفس الخدمة

رسم تخطيطي للبوابة الموجودة أمام إصدار خدمة البحث 1 وإصدار خدمة البحث 1.1.

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

المسائل والاعتبارات

  • يمكن أن تقدم خدمة البوابة نقطة فشل واحدة. تأكد من أنه مصمم بشكل صحيح لتلبية متطلبات التوفر الخاصة بك. ضع في اعتبارك المرونة وقدرات التسامح مع الخطأ في التنفيذ.
  • يمكن أن تقدم خدمة البوابة ازدحاما. تأكد من أن البوابة تتمتع بأداء مناسب للتعامل مع الحمل ويمكنها التوسع بسهولة بما يتماشى مع توقعات النمو الخاصة بك.
  • قم بإجراء اختبار التحميل مقابل البوابة للتأكد من عدم تقديم حالات فشل متتالية للخدمات.
  • توجيه البوابة هو المستوى 7. يمكن أن يعتمد على IP أو المنفذ أو الرأس أو عنوان URL.
  • يمكن أن تكون خدمات البوابة عالمية أو إقليمية. Azure Front Door هي بوابة عمومية، بينما Azure Application Gateway إقليمية. استخدم بوابة عمومية إذا كان الحل الخاص بك يتطلب عمليات نشر متعددة المناطق للخدمات. ضع في اعتبارك استخدام Application Gateway إذا كان لديك حمل عمل إقليمي يتطلب تحكما دقيقا في كيفية موازنة نسبة استخدام الشبكة. على سبيل المثال، تريد موازنة نسبة استخدام الشبكة بين الأجهزة الظاهرية.
  • خدمة البوابة هي نقطة النهاية العامة للخدمات التي تقع أمامها. ضع في اعتبارك تقييد وصول الشبكة العامة إلى خدمات الواجهة الخلفية، عن طريق جعل الخدمات متاحة فقط عبر البوابة أو عبر شبكة ظاهرية خاصة.

موعد استخدام النمط

استخدم هذا النمط عندما:

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

قد لا يكون هذا النمط مناسباً عندما يكون لديك تطبيق بسيط يستخدم خدمة واحدة أو خدمتين فقط.

تصميم حمل العمل

يجب على المهندس المعماري تقييم كيفية استخدام نمط توجيه البوابة في تصميم حمل العمل الخاص بهم لمعالجة الأهداف والمبادئ التي تغطيها ركائز Azure Well-Architected Framework. على سبيل المثال:

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

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

- OE:04 الأدوات والعمليات
- OE:11 خزينة ممارسات النشر
تساعد كفاءة الأداء حمل العمل الخاص بك على تلبية الطلبات بكفاءة من خلال التحسينات في التحجيم والبيانات والرمز. يمكنك توجيه البوابة من توزيع نسبة استخدام الشبكة عبر العقد في النظام الخاص بك لتحقيق التوازن بين التحميل.

- PE:05 التحجيم والتقسيم

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

مثال

باستخدام Nginx كموجه، ما يلي هو مثال بسيط لملف تكوين لخادم يقوم بتوجيه طلبات التطبيقات الموجودة في أدلة ظاهرية مختلفة إلى أجهزة مختلفة في النهاية الخلفية.

server {
    listen 80;
    server_name domain.com;

    location /app1 {
        proxy_pass http://10.0.3.10:80;
    }

    location /app2 {
        proxy_pass http://10.0.3.20:80;
    }

    location /app3 {
        proxy_pass http://10.0.3.30:80;
    }
}

يمكن استخدام خدمات Azure التالية لتنفيذ نمط توجيه البوابة:

  • مثيل Application Gateway، الذي يوفر توجيه الطبقة 7 الإقليمية.
  • مثيل Azure Front Door، الذي يوفر توجيه الطبقة 7 العمومية.