تصميم Service Fabric

تم بناء Service Fabric مع أنظمة فرعية متعددة الطبقات. تمكنك هذه الأنظمة الفرعية من كتابة التطبيقات التالية:

  • متاحة للغاية
  • قابلة للتطوير
  • قابلة للتحكم
  • قابلة للاختبار

يوضح الرسم التخطيطي التالي الأنظمة الفرعية الرئيسية لـ Service Fabric.

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

في النظام المُوزَّع، تُعد القدرة على التواصل الآمن بين العُقد في نظام مجموعة أمراً بالغ الأهمية. في قاعدة المكدس يوجد النظام الفرعي للنقل والذي يوفر اتصالاً آمناً بين العُقد. يقع فوق النظام الفرعي للنقل النظام الفرعي للاتحاد، والذي يجمِّع العُقد المختلفة في كيانٍ واحدٍ (يُسمى نُظم المجموعات) بحيث يمكن لـ Service Fabric اكتشاف حالات الفشل وإجراء انتخاب القائد وتوفير توجيه متسق. النظام الفرعي للموثوقية، الذي يقع فوق النظام الفرعي للاتحاد، مسؤول عن موثوقية خدمات Service Fabric من خلال آليات مثل النسخ المتماثل وإدارة الموارد وتجاوز الفشل. يشكل النظام الفرعي للاتحاد أيضًا أساسًا للنظام الفرعي للاستضافة والتنشيط، والذي يدير دورة حياة تطبيق ما على عُقدة واحدة. يدير النظام الفرعي للإدارة دورة حياة التطبيقات والخدمات. يساعد النظام الفرعي لقابلية الاختبار مطوري التطبيقات على اختبار خدماتهم من خلال أخطاء محاكاة قبل وبعد توزيع التطبيقات والخدمات في بيئات التشغيل. يمنح Service Fabric القدرة على حل مواقع الخدمة من خلال نظام الاتصالات الفرعي خاصته. يتم وضع نماذج برمجة التطبيقات المعروضة للمطورين فوق هذه الأنظمة الفرعية جنبًا إلى جنب مع نموذج التطبيق لتمكين الأدوات.

النظام الفرعي للنقل

ينفذ النظام الفرعي للنقل قناة اتصال لمخطط بيانات من نقطة إلى نقطة. تُستخدم هذه القناة للاتصال داخل نُظم مجموعات service fabric والتواصل بين نظام مجموعة service fabric والعملاء. وهو يدعم أنماط الاتصال أحادية الاتجاه والخاصة بالطلب-الرد، مما يوفر الأساس لتنفيذ البث والبث المتعدد في طبقة الاتحاد. يؤمن النظام الفرعي للنقل الاتصال باستخدام شهادات X509 أو أمان Windows. يُستخدَم هذا النظام الفرعي داخليًا بواسطة Service Fabric ولا يمكن للمُطورين الوصول إليه مباشرةً لبرمجة التطبيقات.

النظام الفرعي للاتحاد

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

النظام الفرعي للموثوقية

يوفر النظام الفرعي للموثوقية آلية لجعل حالة خدمة Service Fabric متاحة بدرجةٍ كبيرةٍ من خلال استخدام أداة النسخ المتماثلو مدير تجاوز الفشل و موازن الموارد.

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

النظام الفرعي للإدارة

يوفر النظام الفرعي للإدارة خدمةً شاملةً وإدارة دورة حياة التطبيق. تمكنك PowerShell cmdlets وواجهات برمجة التطبيقات الإدارية من توفير التطبيقات وتوزيعها وتصحيحها وترقيتها وإلغاء توفيرها دون فقدان التوفر. يقوم النظام الفرعي للإدارة بذلك من خلال الخدمات التالية.

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

استضافة النظام الفرعي

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

النظام الفرعي للاتصالات

يوفر هذا النظام الفرعي رسائل موثوقة داخل نظام المجموعة واكتشاف الخدمة من خلال خدمة "التسمية". تعمل خدمة "التسمية" على حل أسماء الخدمات إلى موقع في نظام المجموعة وتمكِّن المستخدمين من إدارة أسماء الخدمات وخصائصها. باستخدام خدمة "التسمية"، يمكن للعملاء الاتصال بأمان مع أي عُقدة في نظام المجموعة لحل اسم خدمة واسترداد بيانات تعريف الخدمة. باستخدام واجهة برمجة تطبيقات بسيطة لعميل "التسمية"، يمكن لمُستخدمي Service Fabric تطوير خدمات وعملاء قادرين على حل موقع الشبكة الحالي على الرغم من ديناميكية العُقدة أو إعادة تحجيم المجموعة.

النظام الفرعي لقابلية الاختبار

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