نمط السفير

Azure

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

يمكن أن يكون هذا النمط مفيدًا لتفريغ مهام اتصال العميل الشائعة مثل المراقبة وتسجيل الدخول والتوجيه والأمان (مثل TLS) و أنماط المرونة بطريقة لا لغوية. غالبا ما يتم استخدامه مع التطبيقات القديمة أو التطبيقات الأخرى التي يصعب تعديلها، من أجل توسيع قدرات الشبكات الخاصة بها. ويمكنها أيضًا تمكين فريق متخصص من تنفيذ هذه الميزات.

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

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

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

حل

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

رسم تخطيطي لنمط السفير

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

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

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

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

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

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

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

قد لا يكون هذا النمط مناسبًا:

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

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

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

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

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

- SE:06 عناصر التحكم في الشبكة
- تشفير SE:07

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

مثال

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

مثال على نمط السفير