تغيير حجم نُظم مجموعات Azure Service Fabric

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

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

التحجيم إلى الداخل والخارج، أو التحجيم الأفقي

تغيير عدد العقد في نظام المجموعة. بمجرد انضمام العقد الجديدة إلى نظام المجموعة، ينقل Cluster Resource Manager الخدمات إليها؛ ما يقلل من الحمل على العقد الموجودة. يمكنك أيضاً تقليل عدد العقد إذا لم تُستخدم موارد نظام المجموعة بكفاءة. عندما تغادر العقد نظام المجموعة، تنتقل الخدمات من تلك العقد ويزيد الحمل على العقد المتبقية. يمكن أن يوفر لك تقليل عدد العقد في مجموعة تعمل في Azure المال؛ نظراً لأنك تدفع مقابل عدد الأجهزة الظاهرية التي تستخدمها وليس حمل العمل على تلك الأجهزة الظاهرية.

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

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

عند تغيير حجم مجموعة Azure، ضع الإرشادات التالية في الاعتبار:

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

نظراً لأن أنواع عقدة Service Fabric في نظام مجموعتك مكونة من مجموعات تغيير حجم الجهاز الظاهري في الواجهة الخلفية، يمكنك إعداد قواعد تغيير الحجم التلقائي أو تغيير الحجم اليدوي لكل نوع عقدة/مجموعة تغيير حجم الجهاز الظاهري.

تغيير الحجم البرمجي

في العديد من السيناريوهات، يُعد تغيير حجم نظام المجموعة يدوياً أو باستخدام قواعد التحجيم التلقائي من الحلول الجيدة. ومع ذلك، بالنسبة للسيناريوهات الأكثر تقدماً، قد لا تكون مناسبة. وتشمل العيوب المحتملة لهذه النُهج ما يلي:

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

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

توجد واجهات برمجة تطبيقات Azure والتي تسمح للتطبيقات بالعمل برمجياً مع مجموعات تغيير حجم الجهاز الظاهري ونُظم مجموعات Service Fabric. إذا لم تعمل خيارات تغيير الحجم التلقائي الحالية مع السيناريو الخاص بك، فإن واجهات برمجة التطبيقات هذه تجعل من الممكن تنفيذ منطق تغيير الحجم المخصص.

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

واجهة برمجة التطبيقات المُستخدمة لتفاعلات مجموعة تغيير حجم الجهاز الظاهري (للتحقق من العدد الحالي لمثيلات الجهاز الظاهري وتعديله) هي مكتبة حوسبة إدارة Azure الرائعة. توفر مكتبة الحوسبة الرائعة واجهة برمجة تطبيقات سهلة الاستخدام للتفاعل مع مجموعات تغيير حجم الجهاز الظاهري. للتفاعل مع نظام مجموعة Service Fabric نفسها، استخدم System.Fabric.FabricClient.

لا تحتاج التعليمات البرمجية الخاصة بالتحجيم إلى التشغيل كخدمة في نظام المجموعة المراد تحجيمه. كلٌ من IAzure و FabricClient يمكنهما الاتصال بموارد Azure المرتبطة بهما عن بُعد، لذلك يمكن أن تكون خدمة تغيير الحجم بسهولة تطبيق وحدة تحكم أو خدمة Windows تعمل من خارج تطبيق Service Fabric.

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

التحجيم لأعلى ولأسفل، أو التحجيم الرأسي

يغير الموارد (وحدة المعالجة المركزية (CPU)، أو الذاكرة، أو التخزين) للعقد في نظام المجموعة.

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

مجموعات مقاييس الأجهزة الظاهرية عبارة عن مورد حوسبة Azure يمكنك استخدامه لتوزيع وإدارة مجموعة من الأجهزة الظاهرية كمجموعة. يتم إعداد كل نوع عقدة تم تحديدها في نظام مجموعة Azure كمجموعة تغير سعة منفصلة. يمكن بعد ذلك إدارة كل نوع عقدة بشكل منفصل. يتضمن تغيير حجم نوع العُقدة لأعلى أو لأسفل إضافة نوع عُقدة جديد (مع تحديث VM SKU) وإزالة نوع العقدة القديمة.

عند تغيير حجم نظام مجموعة Azure، ضع الإرشادات التالية في الاعتبار:

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

تختلف عملية قياس نوع العقدة لأعلى أو لأسفل اعتماداً على ما إذا كانت العقدة من النوع غير الأساسي أو الأساسي.

تغيير حجم أنواع العُقدة غير الأساسية

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

تغيير نوع العقدة الأساسية

بادر بتوزيع نوع عقدة أساسية جديدة باستخدام عدة VM SKU المُحدَّث، ثم عطَّل مثيلات نوع العقدة الأساسية الأصلية واحدة تلو الأخرى حتى تنتقل خدمات النظام إلى مجموعة تغيير الحجم الجديدة. تحقق من صحة نظام المجموعة والعُقد الجديدة، ثم بادر بإزالة مجموعة تغيير الحجم الأصلية وحالة العُقدة للعُقد المحذوفة.

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

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