مجموعة نقاط نهاية الشبكة المختلطة في Agentspace إلى قاعدة بيانات مستضافة ذاتيًا على سحابة إلكترونية متعددة

1. مقدمة

في هذا الدرس التطبيقي حول الترميز، ستنشئ جهاز موازنة حمل داخليًا لبروتوكول TCP، ومجموعة نقاط نهاية شبكة مختلطة (NEG)، وسيتم نشرهما كخدمة منتِجة لخدمة PSC. ستتألف مجموعة NEG من عنوان IP ومنفذ قاعدة البيانات المستضافة ذاتيًا على السحابة الإلكترونية، مثل JIRA وConfluence وSharepoint.

‫Private Service Connect هي إحدى إمكانات شبكة Google Cloud التي تتيح للمستهلكين الوصول إلى الخدمات المُدارة بشكل خاص من داخل شبكة السحابة الإلكترونية الخاصة الافتراضية (VPC). وبالمثل، يسمح لموفّري الخدمات المُدارة باستضافة هذه الخدمات في شبكة السحابة الإلكترونية الافتراضية (VPC) أو شبكة السحابة المتعددة الخاصة بهم، ما يوفّر اتصالاً خاصًا للمستهلكين. على سبيل المثال، عند استخدام Private Service Connect للوصول إلى قاعدة بيانات على عدة أنظمة سحابية، تكون أنت "مقدّم الخدمة"، وتكون Google (Agentspace) "مستهلك الخدمة".

ما ستتعلمه

  • متطلبات الشبكة لتطبيق Agentspace
  • أفضل الممارسات المتعلقة بالشبكات في Agentspace
  • إنشاء خدمة Private Service Connect Producer

المتطلبات

  • مشروع Google Cloud لديه أذونات المالك

2. ما ستنشئه

ستنشئ شبكة Producer، وهي agentspace-psc-demo، لنشر موازن حمل وكيل TCP داخلي وHybrid NEG تم نشره كخدمة من خلال Private Service Connect (PSC).

3- متطلبات الشبكة

في ما يلي تفصيل لمتطلبات الشبكة الخاصة بشبكة Producer، والمستهلك في هذا الدرس العملي هو Agentspace.

المكونات

الوصف

VPC (agentspace-psc-demo)

شبكة VPC في الوضع المخصّص

الشبكة الفرعية لترجمة عناوين الشبكة (NAT) في PSC

تتم ترجمة الحِزم من شبكة VPC الخاصة بالمستهلك باستخدام ترجمة عنوان الشبكة المصدر (SNAT) ليتم تحويل عناوين IP المصدر الأصلية إلى عناوين IP المصدر من الشبكة الفرعية NAT في شبكة VPC الخاصة بالمنتج. تتيح خدمة PSC NAT استخدام شبكة فرعية /29 لكل "ملحق خدمة".

الشبكة الفرعية لقاعدة إعادة التوجيه في PSC

تُستخدَم لتخصيص عنوان IP لـ موازن الحمل الإقليمي المستند إلى وكيل TCP الداخلي.تُعدّ الشبكة الفرعية لقاعدة إعادة التوجيه شبكة فرعية عادية.

الشبكة الفرعية للوكيل فقط

يتم تعيين عنوان IP داخلي لكل خادم وكيل في موازن التحميل. تحتوي الحِزم المُرسَلة من وكيل إلى جهاز افتراضي أو مجموعة نقاط نهاية للشبكة على عنوان IP مصدر من الشبكة الفرعية الخاصة بالوكيل فقط.يُنصح باستخدام شبكة فرعية /23، على الرغم من إمكانية استخدام الحد الأدنى وهو /26. يجب توفير شبكة فرعية واحدة لخادم وكيل إقليمي لكل منطقة.

مجموعة نقاط نهاية الشبكة المختلطة

يتم التعامل مع الخدمات المحلية والخدمات السحابية الأخرى مثل أيّ خلفية أخرى في Cloud Load Balancing. الفرق الرئيسي هو أنّك تستخدم مجموعة NEG للاتصال المختلط لضبط نقاط نهاية الخلفيات هذه. يجب أن تكون نقاط النهاية عبارة عن مجموعات صالحة من عنوان IP ورقم المنفذ يمكن لموازن التحميل الوصول إليها باستخدام منتجات الربط المختلط، مثل Cloud VPN أو Cloud Interconnect.

