توزيع الاحمال Load Balancing

توزيع الاحمال Load Balancing
لنأخذ مثال لو كان عندك سيرفر ، وعندك خدمة مثلا موقع الكتروني ، ووضعت الموقع على السيرفر الاول وأشتغل بصورة طبيعية ، بعد شهر زاد عدد الاشخاص الذين يتصفحون الموقع (اقصد الذي يتصفحون الموقع بنفس اللحظة) ، هنا سوف يحصل تأخير في استجابة السيرفر للمستخدمين الذين يطلبون منه تصفح الموقع .
طيب ماذا لو أردت ان يستجيب السيرفر بصورة اسرع ؟ اعمل ترقية للسيرفر !
ممكن لكن ربما السيرفر وصلت للحد الاعلى للمواصفات التي يدعمها !!!
طيب ماذا لو السيرفر توقف عن العمل ؟
هنا كمهندس ايتي او متخصص في مجال البنية التحتية ومراكز البيانات والانظمة وايضا حتى لو كنت مهندس شبكات يجب ان تدرس السيناريوهات قبل اطلاق اي خدمة ، وواحد من اشهر هذه السيناريوهات هو اعلاه .
والحل ؟ هنا ظهر اللود بلانس وهو عبارة عن اداة نضعها امام السيرفر وفكرته توزيع الطلبات التي تأتي بنفس الوقت على السيرفرات وبالتالي التقليل من التأخير في الاستجابة .
عملية توزيع الطلبات لا تكون عشوائية وانما هناك عدة طرق(خوارزميات) للتوزيع وحسب الحاجة وكالتالي:
الطريقة الاولى – Round Robin – وفكرته توزع الطلبات الانية على كل السيرفرات المستضيفة للخدمة تزامنيا (يعني مثلا اذا سيرفرين واستلمت طلبين فكل طلب يذهب لسيرفر).
الطريقة الثانية – Least Connections – فكرته توزع الطلبات على السيرفرات التي لديها اقل عدد من الطلبات (شلون) يعني لنفترض نفس المثال اعلاه والسيرفر الثاني كمل تنفيذ الطلب بينما الاول لازال يعالج الطلب الذي وصله ، فعندما يأتي طلب ثالث فهنا سوف يذهب للسيرفر الثاني ، بينما لو استخدمنا الطريقة الاولى فأن الطلب يذهب للسيرفر الاول.
الطريقة الثالثة Least Time – فكرتها لو كان السيرفرات عليها نفس العدد من الطلبات ، فأن الطلب الذي يأتي وحسب خوارزمية معينة سوف يرسل الى الخادم الذي لديه اقل عدد و الاسرع في تنفيذ الطلبات.
الطريقة الرابعة – Hash وهذه الطريقة تعتمد على شي نسميه بالمفتاح يعني مثلا اذا وصل طلب من كذا مستخدم فيجب تحويله الى كذا سيرفر ، او مثلا اذا الاشخاص الذين طلبو الموقع من العراق فيجب ان ينفذ المعالجة السيرفر الموجود بالعراق واذا الطلب من مصر ،فيجب ان ينفذ الطلب السيرفر الموجود في مصر وهكذا .
الطريقة الخامسة Random with Two Choices – هذه خوارزمية تأخذ سيرفرين بصورة عشوائية وتقارن منو اقل عليه اقلل عدد من الطلبات وترسل له الطلب الجديد .
بالمقدمة قلنا اللود بلانس هو اداة ، لكن هل هي سوفتوير او هاردوير ؟
اللود بلانس ممكن يكون فقط سوفتوير ( او فيجر موجودة بواحد من الاجهزة مثلا اجهزة الفايروول) او جهاز يتكون من هاردوير وسوفتوير .

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