1. مقدمة
يقدّم هذا الدليل تعليمات لنقل موازن تحميل حالي على الشبكة من الخلفية لمجموعة مستهدَفة إلى خدمة خلفية إقليمية.
ما ستتعلمه
- فهم مزايا خدمات الخلفية الإقليمية
- إنشاء موازنة حمل للشبكة باستخدام مجموعات الأهداف
- إجراء عملية التحقّق من صحة مجموعة المستخدمين المستهدَفة
- إنشاء خدمة خلفية إقليمية باستخدام مجموعات مثيلات غير مُدارة
- تنفيذ عملية نقل مجموعة المثيلات الهدف إلى الخدمة الخلفية
- إجراء عملية التحقّق من صحة خدمات الخلفية
المتطلبات
- خبرة في استخدام أجهزة موازنة الحمل
2. نظرة عامة على خدمات الخلفية الإقليمية لموازنة الحمل في الشبكة
من خلال خدمة موازنة التحميل على الشبكة، يتوفّر لعملاء Google Cloud أداة فعّالة لتوزيع عدد الزيارات الخارجية بين الأجهزة الافتراضية في إحدى مناطق Google Cloud. لتسهيل إدارة الزيارات الواردة على عملائنا والتحكّم في طريقة عمل جهاز موازنة الحمل، أضفنا مؤخرًا إمكانية استخدام خدمات الخلفية في موازنة تحميل الشبكة. ويوفّر ذلك لعملائنا إمكانية توسيع نطاق عمليات النشر وتحسين سرعتها وأدائها ومرونتها، وكل ذلك بطريقة سهلة الإدارة.
نوفّر الآن خدمات الخلفية باستخدام ميزة "موازنة تحميل الشبكة"، وهي تحسين كبير مقارنةً بالطريقة السابقة، أي مجموعات الأهداف. تحدّد خدمة الخلفية طريقة توزيع أجهزة موازنة الحمل للزيارات الواردة على الخلفيات المرفقة، وتوفّر تحكّمًا دقيقًا في طريقة عمل جهاز موازنة الحمل.
3- مزايا خدمات الخلفية الإقليمية
يوفّر اختيار خدمة خلفية إقليمية كجهاز موازنة الحمل عددًا من المزايا لبيئتك.

توفّر خدمات الخلفية الإقليمية ما يلي:
- التحقّق من الصحة بدقة عالية باستخدام ميزة التحقّق الموحّد من الصحة: يمكنك الآن الاستفادة بشكل كامل من ميزات التحقّق من الصحة لموازنة الحمل مع خدمات الخلفية الإقليمية، ما يتيح لك التخلّص من قيود عمليات التحقّق القديمة من الصحة عبر HTTP. لأسباب تتعلق بالامتثال، كانت عمليات التحقّق من سلامة بروتوكول TCP التي تتوافق مع سلاسل الطلبات والاستجابات المخصّصة أو HTTPS من الطلبات الشائعة لعملاء Network Load Balancing.
- مرونة أفضل مع مجموعات تجاوز الفشل: باستخدام مجموعات تجاوز الفشل، يمكنك تحديد مجموعة مثيلات كالمجموعة الأساسية وأخرى كالمجموعة الثانوية وتجاوز الفشل في حركة البيانات عندما تنخفض حالة المثيلات في المجموعة النشطة عن حدّ معيّن. لمزيد من التحكّم في آلية تجاوز الفشل، يمكنك استخدام وكيل مثل keepalived أو pacemaker وعرض عملية تحقّق من السلامة ناجحة أو فاشلة استنادًا إلى التغييرات في حالة مثيل الخلفية.
- قابلية التوسّع والتوفّر العالي باستخدام مجموعات مثيلات مُدارة: تتيح الخدمات الخلفية الإقليمية استخدام مجموعات المثيلات المُدارة كخدمات خلفية. يمكنك الآن تحديد نموذج لمثيلات الأجهزة الافتراضية للخادم الخلفي والاستفادة من ميزة التوسيع التلقائي استنادًا إلى استخدام وحدة المعالجة المركزية أو مقاييس المراقبة الأخرى.
بالإضافة إلى ما سبق، ستتمكّن من الاستفادة من ميزة "إيقاف الاتصال" لبروتوكول الاتصال (TCP) ووقت برمجة أسرع لعمليات النشر الكبيرة.
بنية الشبكة في الدرس التطبيقي حول الترميز
يقدّم هذا الدليل تعليمات لنقل موازن تحميل حالي على الشبكة من الخلفية لمجموعة مستهدَفة إلى خدمة خلفية إقليمية.
يتيح لك الانتقال إلى خدمة خلفية إقليمية الاستفادة من ميزات مثل عمليات التحقّق من السلامة غير القديمة (لبروتوكولات TCP وSSL وHTTP وHTTPS وHTTP/2) ومجموعات الأجهزة الافتراضية المُدارة وإيقاف الاتصالات تدريجيًا وسياسة تجاوز الفشل.
يرشدك هذا الدليل إلى كيفية نقل جهاز موازنة الحمل التالي المستند إلى مجموعة الأهداف النموذجية لاستخدام خدمة خلفية إقليمية بدلاً من ذلك

