تقديم إدارة موارد نظام مجموعة Service Fabric

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

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

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

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

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

الاستعانة بالمنسقين

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

المنسقون (وليس البشر) هم الذين يتخذون إجراءات عندما تفشل الأجهزة أو ينتهي حمل العمل لسبب غير متوقع. معظم المنسقين تفعل أكثر من مجرد التعامل مع الفشل. وهي تضم ميزات أخرى تتمثل في إدارة عمليات التوزيع الجديدة، والتعامل مع الترقيات، والتعامل مع استهلاك الموارد والحوكمة. يدور عمل جميع المنسقين في الأساس حول الاحتفاظ ببعض حالة التكوين المطلوبة في البيئة. تريد أن تكون قادرًا على إخبار المنسق بما تريد، وجعله يتحمل على عاتقه حمل العمل المثقل. تعد Aurora الموجودة أعلى Mesos وDocker Datacenter /‏ Docke Swarm وKubernetes وService Fabric كلها أمثلة على المنسقين. ويجري تطوير هؤلاء المنسقين بنشاط لتلبية احتياجات أحمال العمل الحقيقية في بيئات التشغيل.

التنسيق كخدمة

Resource Manager لنظام المجموعة هو مكون النظام الذي يعالج التنسيق في Service Fabric. تنقسم مهمة Resource Manager لنظام المجموعة إلى ثلاثة أجزاء:

  1. إنفاذ القواعد
  2. تحسين بيئتك
  3. المساعدة في العمليات الأخرى

راجع هذه الصفحة للحصول على فيديو تدريبي لفهم كيفية عمل Resource Manager لنظام المجموعة:

ما المختلف في الأمر

في تطبيقات طبقة N التقليدية، هناك دائماً موازن التحميل. عادةً ما يكون هذا عبارة عن موازن تحميل الشبكة (NLB)، أو موازن تحميل التطبيق (ALB) اعتمادًا على مكان وجوده في مكدس الشبكات. تعتمد بعض موازنات التحميل على الأجهزة، مثل عرض BigIP من F5، والبعض الآخر يعتمد على البرامج مثل NLB من Microsoft. في بيئات أخرى، قد ترى شيئاً مثل HAProxy أو nginx أو Istio أو Envoy في هذا الدور. في هذه البنيات، تتمثل مهمة موازنة التحميل في ضمان حصول أحمال العمل عديمة الحالة (تقريباً) على نفس القدر من العمل. تتنوع استراتيجيات موازنة الأحمال. سترسل بعض الموازنات كل استدعاء مختلف إلى خادم مختلف. بينما توفر الموازنات الأخرى تثبيت الجلسات / المرونة. تستخدم الموازنات الأكثر تقدما تقدير الحمل الفعلي أو إعداد التقارير لتوجيه استدعاء بناء على تكلفته المتوقعة وحمل الجهاز الحالي.

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

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

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

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

  • للحصول على معلومات حول البنية وتدفق المعلومات داخل Resource Manager لنظام المجموعة، راجع هذه المقالة
  • يحتوي Resource Manager لنظام المجموعة على العديد من الخيارات لوصف نظام المجموعة. لمعرفة المزيد حول المقاييس، راجع هذه المقالة عن وصف نظام مجموعة Service Fabric
  • لمزيد من المعلومات حول تكوين الخدمات، تعرف على كيفية تكوين الخدمات
  • تعبر المقاييس عن كيفية إدارة الاستهلاك والقدرة الإنتاجية من قِبل Resource Manager لنظام مجموعة Service Fabric. لمعرفة المزيد حول المقاييس وكيفية تكوينها، راجع هذه المقالة
  • يعمل Resource Manager لنظام المجموعة مع إمكانات إدارة Service Fabric. لمعرفة المزيد حول هذا التكامل، اقرأ هذه المقالة
  • للتعرف على كيفية إدارة Resource Manager لنظام المجموعة وموازنة التحميل في نظام المجموعة، راجع المقالة حول موازنة التحميل