مقدمة
توازن الحمل هو عنصر رئيسي في البنى التحتية ذات الإمكانية العالية المستخدمة عادة لتحسين أداء وموثوقية المواقع الإلكترونية والتطبيقات وقواعد البيانات وغيرها من الخدمات عن طريق توزيع العبء على عدة خوادم.
A web infrastructure with no load balancing might look something like the following:
في هذا المثال، يتصل المستخدم مباشرة بخادم الويب، على yourdomain.com. إذا تعطل هذا الخادم الويب الفردي، فلن يتمكن المستخدم من الوصول إلى الموقع الإلكتروني بعد الآن. بالإضافة إلى ذلك، إذا حاول العديد من المستخدمين الوصول إلى الخادم بشكل متزامن ولم يكن قادراً على التعامل مع العبء، فقد يواجهون أوقات تحميل بطيئة أو قد لا يتمكنون من الاتصال على الإطلاق.
يمكن التغلب على هذا النقطة الفردية للفشل عن طريق إدخال موازن الحمل وخادم ويب إضافي واحد على الخلفية على الأقل. عادةً ما تقدم جميع خوادم الخلفية محتوى متطابقًا بحيث يتلقى المستخدمون محتوى ثابت بغض النظر عن الخادم الذي يستجيب.
في المثال الموضح أعلاه، يصل المستخدم إلى موازن الحمل، الذي يحول طلب المستخدم إلى خادم خلفي، الذي يستجيب بشكل مباشر لطلب المستخدم. في هذا السيناريو، النقطة الفردية للفشل الآن هي موازن الحمل نفسه. يمكن التغلب على هذا عن طريق إدخال موازن الحمل الثاني، ولكن قبل أن نناقش ذلك، دعونا نستكشف كيفية عمل موازنات الحمل.
ما نوع حركة المرور التي يمكن لموازنات الحمل التعامل معها؟
يقوم مسؤولو موازن الحمل بإنشاء قواعد توجيه لأربعة أنواع رئيسية من حركة المرور:
- HTTP — يوجه التوازن القياسي لـ HTTP الطلبات بناءً على آليات HTTP القياسية. يعين موازن الحمل رؤوس
X-Forwarded-For
،X-Forwarded-Proto
، وX-Forwarded-Port
لتزويد الخوادم الخلفية بمعلومات حول الطلب الأصلي. - HTTPS — يعمل التوازن لـ HTTPS بنفس الطريقة مثل HTTP، مع إضافة التشفير. يتم التعامل مع التشفير بإحدى الطرق: إما مع SSL passthrough الذي يحافظ على التشفير حتى الخادم الخلفي أو مع SSL termination الذي يضع عبء فك التشفير على موازن الحمل ولكن يرسل المرور غير المشفر إلى الخادم الخلفي.
- TCP — بالنسبة للتطبيقات التي لا تستخدم HTTP أو HTTPS، يمكن أيضًا توازن حركة المرور TCP. على سبيل المثال، يمكن توزيع حركة المرور إلى مجموعة قواعد البيانات عبر جميع الخوادم.
- UDP — في الآونة الأخيرة، قام بعض موازني الحمل بإضافة دعم لتوازن حركة المرور لبروتوكولات الإنترنت الأساسية مثل DNS و syslogd التي تستخدم UDP.
سيحدد هذه القواعد توجيه البروتوكول والمنفذ على موازن الحمل نفسه ويختصرها إلى البروتوكول والمنفذ الذي سيستخدمه موازن الحمل لتوجيه حركة المرور إلى الخلفية.
كيف يختار موازن الحمل الخادم الخلفي؟
يختار موازن الحمل الخادم الذي يرسل إليه الطلب استنادًا إلى مزيج من عاملين. سيضمن أولاً أن أي خادم يمكنه اختياره يستجيب بشكل مناسب للطلبات ثم يستخدم قاعدة معدة مسبقًا لتحديد الخادم من بين تلك البيئة الصحية.
فحوصات الصحة
يجب على موازني الحمل توجيه حركة المرور فقط إلى خوادم الخلفية “الصحية”. لمراقبة صحة خادم الخلفية، تقوم فحوصات الصحة بمحاولة الاتصال بشكل منتظم بخوادم الخلفية باستخدام البروتوكول والمنفذ المحددين في قواعد التوجيه لضمان أن الخوادم تستمع. إذا فشل خادم في اجتياز فحص الصحة، وبالتالي لم يتمكن من خدمة الطلبات، فإنه يتمتع بالإزالة تلقائيًا من البيئة، ولن يتم توجيه حركة المرور إليه حتى يستجيب مرة أخرى لفحوص الصحة.
خوارزميات توزيع الحمل
تحدد خوارزمية توازن الحمل التي يتم استخدامها أي من الخوادم الصحية على الخلفية سيتم تحديدها. بعض الخوارزميات الشائعة المستخدمة هي:
الدوران التسلسلي – يعني الدوران التسلسلي أنه سيتم اختيار الخوادم بشكل متتالي. سيختار جهاز توازن الحمل الخادم الأول في قائمته للطلب الأول، ثم يتحرك في القائمة بالترتيب، مبدأيًا، ويبدأ من الأعلى عندما يصل إلى النهاية.
أقل الاتصالات – يعني أقل الاتصالات أن جهاز توازن الحمل سيختار الخادم الذي يحتوي على أقل عدد من الاتصالات ويُنصح به عندما يؤدي الحركة إلى جلسات أطول.
المصدر – باستخدام خوارزمية المصدر، سيختار جهاز توازن الحمل أي خادم يتم استخدامه بناءً على التجزئة لعنوان IP المصدر للطلب، مثل عنوان IP للزائر. تضمن هذه الطريقة أن يتصل مستخدم معين بشكل منتظم بنفس الخادم.
الخوارزميات المتاحة للمسؤولين تختلف اعتمادًا على التكنولوجيا المحددة لتوازن الحمل المستخدمة.
كيف يتعامل أجهزة توازن الحمل مع الحالة؟
تتطلب بعض التطبيقات أن يستمر المستخدم في الاتصال بنفس الخادم الخلفي. تنشئ خوارزمية المصدر تقارنًا يعتمد على معلومات عنوان IP الخاصة بالعميل. طريقة أخرى لتحقيق هذا على مستوى تطبيق الويب هي من خلال الجلسات اللزجة، حيث يضع جهاز توازن الحمل ملف تعريف وتوجه كل الطلبات من تلك الجلسة إلى نفس الخادم الفعلي.
موازين الحمل المتكررة
لإزالة موازن الحمل كنقطة فشل واحدة، يمكن توصيل موازن حمل ثانٍ بالأول لتشكيل مجموعة، حيث يراقب كل منهما صحة الآخرين. كل منهما قادر بنفس القدر على اكتشاف الأعطال والاسترداد.
في حال فشل موازن الحمل الرئيسي، يجب على DNS أن يوجه المستخدمين إلى الموازن الثاني. نظرًا لأن تغييرات DNS قد تستغرق وقتًا طويلاً لتنتشر على الإنترنت ولجعل هذا التبديل التلقائي، قد يستخدم العديد من المسؤولين أنظمة تسمح بإعادة تخطيط عناوين IP بشكل مرن، مثل العناوين IP المحفوظة. إعادة تخطيط عناوين IP حسب الطلب تقضي على مشكلات انتشار وتخزين التغييرات في DNS عن طريق توفير عنوان IP ثابت يمكن إعادة تخطيطه بسهولة عند الحاجة. يمكن لاسم النطاق البقاء مرتبطًا بنفس عنوان IP، بينما يتم نقل العنوان IP نفسه بين الخوادم.
هكذا قد يبدو البنية التحتية المتاحة بشكل عالٍ باستخدام العناوين IP المحفوظة:
الاستنتاج
في هذا المقال، قدمنا نظرة عامة على مفاهيم موازن الحمل وكيفية عملها بشكل عام. للمزيد من المعلومات حول تقنيات موازنة الحمل المحددة، قد ترغب في الاطلاع على:
خدمة توازن الحمل في ديجيتال أوشن
- كيفية إنشاء أول موازن حمل في ديجيتال أوشن
- كيفية تكوين SSL Passthrough على موازن حمل ديجيتال أوشن
- كيفية تكوين إنهاء SSL على موازن حمل ديجيتال أوشن
- كيفية توازن حركة مرور TCP باستخدام موازن حمل ديجيتال أوشن
HAProxy
- مقدمة إلى HAProxy ومفاهيم توازن الحمل
- كيفية إعداد خوادم HAProxy متاحة بشكل عالٍ باستخدام Keepalived وعناوين IP المحجوزة على أوبونتو 14.04
- توازن الحمل في ووردبريس باستخدام HAProxy
Nginx
Source:
https://www.digitalocean.com/community/tutorials/what-is-load-balancing