قبل: موازنة الحمل على الشبكة باستخدام مجموعة مستهدَفة
سيبدو نشر موازن الحمل المستند إلى خدمة الخلفية على الشبكة بالشكل التالي.

بعد: موازنة الحمل على الشبكة باستخدام خدمة خلفية إقليمية
يفترض هذا المثال أنّ لديك موازنة حمل شبكة تقليدية مستندة إلى مجموعة مستهدَفة مع مثيلَين في المنطقة us-central-1a ومثيلَين في المنطقة us-central-1c.
في ما يلي الخطوات العامة المطلوبة لإجراء عملية النقل هذه:
- جمِّع مثيلات مجموعة الاستهداف في مجموعات مثيلات. لا تعمل خدمات الخلفية إلا مع مجموعات مثيلات مُدارة أو غير مُدارة. يُرجى العِلم أنّه على الرغم من عدم وجود حدّ لعدد المثيلات التي يمكن وضعها في مجموعة مستهدَفة واحدة، إلا أنّ مجموعات المثيلات لها حجم أقصى. إذا كان مجمّع الاستهداف يحتوي على أكثر من الحدّ الأقصى لعدد الأجهزة الافتراضية، عليك تقسيم الخلفيات على عدّة مجموعات من الأجهزة الافتراضية. إذا كان النشر الحالي يتضمّن مجموعة احتياطية من الأهداف، أنشئ مجموعة مثيلات منفصلة لهذه المثيلات. سيتم إعداد مجموعة الأجهزة الافتراضية هذه كمجموعة احتياطية.
- أنشئ خدمة خلفية إقليمية. إذا كان النشر يتضمّن مجموعة احتياطية من الأهداف، عليك تحديد نسبة تجاوز الفشل أثناء إنشاء خدمة الخلفية. يجب أن تتطابق هذه القيمة مع نسبة تجاوز الفشل التي تم ضبطها مسبقًا لنشر مجموعة الاستهداف.
- أضِف مجموعات الأجهزة الافتراضية (التي تم إنشاؤها سابقًا) إلى خدمة الخلفية. إذا كان النشر يتضمّن مجموعة احتياطية من الأهداف، ضَع علامة –failover على مجموعة الأجهزة الافتراضية المناسبة عند إضافتها إلى خدمة الخلفية.
- اضبط قاعدة إعادة توجيه تشير إلى خدمة الخلفية الجديدة. أمامك خياران:
- (يُنصح به) عدِّل قاعدة إعادة التوجيه الحالية للإشارة إلى خدمة الخلفية. أو
- أنشئ عملية إعادة توجيه جديدة تشير إلى خدمة الخلفية. يتطلّب ذلك إنشاء عنوان IP جديد للواجهة الأمامية لموازنة التحميل. بعد ذلك، عدِّل إعدادات نظام أسماء النطاقات (DNS) للانتقال بسلاسة من عنوان IP القديم لموازن التحميل المستند إلى مجموعة الاستهداف إلى عنوان IP الجديد.
إعداد البيئة بالسرعة التي تناسبك
- سجِّل الدخول إلى Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.



تذكَّر رقم تعريف المشروع، وهو اسم فريد في جميع مشاريع Google Cloud (الاسم أعلاه مستخدَم حاليًا ولن يكون متاحًا لك، نأسف لذلك). سيتم الإشارة إليه لاحقًا في هذا الدرس العملي باسم PROJECT_ID.
- بعد ذلك، عليك تفعيل الفوترة في Cloud Console من أجل استخدام موارد Google Cloud.
لن تكلفك تجربة هذا الدرس التطبيقي حول الترميز الكثير من المال، إن لم تكلفك شيئًا على الإطلاق. احرص على اتّباع أي تعليمات في قسم "التنظيف" الذي ينصحك بكيفية إيقاف الموارد حتى لا تتحمّل رسومًا تتجاوز هذا البرنامج التعليمي. يمكن لمستخدمي Google Cloud الجدد الاستفادة من برنامج الفترة التجريبية المجانية بقيمة 300 دولار أمريكي.
بدء Cloud Shell
على الرغم من إمكانية تشغيل Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس العملي Google Cloud Shell، وهي بيئة سطر أوامر تعمل في السحابة الإلكترونية.
من وحدة تحكّم Google Cloud Platform، انقر على رمز Cloud Shell في شريط الأدوات العلوي الأيسر:

