Web Technology

Server Load Balance
توازن الحمل على السيرفر

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

التاريخ

11 أبريل 2024

الدروس

51

المستوى

متقدم

اللغة

انجليزي

المشاهدات

330

المواضيع

4
الشروحات chevron_left Server Load Balance chevron_left Web Technology

Server Load Balance
توازن الحمل على السيرفر

</> Server Load Balance
توازن الحمل على السيرفر

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


التطبيق أو الأداة أو الخدمة التي تقوم بوظيفة توازن الحمل على السيرفر هي موازن الحمل Load Balancer، فهو الذي يقوم بعملية توازن الحمل حيث يتلقى الطلبات الواردة من العملاء ويقوم بتوجيهها إلى الخادم الأنسب بناءً على مجموعة من الخوارزميات، وهو قد يكون جهاز مادي موجود على الشبكة أو جهاز افتراضي تتم إدارته بواسطة برامج محددة للقيام بعملية توازن الحمل أو خدمة تقدمها شركات الحوسبة السحابية، مثل: Amazon Web Services أو Google Cloud.

ملاحظة :

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

</> ?How does load balancer work
كيف يعمل موازن الحمل؟

  1. استقبال الطلب: يقوم موازن الحمل باستقبال الطلب الوارد من العميل أو وكيل المستخدم، مثل: طلبات الويب، أو طلبات قاعدة البيانات، أو أي نوع آخر من الطلبات.

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

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

  4. توجيه الطلب: بعد تحديد الخادم المناسب، يقوم موازن الحمل بإعادة توجيه الطلب إلى الخادم المناسب ليقوم بمعالجته.

  5. معالجة الطلب: يقوم الخادم بمعالجة الطلب ويعيد البيانات المطلوبة إلى موازن الحمل.

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

  • في بعض الحالات، يجب أن يبقى المستخدم على نفس الخادم مثل حالة التسوق الإلكتروني، ويقوم موازن الحمل في هذه الحالات بعمل ترتيبات معينة لضمان إرسال جميع الطلبات المستقبلية من نفس المستخدم إلى نفس الخادم وهذا يتم باستخدام بعض التقنيات مثل [الجلسات sessions وملفات تعريف الارتباط cookies]، وهي تقنيات برمجية يتم استخدامها في حال كان من الممكن عودة المستخدم مرة أخرى إلى نفس الخادم.

</> Techniques and Algorithms for Load Balancing on Servers
أساليب وخوارزميات توزيع الأحمال علي الخوادم

تقوم موازنات الأحمال بتحديد الخادم المناسب الذي يجب أن يتعامل مع كل طلب بناءً على عدة خوارزميات مختلفة، وتنقسم تلك الخوارزميات إلى فئتين رئيسيتين:

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

  • خوارزمية التناوب الدوري Round Robin: يتم توزيع الطلبات بالتساوي وبالتتابع على جميع الخوادم المتاحة، وفي هذه الخوارزمية يعمل خادم الأسماء المختص authoritative name server كموازن حمل حيث يقوم بالتبديل أو التناوب بين عناوين الـ IP للخوادم المختلفة في كل مرة يتلقى فيها طلبًا بدلًا من توجيه جميع الطلبات إلى خادم واحد.

  • خوارزمية التناوب الدوري الموزون أو المرجح Weighted Round Robin: يتم تحديد أوزان معينة للخوادم مسبقًا ويمثل الوزن قدرة الخادم على معالجة الطلبات، ويتم توزيع الطلبات على الخوادم بالتناوب بشكل دوري بناءً على هذه الأوزان فالخادم الذي لديه وزن أعلى يعالج عدد أكبر من الطلبات، ثم تستمر هذه العملية في دورات متتالية.

  • خوارزمية تجزئة عنوان الـ IP Hashing IP: يتم تحويل عنوان الـ IP الخاص بالمستخدم إلى رقم خاص أو مميز عن طريق عملية رياضية تسمى التجزئة hashing، ويستخدم هذا الرقم لتحديد الخادم الذي سيقوم موازن الحمل بتحويل الطلب إليه، وعند تكرار الطلب من نفس المستخدم يتم إعادة نفس العملية، وبما أن عنوان الـ IP هو نفسه، ستكون نتيجة التجزئة نفسها وبالتالي سيتم توجيه طلب المستخدم إلى نفس الخادم.



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

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

  • خوارزمية أقل زمن استجابة Least Response Time: يتم توجيه الطلبات إلى الخادم الذي يستطيع تقديم الاستجابة في أسرع وقت في تلك اللحظة، وفي هذه الخوارزمية يراقب موازن الحمل أداء كل خادم باستمرار من خلال قياس وقت الاستجابة الحالي ويوجه الطلبات إلى الخادم الذي يقدم أقل زمن استجابة.

  • خوارزمية الأقل تحميل Least Loaded: يتم توجيه الطلبات إلى الخوادم التي تستخدم أقل نسبة من مواردها مثل المعالجة المركزية CPU أو الذاكرة RAM، وباستخدام تلك الخوارزمية يراقب موازن الحمل استهلاك كل خادم لموارده ويوجه الطلبات إلى الخادم الذي يستهلك أقل نسبة من الموارد المخصصة له.