خدمة الخلفية

تعمل خدمة الخلفية كجسر بين جهاز موازنة الحمل وموارد الخلفية. في البرنامج التعليمي، ترتبط خدمة الخلفية بمجموعة نقاط نهاية الشبكة المختلطة.

4. أفضل الممارسات

  • تتيح AgentSpace الوصول إلى قواعد البيانات الذاتية الاستضافة على مستوى السحابات الإلكترونية، والتي يتم نشرها داخل مقر الشركة أو على أجهزة الحوسبة (مثل ‫(AWS EC2 وAzure VMs) عند نشرها كمقدّم خدمة
  • ستنشأ الزيارات إلى قاعدة البيانات المتعددة السحابات من الشبكة الفرعية الإقليمية للخادم الوكيل. لذلك، يجب تعديل قواعد جدار الحماية لإضافة هذه الزيارات إلى القائمة المسموح بها.
  • على الرغم من أنّ Cloud Router يعلن عن الشبكة الفرعية للخادم الوكيل فقط تلقائيًا، تأكَّد من أنّ الشبكة المتعددة السحابات تعرّفت على هذه الشبكة الفرعية.
  • تأكَّد من أنّ شبكة VPC في Agentspace قد تعرّفت على الشبكة الفرعية أو عنوان IP للمضيف الخاص بقاعدة البيانات على السحابة الإلكترونية.
  • فعِّل "الوصول العام" في قاعدة إعادة التوجيه الخاصة بالمنتِج قبل إنشاء "مرفق الخدمة".
  • فعِّل خيار "الوصول العام" عند إنشاء نقطة نهاية Agentspace.

5- طوبولوجيا الدرس التطبيقي حول الترميز

f5cb7b235f6fa306.png

6. الإعداد والمتطلبات

إعداد البيئة بالسرعة التي تناسبك

  1. سجِّل الدخول إلى Google Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي سلسلة أحرف لا تستخدمها Google APIs. ويمكنك تعديلها في أي وقت.
  • معرّف المشروع هو معرّف فريد في جميع مشاريع Google Cloud ولا يمكن تغييره (لا يمكن تغييره بعد ضبطه). تنشئ Cloud Console تلقائيًا سلسلة فريدة، ولا يهمّك عادةً ما هي. في معظم دروس البرمجة، عليك الرجوع إلى رقم تعريف مشروعك (يُشار إليه عادةً باسم PROJECT_ID). إذا لم يعجبك رقم التعريف الذي تم إنشاؤه، يمكنك إنشاء رقم تعريف عشوائي آخر. يمكنك بدلاً من ذلك تجربة اسم مستخدم من اختيارك ومعرفة ما إذا كان متاحًا. لا يمكن تغييرها بعد هذه الخطوة وتبقى سارية طوال مدة المشروع.
  • للعلم، هناك قيمة ثالثة، وهي رقم المشروع، تستخدمها بعض واجهات برمجة التطبيقات. يمكنك الاطّلاع على مزيد من المعلومات حول هذه القيم الثلاث في المستندات.
  1. بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد/واجهات برمجة تطبيقات Cloud. لن تكلفك تجربة هذا الدرس البرمجي الكثير، إن وُجدت أي تكلفة على الإطلاق. لإيقاف الموارد وتجنُّب تحمّل تكاليف تتجاوز هذا البرنامج التعليمي، يمكنك حذف الموارد التي أنشأتها أو حذف المشروع. يمكن لمستخدمي Google Cloud الجدد الاستفادة من برنامج الفترة التجريبية المجانية بقيمة 300 دولار أمريكي.

بدء Cloud Shell

على الرغم من إمكانية تشغيل Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس العملي Google Cloud Shell، وهي بيئة سطر أوامر تعمل في السحابة الإلكترونية.

من Google Cloud Console، انقر على رمز Cloud Shell في شريط الأدوات أعلى يسار الصفحة:

55efc1aaa7a4d3ad.png

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

7ffe5cbb04455448.png

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

7. قبل البدء

تفعيل واجهات برمجة التطبيقات

داخل Cloud Shell، تأكَّد من إعداد رقم تعريف مشروعك:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
zone=[YOUR-ZONE]
echo $project
echo $region

فعِّل جميع الخدمات اللازمة:

gcloud services enable compute.googleapis.com

8. إنشاء شبكة VPC خاصة بالمنتج

شبكة VPC

داخل Cloud Shell، اتّبِع الخطوات التالية:

gcloud compute networks create agentspace-psc-demo --subnet-mode custom

إنشاء شبكات فرعية

سيتم ربط الشبكة الفرعية لخدمة PSC بمرفق خدمة PSC بغرض ترجمة عناوين الشبكة.

في Cloud Shell، أنشئ الشبكة الفرعية لترجمة عناوين الشبكة (NAT) في Private Service Connect:

gcloud compute networks subnets create producer-psc-nat-subnet --network agentspace-psc-demo --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT

داخل Cloud Shell، أنشئ الشبكة الفرعية لقاعدة إعادة التوجيه الخاصة بـ Producer:

gcloud compute networks subnets create producer-psc-fr-subnet --network agentspace-psc-demo --range 172.16.20.0/28 --region $region --enable-private-ip-google-access

داخل Cloud Shell، أنشئ شبكة فرعية لوكيل Producer الإقليمي فقط، والتي تراقبها قاعدة البيانات على السحابة المتعددة باعتبارها عنوان IP المصدر.

gcloud compute networks subnets create $region-proxy-only-subnet \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=$region \
  --network=agentspace-psc-demo \
  --range=10.10.10.0/24

حجز عنوان IP الخاص بجهاز موازنة الحمل

في Cloud Shell، احجز عنوان IP داخليًا لجهاز موازنة الحمل:

gcloud compute addresses create hybrid-neg-lb-ip \
  --region=$region \
  --subnet=producer-psc-fr-subnet

في Cloud Shell، اطّلِع على عنوان IP المحجوز.

gcloud compute addresses describe hybrid-neg-lb-ip \
  --region=$region | grep -i address:

مثال على الإخراج:

gcloud compute addresses describe hybrid-neg-lb-ip   --region=$region | grep -i address:
address: 172.16.20.2

إعداد مجموعة نقاط نهاية الشبكة المختلطة

أنشئ مجموعة NEG مختلطة، واضبط –network-endpoint-type على NON_GCP_PRIVATE_IP_PORT

داخل Cloud Shell، أنشئ مجموعة NEG مختلطة تُستخدَم للوصول إلى قاعدة البيانات المحلية:

gcloud compute network-endpoint-groups create on-prem-hybrid-neg \
    --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
    --network=agentspace-psc-demo \
    --zone=$zone

داخل Cloud Shell، عدِّل مجموعة NEG المختلطة باستخدام عنوان IP والمنفذ لقاعدة البيانات المتعددة السُحب الإلكترونية، أي 192.168.10.10 والمنفذ 443 لكل بنية مرجعية:

gcloud compute network-endpoint-groups update on-prem-hybrid-neg \
    --add-endpoint=ip=192.168.10.10,port=443 \
    --zone=$zone

إنشاء عملية تحقّق من الصحة على مستوى المنطقة

داخل Cloud Shell، أنشئ عملية تحقّق من الصحة تتحقّق من منفذ قاعدة البيانات المحلية، 443:

gcloud compute health-checks create tcp on-prem-443-healthcheck \
    --region=$region \
    --port=443

إنشاء سياسة جدار الحماية وقواعد جدار الحماية

داخل Cloud Shell، اتّبِع الخطوات التالية:

gcloud compute network-firewall-policies create agentspace-psc-demo-policy --global

gcloud compute network-firewall-policies associations create --firewall-policy agentspace-psc-demo-policy --network agentspace-psc-demo --name agentspace-psc-demo --global-firewall-policy

تسمح قاعدة جدار الحماية التالية بتدفّق الزيارات من نطاق الشبكة الفرعية لترجمة عناوين الشبكة (NAT) في PSC إلى جميع المثيلات في الشبكة.

داخل Cloud Shell، اتّبِع الخطوات التالية:

gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy agentspace-psc-demo-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp

9- إنشاء خدمة منتِجة

إنشاء مكوّنات جهاز موازنة الحمل

داخل Cloud Shell، أنشئ خدمة الخلفية:

gcloud compute backend-services create producer-backend-svc --region=$region --load-balancing-scheme=INTERNAL_MANAGED --protocol=TCP --region=$region --health-checks=on-prem-443-healthcheck --health-checks-region=$region

في Cloud Shell، أضِف الخلفية الخاصة بمجموعة نقاط نهاية الشبكة المختلطة إلى خدمة الخلفية:

gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=on-prem-hybrid-neg --network-endpoint-group-zone=$zone --balancing-mode=CONNECTION --max-connections=100 --region=$region

في Cloud Shell، أنشئ خادم TCP وكيلًا مستهدفًا لتوجيه الطلبات إلى خدمة الخلفية:

gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
      --backend-service=producer-backend-svc  \
      --region=$region

في الصيغة التالية، أنشئ قاعدة إعادة توجيه (جهاز موازنة حمل داخلي لخادم وكيل TCP) مع تفعيل إمكانية الوصول العام.

في Cloud Shell، نفِّذ ما يلي:

gcloud compute forwarding-rules create producer-hybrid-neg-fr \
     --load-balancing-scheme=INTERNAL_MANAGED \
     --network-tier=PREMIUM \
     --network=agentspace-psc-demo \
     --subnet=producer-psc-fr-subnet \
     --address=hybrid-neg-lb-ip \
     --target-tcp-proxy=producer-lb-tcp-proxy \
     --target-tcp-proxy-region=$region \
     --region=$region \
     --allow-global-access \
     --ports=443

إنشاء مرفق الخدمة

لنشر خدمة، يجب إنشاء مرفق خدمة. يمكنك نشر الخدمة إما بالموافقة التلقائية أو بالموافقة الصريحة.

  • لنشر الخدمة والسماح تلقائيًا لأي مستهلك بالاتصال بها، اتّبِع التعليمات الواردة في نشر خدمة مع الموافقة التلقائية.
  • لنشر الخدمة مع موافقة المستهلك الصريحة، اختَر "قبول عمليات الربط للمشاريع المحدّدة" في إعدادات ربط مرفق الخدمة واترك حقل "المشاريع المقبولة" فارغًا.
  • بعد إنشاء مرفق الخدمة، ستنتقل نقاط نهاية المستهلك التي تطلب الوصول إلى خدمة المنتج في البداية إلى حالة "في انتظار المراجعة". للسماح بالربط، على "المنتج" بعد ذلك قبول المشروع الذي نشأ منه طلب نقطة نهاية "المستهلك".

داخل Cloud Shell، أنشئ Service Attachment، cc-database1-svc-attachment مع الموافقة التلقائية:

gcloud compute service-attachments create cc-database1-svc-attachment --region=$region --producer-forwarding-rule=producer-hybrid-neg-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet

بعد ذلك، احصل على "مرفق الخدمة" المُدرَج في معرّف الموارد المنتظم selfLink الذي يبدأ بـ "المشاريع" (projects) ودوِّن هذا المرفق لإعداد نقطة نهاية PSC في Agentspace.

selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/cc-database1-svc-attachment

داخل Cloud Shell، اتّبِع الخطوات التالية:

gcloud compute service-attachments describe cc-database1-svc-attachment --region=$region

مثال على الناتج المتوقّع:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2025-07-06T16:05:14.706-07:00'
description: ''
enableProxyProtocol: false
fingerprint: rXjeAOjb41k=
id: '1726139744351862725'
kind: compute#serviceAttachment
name: cc-database1-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '54619734758392808'
  low: '1726139744351862725'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1
selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/serviceAttachments/cc-database1-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/forwardingRules/producer-hybrid-neg-fr

في Cloud Console، انتقِل إلى:

خدمات الشبكة → Private Service Connect → الخدمات المنشورة

62a981141ca52077.png

e36e988fc46c07a8.png

10. إنشاء اتصال نقطة نهاية PSC في Agentspace

قبل ربط "مرفق خدمة المنتج" بـ Agentspace، تأكَّد من إكمال عمليات التحقّق التالية:

  • تسمح قوائم السماح لجدار الحماية على الشبكات المتعددة السحابية بالوصول إلى الشبكة الفرعية للخادم الوكيل الإقليمي.
  • تعرّفت الشبكة المتعددة السحابات على الشبكة الفرعية للخادم الوكيل الإقليمي.
  • تعرّفت شبكة VPC الخاصة بـ Agentspace على الشبكة الفرعية لقاعدة البيانات أو عنوان IP للمضيف على السحابة الإلكترونية.

اربط عنوان URI الخاص بمرفق خدمة المنتجين بـ Agentspace، مع التأكّد من تحديد خيار الوصول العالمي. في ما يلي مثال على تفعيل الوصول العام باستخدام Service Attachment في بنية المرجع.

c80e0e3845880771.png

لإنهاء عملية إعداد الشبكة الخاصة، يُرجى الرجوع إلى مصادر البيانات التابعة لجهات خارجية في Agentspace للحصول على مزيد من التعليمات.

التحقّق من صحة نقطة نهاية PSC في Cloud Console

للتأكّد من نجاح اتصال PSC بين Agentspace (المستهلك) والمنتج، تحقَّق من مشروع مستأجر Agentspace المرتبط بخدمة المنتج. يمكنك العثور على هذه المعلومات ضمن "المشاريع المرتبطة". يتم تحديد رقم تعريف مشروع المستأجر عشوائيًا، ولكن سينتهي دائمًا بالرمز "tp".

يمكنك التحقّق من صحة اتصال PSC من Cloud Console. في Cloud Console، انتقِل إلى:

Network Services → Private Service Connect → Published Service، ثم اختَر الخدمة cc-database1-svc-attachment.

4ae5916ea5402c1e.png

11. تَنظيم

حذف مكوّنات المختبر من نافذة Cloud Shell واحدة

gcloud compute service-attachments delete cc-database1-svc-attachment --region=$region -q

gcloud compute forwarding-rules delete producer-hybrid-neg-fr --region=$region -q

gcloud compute target-tcp-proxies delete producer-lb-tcp-proxy --region=$region -q

gcloud compute backend-services delete producer-backend-svc --region=$region -q

gcloud compute network-firewall-policies rules delete 2001 --firewall-policy agentspace-psc-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=agentspace-psc-demo-policy  --name=agentspace-psc-demo --global-firewall-policy -q

gcloud compute network-firewall-policies delete agentspace-psc-demo-policy --global -q

gcloud compute network-endpoint-groups delete on-prem-hybrid-neg --zone=$zone -q

gcloud compute addresses delete hybrid-neg-lb-ip --region=$region -q

gcloud compute networks subnets delete $region-proxy-only-subnet --region=$region -q

gcloud compute networks subnets delete producer-psc-nat-subnet --region=$region -q

gcloud compute networks subnets delete producer-psc-fr-subnet --region=$region -q

gcloud compute health-checks delete on-prem-443-healthcheck --region=us-central1 -q

gcloud compute networks delete agentspace-psc-demo -q

12. تهانينا

تهانينا، لقد نجحت في إعداد خدمة Producer ونشرها باستخدام Private Service Connect.

لقد أنشأت البنية الأساسية لـ Producer، وتعرّفت على كيفية إنشاء مجموعة NEG مختلطة وخدمة Producer وربط مرفق الخدمة بـ Agentspace.

تعتقد Cosmopup أنّ الدروس التطبيقية حول الترميز رائعة!!

c911c127bffdee57.jpeg

ما هي الخطوات التالية؟

يمكنك الاطّلاع على بعض دروس الترميز التطبيقية هذه...

مزيد من القراءة والفيديوهات

المستندات المرجعية