لن يستغرق توفير البيئة والاتصال بها سوى بضع لحظات. عند الانتهاء، من المفترض أن يظهر لك ما يلي:

يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. توفّر هذه الخدمة دليلًا منزليًا ثابتًا بسعة 5 غيغابايت، وتعمل على Google Cloud، ما يؤدي إلى تحسين أداء الشبكة والمصادقة بشكل كبير. يمكن إكمال جميع المهام في هذا التمرين المعملي باستخدام متصفّح فقط.
تسجيل الدخول إلى Cloud Shell وتحديد projectid
gcloud config list project gcloud config set project [YOUR-PROJECT-ID] Perform setting your projectID: projectid=YOUR-PROJECT-ID echo $projectid
4. إنشاء شبكة VPC
شبكة VPC
من Cloud Shell
gcloud compute networks create network-lb --subnet-mode custom
إنشاء شبكة فرعية
من Cloud Shell
gcloud compute networks subnets create network-lb-subnet \
--network network-lb --range 10.0.0.0/24 --region us-central1
إنشاء قواعد جدار الحماية
من Cloud Shell
gcloud compute --project=$projectid firewall-rules create www-firewall-network-lb --direction=INGRESS --priority=1000 --network=network-lb --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=network-lb-tag
إنشاء مثيلات غير مُدارة
إنشاء مثيلَين لكل منطقة، us-central1-a وus-central1-c
إنشاء المثيل 1 من Cloud Shell
gcloud compute instances create www1 \ --subnet network-lb-subnet \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-a \ --tags network-lb-tag \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www1</h1></body></html>' | tee /var/www/html/index.html"
إنشاء المثيل 2 من Cloud Shell
gcloud compute instances create www2 \ --subnet network-lb-subnet \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-a \ --tags network-lb-tag \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www2</h1></body></html>' | tee /var/www/html/index.html"
إنشاء المثيل 3 من Cloud Shell
gcloud compute instances create www3 \ --subnet network-lb-subnet \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-c \ --tags network-lb-tag \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www3</h1></body></html>' | tee /var/www/html/index.html"
إنشاء الجهاز الظاهري 4 من Cloud Shell
gcloud compute instances create www4 \ --subnet network-lb-subnet \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-c \ --tags network-lb-tag \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www4</h1></body></html>' | tee /var/www/html/index.html"
إنشاء قاعدة جدار حماية للسماح للزيارات الخارجية بالوصول إلى مثيلات الأجهزة الافتراضية هذه
من Cloud Shell
gcloud compute --project=$projectid firewall-rules create www-firewall-network-lb --direction=INGRESS --priority=1000 --network=network-lb --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=network-lb-tag
إنشاء عنوان IP خارجي ثابت لجهاز موازنة الحمل
من Cloud Shell
gcloud compute addresses create network-lb-ip-1 \
--region us-central1
إضافة مورد التحقق من الصحة لـ HTTP القديم
من Cloud Shell
gcloud compute http-health-checks create basic-check
5- إنشاء قاعدة إعادة توجيه ومجموعة استهداف
إنشاء مجموعة مستهدَفة
gcloud compute target-pools create www-pool \
--region us-central1 --http-health-check basic-check
أضِف مثيلاتك إلى مجموعة الاستهداف us-central1-a
gcloud compute target-pools add-instances www-pool \ --instances www1,www2 \ --instances-zone us-central1-a
أضِف مثيلاتك إلى مجموعة الاستهداف us-central1-c
gcloud compute target-pools add-instances www-pool \ --instances www3,www4 \ --instances-zone us-central1-c
إضافة قاعدة إعادة توجيه
gcloud compute forwarding-rules create www-rule \ --region us-central1 \ --ports 80 \ --address network-lb-ip-1 \ --target-pool www-pool
التحقّق من وظائف مجموعة الاستهداف
تحديد عنوان IP للواجهة الأمامية من خلال اختيار "موازنات التحميل" (Load Balancers) → "الواجهات الأمامية" (Frontends) (قاعدة www)
استخدِم أمر curl من وحدة التحكّم في محطة العمل للوصول إلى عنوان IP الخارجي ومراقبة موازنة التحميل على مستوى أربعة أجهزة مستهدَفة. أغلِق نافذة Terminal بعد إثبات صحة الرمز.
while true; do curl -m1 IP_ADDRESS; done
6. نقل موازن الحمل على الشبكة من مجموعة مستهدَفة إلى خدمة الخلفية
إنشاء عمليات فحص موحّدة للحالة الصحية لخدمة الخلفية
gcloud compute health-checks create tcp my-tcp-health-check --port 80 --region us-central1
إنشاء مجموعات مثيلات من مثيلات حالية من المجموعة المستهدَفة
gcloud compute --project=$projectid instance-groups unmanaged create www-instance-group-central1a --zone=us-central1-a gcloud compute --project=$projectid instance-groups unmanaged add-instances www-instance-group-central1a --zone=us-central1-a --instances=www1,www2
إنشاء مجموعات مثيلات من مثيلات حالية من المجموعة المستهدَفة
gcloud compute --project=$projectid instance-groups unmanaged create www-instance-group-central1c --zone=us-central1-c gcloud compute --project=$projectid instance-groups unmanaged add-instances www-instance-group-central1c --zone=us-central1-c --instances=www3,www4
إنشاء خدمة خلفية وربطها بعمليات التحقّق من الصحة التي تم إنشاؤها حديثًا
gcloud compute backend-services create my-backend-service --region us-central1 --health-checks my-tcp-health-check --health-checks-region us-central1 --load-balancing-scheme external
ضبط خدمة الخلفية وإضافة مجموعات المثيلات
gcloud compute backend-services add-backend my-backend-service --instance-group www-instance-group-central1a --instance-group-zone us-central1-a --region us-central1 gcloud compute backend-services add-backend my-backend-service --instance-group www-instance-group-central1c --instance-group-zone us-central1-c --region us-central1
تعديل قاعدة إعادة التوجيه الحالية لتتوافق مع الخدمات الخلفية
دوِّن اسم قاعدة إعادة التوجيه "www-rule" وعنوان IP المرتبط بها من خلال تنفيذ ما يلي:
اختَر "موازنة الحمل" → "الواجهات الأمامية"
تم أيضًا تحديد أربع مجموعات مستهدفة
اختَر "جهاز موازنة الحمل" (Load Balancer) → اختَر "مجموعة www" (www-pool)
توجيه الزيارات إلى خدمات الخلفية من خلال تعديل قاعدة إعادة التوجيه الحالية
gcloud compute forwarding-rules set-target www-rule --region=us-central1 --backend-service my-backend-service --region us-central1
تأكَّد من أنّه لم يعُد يتم ضبط موازن التحميل "www-pool" باستخدام الواجهة الأمامية "www-rule" (راجِع لقطة الشاشة أدناه).
اختَر Load Balancer → www-pool

