الدرس 1 من 9 · الأساسيات
Google Cloud: المشاريع، المؤسسة، الفوترة، الواجهة وgcloud
الهدف
أن تفهم كيف يرتّب Google Cloud الموارد (المؤسسة، المجلدات، المشاريع)، وكيف تتدفّق الأموال (حساب الفوترة)، وأن تختار منطقة (region) لعميل مغربي، ثم تدير كل ذلك باستعمال الواجهة (console) وCloud Shell وgcloud.
المفاهيم العامة للسحابة (نماذج الخدمة، المسؤولية المشتركة، المرونة، التكاليف) مشروحة في مسار «Cloud» (الأساسيات). إذا كنت تعرف AWS أو Azure، فالفرق الكبير في Google Cloud هو المكانة المركزية لـالمشروع (project).
أهم النقاط
- المشروع هو الوحدة الأساسية: كل مورد (VM، bucket، خدمة Cloud Run) ينتمي إلى مشروع واحد. للمشروع معرّف (ID) فريد في العالم (
boutique-atlas-prod)، واسم معروض، ورقم. - فوقه: المجلدات (folders) والمؤسسة (organization) (المرتبطة بنطاق Google Workspace أو Cloud Identity، مثلًا
boutiqueatlas.ma). صلاحيات IAM وقواعد الإدارة تُورَث نحو الأسفل. - حساب الفوترة (billing account) يدفع لمشروع واحد أو أكثر. المشروع الذي لا حساب فوترة له لا يستطيع استعمال إلا الخدمات المجانية.
- قبل استعمال خدمة، يجب تفعيل واجهتها البرمجية (API) في المشروع (
gcloud services enable). - لا توجد منطقة Google Cloud في المغرب حتى الآن: الأقرب هي europe-southwest1 (مدريد) وeurope-west9 (باريس).
1. تسلسل الموارد
في المخطّط التالي: المؤسسة، ثم مجلد «الإنتاج» (مشروع الموقع وقاعدة البيانات والتخزين، ومشروع VPC المشترك وVPN)، ثم مجلد «خارج الإنتاج»:
Organisation : boutiqueatlas.ma
├── Dossier « Production »
│ ├── Projet boutique-atlas-prod ← site web, base, stockage
│ └── Projet reseau-partage-prod ← VPC partagé, VPN
└── Dossier « Hors-production »
└── Projet boutique-atlas-dev
| المستوى | الدور | ملاحظة |
|---|---|---|
| المؤسسة (organization) | الجذر، مرتبطة بنطاق الشركة | تُنشأ مع Google Workspace أو Cloud Identity (نسخة مجانية ممكنة) |
| المجلد (folder) | تجميع المشاريع (حسب المصلحة، حسب البيئة، حسب العميل) | يمكن أن يحتوي على مجلدات أخرى |
| المشروع (project) | حاوية الموارد وواجهات API المفعّلة والحصص | المعرّف نهائي وفريد في العالم |
| المورد (resource) | VM، bucket، موضوع Pub/Sub… | ينتمي إلى مشروع واحد |
بدون مؤسسة (حساب Gmail شخصي)، تكون مشاريعك «بدون مؤسسة»: هذا مقبول للتعلّم، لكن الشركة تحتاج إلى المؤسسة لتمركز الصلاحيات والقواعد والفوترة.
المعرّف والاسم والرقم
ID du projet : boutique-atlas-prod (choisi par vous, 6 à 30 caractères, définitif)
Nom du projet : Boutique Atlas Prod (libre, modifiable)
Numéro du projet : 412345678901 (attribué par Google)
(المعرّف: تختاره أنت، من 6 إلى 30 حرفًا، ونهائي؛ الاسم: حر وقابل للتعديل؛ الرقم: تمنحه Google.)
يظهر المعرّف في عناوين URL، وفي أسماء حسابات الخدمة (…@boutique-atlas-prod.iam.gserviceaccount.com)، وفي الأوامر. اختره بعناية: لا يمكن تغيير اسمه.
2. الفوترة
- يحمل حساب الفوترة Cloud وسيلة الأداء (بطاقة بنكية دولية، أو فوترة شهرية للشركات المؤهّلة). معرّفه من الشكل
01A2B3-C4D5E6-F7A8B9. - يمكن لحساب فوترة واحد أن يدفع لـعدة مشاريع؛ والمشروع مرتبط بحساب واحد فقط في الوقت نفسه.
- تستفيد الحسابات الجديدة عمومًا من رصيد تجريبي ومن مستوى مجاني (free tier) (آلة صغيرة
e2-microفي بعض المناطق الأمريكية، وبضعة جيجابايت من التخزين…). الشروط تتغيّر: تحقّق منها في الصفحة الرسمية. - أنشئ ميزانيات مع تنبيهات منذ اليوم الأول (الدرس 3.1).
gcloud billing accounts list
gcloud billing projects link boutique-atlas-prod --billing-account=01A2B3-C4D5E6-F7A8B9
gcloud billing projects describe boutique-atlas-prod # billingEnabled: true
3. المناطق والنطاقات
تحتوي المنطقة (europe-southwest1، مدريد) على عدة نطاقات (zones) (europe-southwest1-a، -b، -c). بعض الموارد نطاقية (zonal) (VM، الأقراص الدائمة النطاقية)، وأخرى إقليمية (regional) (الشبكات الفرعية، Cloud Run، الأقراص الإقليمية)، وأخرى عالمية (global) (شبكات VPC، الصور، قواعد الجدار الناري firewall).
| المعيار | ما يجب التحقق منه |
|---|---|
| زمن الاستجابة نحو المغرب | مدريد وباريس هما الأقرب |
| توفّر الخدمات وأنواع الآلات | ليست كلها متوفرة في كل مكان |
| السعر | يختلف حسب المنطقة |
| المتطلبات القانونية | القانون 09-08 حول المعطيات الشخصية؛ رأي CNDP لبعض عمليات النقل |
| البصمة الكربونية | تشير Google إلى المناطق ذات الانبعاثات المنخفضة |
gcloud compute regions list
gcloud compute zones list --filter="region:europe-southwest1"
4. الواجهة وCloud Shell
تتيح الواجهة (console.cloud.google.com) القيام بكل شيء بالنقر. معالم مفيدة:
- محدِّد المشروع في الأعلى: تحقّق منه دائمًا قبل أي إجراء؛
- API et services: تفعيل API؛
- IAM et administration: الصلاحيات، حسابات الخدمة، الحصص؛
- Facturation: التقارير، الميزانيات؛
- أيقونة Activer Cloud Shell تفتح طرفية.
Cloud Shell آلة افتراضية Debian صغيرة ومجانية، مصادَق عليها مسبقًا، فيها gcloud وkubectl وterraform وdocker وgit ومحرّر شيفرة. ومجلدك الشخصي (5 جيجابايت) يُحتفظ به بين الجلسات. إنها الأداة المثالية لمتابعة هذا المسار من أي حاسوب.
5. gcloud على حاسوبك
يحتوي Google Cloud CLI على gcloud وgsutil (أداة التخزين القديمة، عُوّضت بـ gcloud storage) وbq (BigQuery).
gcloud init # مساعد: الاتصال، المشروع، المنطقة الافتراضية
gcloud auth login # تسجيل الدخول (يفتح المتصفح)
gcloud auth list # الحسابات المتصلة
gcloud config list # الإعداد النشط
gcloud projects list
gcloud components update # التحديث (في حالة التثبيت من أرشيف)
القيم الافتراضية
gcloud config set project boutique-atlas-prod
gcloud config set compute/region europe-southwest1
gcloud config set compute/zone europe-southwest1-a
gcloud config get-value project
gcloud config unset compute/zone
عدة إعدادات (configurations)
مستشار في شركة خدمات رقمية (ESN) بالرباط يعمل لثلاثة عملاء: إعداد مسمّى لكل عميل يجنّب الأخطاء.
gcloud config configurations create client-boutique
gcloud config set account consultant@esn.ma
gcloud config set project boutique-atlas-prod
gcloud config configurations list
gcloud config configurations activate client-ecole
gcloud compute instances list --project=autre-projet # فرض مشروع لأمر واحد فقط
شكل الأوامر
gcloud [GROUPE ...] RESSOURCE ACTION [NOM] --options
gcloud compute instances create web-01 --machine-type=e2-medium
gcloud storage buckets list
gcloud run services describe site
(البنية: gcloud ثم المجموعة ثم المورد ثم الإجراء ثم الاسم ثم الخيارات.) يعرض gcloud help compute instances create أو --help المساعدة؛ ويتيح gcloud beta … وgcloud alpha … الوصول إلى الميزات التجريبية.
الصيغ والمرشّحات
gcloud compute instances list --format="table(name, zone.basename(), status)"
gcloud compute instances list --filter="status=RUNNING AND labels.env=prod"
gcloud projects describe boutique-atlas-prod --format="value(projectNumber)" # قيمة خام
gcloud compute instances list --format=json | jq '.[].name'
--format=value(...) هو مقابل --output tsv في Azure: مثالي لمتغير shell.
6. واجهات API والحصص
كل خدمة هي API يجب تفعيلها لكل مشروع. الخطأ «API has not been used in project … or it is disabled» يعني ببساطة أنه يجب تفعيلها.
gcloud services list --enabled
gcloud services enable compute.googleapis.com run.googleapis.com
gcloud services disable bigquery.googleapis.com
الحصص (quotas) (عدد vCPU في كل منطقة، عناوين IP…) تحمي فاتورتك والمنصة. يُقدَّم طلب الرفع من الواجهة (IAM et administration → Quotas).
7. التسميات (labels)
gcloud compute instances update web-01 --update-labels=env=prod,projet=boutique
التسميات (labels) (أحرف صغيرة، أرقام، _ و-) تظهر في تصدير الفوترة: تتيح الإجابة عن سؤال «كم يكلّف المتجر في الإنتاج؟». لا تخلط بينها وبين وسوم الشبكة (network tags) (الدرس 1.4) ولا وسوم (tags) الموارد المُدارة على مستوى المؤسسة.
8. إغلاق مشروع
gcloud projects delete boutique-atlas-dev
يدخل المشروع في حالة إيقاف: تتوقف كل موارده عن العمل وعن التكلفة، ويُحذف نهائيًا بعد 30 يومًا. خلال هذه المدة، يستعيده gcloud projects undelete. حذف مشروع الاختبار هو أفضل طريقة للتأكد من أنك لم تنسَ شيئًا.
أخطاء متكررة
- العمل في المشروع الخطأ: تحقّق من
gcloud config get-value project(أو من محدِّد الواجهة) قبل كل عملية مهمة. - اختيار معرّف مشروع عام جدًا أو يحمل اسم عميل قد تفقده: إنه نهائي.
- نسيان ربط الفوترة: تفشل عمليات إنشاء الـVM بخطأ في الفوترة.
- الاعتقاد بأن المشروع المحذوف يختفي فورًا: يبقى 30 يومًا، ولا يمكن إعادة استعمال معرّفه.
التطبيق العملي (Lab)
ستكتب سكربت انطلاق مشروع الإنتاج لـ Boutique Atlas: إنشاء المشروع، ربطه بالفوترة، القيم الافتراضية (مدريد)، تفعيل واجهات API، ثم ملفًا صغيرًا يلخّص تسلسل الموارد. لا يتوفّر التمرين على شبكة ولا على gcloud: السكربت هو الذي كنت ستشغّله في Cloud Shell.
cat /root/gcp/01-projet.sh
sh -n /root/gcp/01-projet.sh # التحقق من الصياغة دون تنفيذ
اختبار قصير
- ما الوحدة الأساسية التي تحتوي على الموارد في Google Cloud؟
- هل يمكن تغيير معرّف مشروع؟
- ما الذي يجب فعله قبل استعمال Compute Engine في مشروع جديد؟
- أي خيار في gcloud يعطي قيمة خامًا، دون جدول؟
- ماذا يصير مشروع محذوف خلال الأيام الثلاثين الأولى؟
الأجوبة
- المشروع.
- لا: المعرّف نهائي (وحده الاسم المعروض يمكن تعديله).
- ربطه بـحساب فوترة وتفعيل الـAPI
compute.googleapis.com. --format="value(champ)".- يكون موقوفًا (لا خدمة ولا تكاليف) ويمكن استعادته بـ
gcloud projects undelete؛ ثم يُحذف نهائيًا.
مصادر مرجعية: وثائق Google Cloud (CC BY 4.0) — Compute Engine وgcloud وIAM والمواقع. نص أصلي من MasterLinux.