ملاحظات :
  • مراقبة السيرفر server monitoring: يقوم موازن الحمل الديناميكي بمراقبة صحة الخادم أو ما يطلق عليها server health [أي حالته الحالية وقدرته على الأداء] من خلال فحوصات دورية قد تشمل هذه الفحوصات اختبارات الاتصال بالشبكة، استجابات HTTP، وفحص الموارد مثل الذاكرة ووحدة المعالجة؛ فإذا كان الأداء لخادم ما بطيئًا فإن موازن الحمل يوزع عليه عدد أقل من حركة المرور، وإذا فشل الخادم تمامًا فإن موازن الحمل يعيد توجيه حركة المرور إلى مجموعة أخرى من الخوادم وهو ما يعرف بـ [التعافي من الفشل].


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

</> Load Balancer Types
أنواع موازن الحمل

تنقسم موازنات الأحمال تبعًا للطبقة التي يعمل عليها إلى:

  • موازنات الشبكة [NLB] Network Load Balancers: وهي تعمل على موازنة التحميل على مستوى النقل أو الطبقة الرابعة Layer 4 Load Balancing في نموذج OSI، ويتم الاعتماد في هذا النوع على معلومات طبقة النقل مثل عنوان IP والمنفذ لتوزيع حركة المرور بين الخوادم دون النظر إلى محتوى البيانات الفعلي.

  • موازنات التطبيق Application Load Balancers [ALB]: وهي تعمل على موازنة التحميل على مستوى التطبيق أو الطبقة السابعة Layer 7 Load Balancing في نموذج OSI، ويتم في هذا النوع استخدام محتوى البيانات المرسلة، مثل رؤوس HTTP أو عناوين URL لتوزيع الطلبات بدقة أكبر.



تنقسم موازنات الأحمال بناءً على كيفية تنفيذها إلى:

  • موازنات الحمل المادية Hardware Load Balancers: هي عبارة عن أجهزة مستقلة مخصصة لتوزيع حركة المرور على الخوادم المتاحة لتحسين الأداء وتقليل زمن الاستجابة، وهي تستخدم في الشبكات الكبيرة لأنها توفر أداءً عاليًا جدًا نظرًا لكونها مصممة خصيصًا لهذا الغرض، كما أنها عالية التكلفة نظرًا لتخصص العتاد لهذه المهمة.


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

</> ?Why is Load Balancing on a Server Important
لماذا عملية توازن الحمل على السيرفر مهمة؟

عملية توازن الحمل على السيرفر load balance هي عملية مهمة لعدة أسباب، منها:

  • تحسين الأداء Performance: عندما يقوم موازن الأحمال بتوزيع عبء حركة المرور بين الخوادم، يتم تقليل الوقت المستغرق في معالجة الطلبات مما يضمن رضا زوار الموقع أو مستخدمي الخدمة.


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


  • القدرة على التوسع Scalabilityباستخدام lوازن الحمل load balancer يمكن إضافة خوادم جديدة بسهولة لتلبية زيادة الطلب على الموقع أو الخدمة، وبالتالي القدرة على التوسع والنمو دون التعرض لمشكلات الأداء.

  • تحسين الأمان Security: تقلل موازنات الأحمال من خطر الهجوم الموزع لحجب الموقع أو الخدمة DDoS وذلك عن طريق توزيع الطلبات بين الخوادم فيصعب على المهاجمين استهداف خادم واحد بسيط، كما تدعم موازنات الأحمال عادةً بروتوكولات الأمان المشفرة مثل SSL/TLS مما يحمي البيانات من التجسس أو التلاعب، وتقوم أيضًا بإخفاء عناوين الـ IP الخاصة بالخوادم حيث تعمل موازنات الحمل كوسيط بين المستخدمين والخوادم مما يقلل نقاط الضعف التي قد يستغلها المهاجمون.
ملاحظة:
  • الهجوم الموزع لحجب الخدمة [DDoS] Distributed Denial of Service: هو هجوم إلكتروني يستهدف تعطيل خدمات الويب أو الشبكات عن طريق إرسال كمية كبيرة من الطلبات الوهمية حتى يصبح الخادم غير قادر على معالجة طلبات المستخدمين الطبيعيين، وقد يؤدي ذلك إلى خسائر مالية بسبب تعطل الخدمات، بالإضافة إلى الإضرار بسمعة المؤسسة التابع لها الخدمة أو الموقع.
معلومات تهمك
  • لا تنس تقييم الدروس لكي نُحدّث المُحتوى باستمرار حتى ينال إعجابك.
  • لا تنس مشاركة الموقع مع أصدقائك حتى تعمّ الفائدة وتكون سببًا في نفعهم.
مشاركة
0
0
0
0
عدد المشاركات
هل هذه المعلومات نالت إعجابك ؟
0
0
عدد التقييمات