التحقّق من أنّ قاعدة إعادة التوجيه في الواجهة الأمامية مرتبطة الآن بموازن التحميل "my-backend-service"
اختَر "موازنة الحمل" → "الواجهات الأمامية"
دوِّن اسم القاعدة "www-rule"، وسيتم الاحتفاظ بعنوان IP وسيتم الآن استخدام أداة موازنة الحمل "my-backend-service"
استخدِم الأمر curl من وحدة طرفية في محطة العمل للوصول إلى عنوان IP الخارجي ومراقبة موازنة التحميل في خدمة الخلفية المرتبطة حديثًا. أغلِق نافذة Terminal بعد إثبات صحة الرمز.
while true; do curl -m1 IP_ADDRESS; done
7. خطوات إعادة الضبط
gcloud compute forwarding-rules delete www-rule --region=us-central1 --quiet gcloud compute backend-services delete my-backend-service --region us-central1 --quiet gcloud compute target-pools delete www-pool --region us-central1 --quiet gcloud compute addresses delete network-lb-ip-1 --region us-central1 --quiet gcloud compute firewall-rules delete www-firewall-network-lb --quiet gcloud compute instances delete www4 --zone us-central1-c --quiet gcloud compute instances delete www3 --zone us-central1-c --quiet gcloud compute instances delete www2 --zone us-central1-a --quiet gcloud compute instances delete www1 --zone us-central1-a --quiet gcloud compute networks subnets delete network-lb-subnet --region us-central1 --quiet gcloud compute networks delete network-lb --quiet gcloud compute instance-groups unmanaged delete www-instance-group-central1a --zone us-central1-a --quiet gcloud compute instance-groups unmanaged delete www-instance-group-central1c --zone us-central1-c --quiet
8. تهانينا!
تهانينا على إكمال هذا الدرس العملي.
المواضيع التي تناولناها
- فهم مزايا خدمات الخلفية الإقليمية
- إنشاء موازنة حمل للشبكة باستخدام مجموعات الأهداف
- إجراء عملية التحقّق من صحة مجموعة المستخدمين المستهدَفة
- إنشاء خدمة خلفية إقليمية باستخدام مجموعات مثيلات غير مُدارة
- تنفيذ عملية نقل مجموعة المثيلات الهدف إلى الخدمة الخلفية
- إجراء عملية التحقّق من صحة خدمات الخلفية