مقدّمة عن "حزمة عمليات السحابة الإلكترونية"

1. مقدمة

تاريخ آخر تعديل: 2023-07-28

ما هي "حزمة عمليات Google Cloud"؟

‫Google Cloud Operations Suite هي منصة يمكنك من خلالها مراقبة أداء التطبيقات وتحديد المشاكل وحلّها وتحسينها في بيئة Google Cloud. تشمل الركائز الأساسية لحزمة عمليات Google Cloud كلاً من Cloud Monitoring وCloud Logging وCloud Tracing.

يمكنك مشاهدة هذا الفيديو للحصول على نظرة عامة على عمليات Google Cloud.

ما ستنشئه

في هذا الدرس التطبيقي، ستنشر نموذجًا لواجهة برمجة تطبيقات على Google Cloud. بعد ذلك، ستستكشف ميزات متعددة في Cloud Monitoring وتضبطها مقارنةً بواجهة برمجة التطبيقات.

ما ستتعلمه

  • استخدام Cloud Shell من Google Cloud لنشر تطبيق نموذجي على Cloud Run
  • استخدام ميزات Google Cloud Monitoring، مثل لوحات البيانات والتنبيهات وعمليات التحقّق من وقت التشغيل ومراقبة مؤشرات أداء الخدمة (SLI) وأهداف مستوى الخدمة (SLO) والمزيد

المتطلبات

  • إصدار حديث من Chrome (الإصدار 74 أو الإصدارات الأحدث)
  • حساب Google Cloud ومشروع Google Cloud

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

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

إذا لم يكن لديك حساب Google (Gmail أو Google Apps)، عليك إنشاء حساب. سجِّل الدخول إلى "وحدة تحكّم Google Cloud Platform" (console.cloud.google.com) وأنشِئ مشروعًا جديدًا.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

c20a9642aaa18d11.png

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

تنبيه: يجب أن يكون رقم تعريف المشروع فريدًا على مستوى العالم، ولا يمكن لأي شخص آخر استخدامه بعد اختياره. أنت المستخدم الوحيد لهذا المعرّف. حتى إذا تم حذف مشروع، لا يمكن استخدام رقم التعريف مرة أخرى.

  1. بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد/واجهات برمجة تطبيقات Cloud. لن تكلفك تجربة هذا الدرس التطبيقي حول الترميز الكثير من المال، إن لم تكلفك شيئًا على الإطلاق. لإيقاف الموارد كي لا يتم تحصيل رسوم منك بعد هذا البرنامج التعليمي، يمكنك حذف الموارد التي أنشأتها أو حذف المشروع بأكمله. يمكن لمستخدمي Google Cloud الجدد الاستفادة من برنامج الفترة التجريبية المجانية بقيمة 300 دولار أمريكي.

إعداد Google Cloud Shell

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

لتفعيل Cloud Shell من Cloud Console، ما عليك سوى النقر على "تفعيل Cloud Shell" (يستغرق توفير البيئة والاتصال بها بضع لحظات فقط).

30c26f30d17b3d46.png

إذا لم يسبق لك بدء Cloud Shell، ستظهر لك شاشة وسيطة (الجزء السفلي غير المرئي من الصفحة) توضّح ماهيته. في هذه الحالة، انقر على "متابعة" (ولن تظهر لك مرة أخرى). في ما يلي الشكل الذي ستظهر به هذه الشاشة لمرة واحدة:

9c92662c6a846a5c.png

يستغرق توفير Cloud Shell والاتصال به بضع لحظات فقط.

9f0e51b578fecce5.png

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

بعد الاتصال بـ Cloud Shell، من المفترض أن يظهر لك أنّه تم إثبات هويتك وأنّه تم ضبط المشروع على رقم تعريف مشروعك.

نفِّذ الأمر التالي في Cloud Shell للتأكّد من إكمال عملية المصادقة:

بعد الاتصال بـ Cloud Shell، من المفترض أن يظهر لك أنّه تمّت المصادقة عليك وأنّ المشروع تمّ ضبطه مسبقًا على PROJECT_ID.

gcloud auth list

ناتج الأمر

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)
gcloud config list project

ناتج الأمر

[core]
project = <PROJECT_ID>

إذا لم يتم ضبط المشروع لسبب ما، ما عليك سوى تنفيذ الأمر التالي:

gcloud config set project <PROJECT_ID>

يضبط Cloud Shell أيضًا بعض متغيرات البيئة تلقائيًا، ما قد يكون مفيدًا عند تنفيذ الأوامر المستقبلية.

echo $GOOGLE_CLOUD_PROJECT

ناتج الأمر

<PROJECT_ID>

تطبيقات نموذجية

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

رابط مستودع Git: https://github.com/rominirani/cloud-code-sample-repository

3- نشر تطبيق واجهة برمجة التطبيقات

ما هو موضوع التطبيق النموذجي أو واجهة برمجة التطبيقات؟

تطبيقنا هو تطبيق بسيط لواجهة برمجة التطبيقات Inventory API يعرض نقطة نهاية REST API مع عمليتين لعرض عناصر المستودع والحصول على عدد مستودع عنصر معيّن.

بعد نشر واجهة برمجة التطبيقات، وبافتراض أنّها مستضافة على https://<somehost>، يمكننا الوصول إلى نقاط نهاية واجهة برمجة التطبيقات على النحو التالي:

  • https://<somehost>/inventory

سيتم عرض قائمة بجميع المنتجات مع مستويات المستودع المتوفرة.

  • https://<somehost>/inventory/{productid}

سيؤدي ذلك إلى توفير سجلّ واحد يتضمّن productid ومستوى المخزون المتوفّر لهذا المنتج.

تكون بيانات الردّ التي يتم إرجاعها بتنسيق JSON.

نموذج البيانات وطلب/ردّ واجهة برمجة التطبيقات

لا يعتمد التطبيق على قاعدة بيانات في الخلفية لتبسيط الأمور. تحتوي على 3 معرّفات منتجات نموذجية ومستويات المخزون المتوفّر.

معرّف المنتج

مستوى المستودع المتوفّر

I-1

10

I-2

20

I-3

30

في ما يلي نموذج لطلب بيانات من واجهة برمجة التطبيقات ونموذج لردّ:

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

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

https://<somehost>/inventory

[ { "I-1": 10, "I-2": 20, "I-3": 30 }]

https://<somehost>/inventory/I-1

{ "productid": "I-1", "qty": 10}

https://<somehost>/inventory/I-2

{ "productid": "I-2", "qty": 20}

https://<somehost>/inventory/I-200

{ "productid": I-200, "qty": -1}

إنشاء نسخة طبق الأصل من المستودع

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

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

bce75f34b2c53987.png

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

f6ef2b5f13479f3a.png

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

إعداد gcloud

في Cloud Shell، اضبط رقم تعريف مشروعك واحفظه كمتغيّر PROJECT_ID.

PROJECT_ID=[YOUR-PROJECT-ID]
gcloud config set project $PROJECT_ID

الآن، نفِّذ الأمر التالي:

$ git clone https://github.com/rominirani/cloud-code-sample-repository.git 

سيؤدي ذلك إلى إنشاء مجلد بعنوان cloud-code-sample-repository في هذا المجلد.

(اختياري) تشغيل التطبيق على Cloud Shell

يمكنك تشغيل التطبيق محليًا باتّباع الخطوات التالية:

  1. من الوحدة الطرفية، انتقِل إلى إصدار Python من واجهة برمجة التطبيقات باستخدام الأمر التالي:
$ cd cloud-code-sample-repository
$ cd python-flask-api
  1. في نافذة الجهاز، أدخِل الأمر التالي (في وقت كتابة هذا المستند، يتضمّن Cloud Shell الإصدار 3.9.x من Python، وسنستخدم الإصدار التلقائي. إذا كنت تخطّط لتشغيله محليًا على الكمبيوتر المحمول، يمكنك استخدام الإصدار 3.8 من Python أو إصدار أحدث:
$ python app.py
  1. يمكنك تنفيذ الأمر التالي لبدء خادم Python محليًا.

26570f586acaeacf.png

  1. سيؤدي ذلك إلى بدء تشغيل خادم على المنفذ 8080 ويمكنك اختباره محليًا من خلال ميزة "معاينة الويب" في Cloud Shell. انقر على الزر معاينة الويب كما هو موضّح أدناه:

675d9b3097a6209c.png

انقر على "معاينة" على المنفذ 8080.

  1. سيؤدي ذلك إلى فتح نافذة متصفّح. سيظهر لك الخطأ 404، وهذا أمر طبيعي. عدِّل عنوان URL واجعله يتضمّن /inventory فقط بعد اسم المضيف.

على سبيل المثال، يظهر على جهازي بالشكل التالي:

https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory

سيؤدي ذلك إلى عرض قائمة عناصر المستودع كما هو موضّح سابقًا:

ef6afb0184c58870.png

  1. يمكنك إيقاف الخادم الآن من خلال الانتقال إلى "الوحدة الطرفية" والضغط على Ctrl-C.

نشر التطبيق

سننشر الآن تطبيق واجهة برمجة التطبيقات هذا على Cloud Run. تضمّنت العملية استخدام برنامج glcoud لسطر الأوامر لتنفيذ الأمر اللازم لنشر الرمز البرمجي على Cloud Run.

من الوحدة الطرفية، أدخِل أمر gcloud التالي:

$ gcloud run deploy --source .

سيُطلب منك الإجابة عن أسئلة متعددة (إذا طُلب منك منح الإذن، يُرجى المتابعة)، وفي ما يلي بعض النقاط التي يجب مراعاتها. قد تتلقّى جميع الأسئلة أو لا تتلقّاها، وذلك حسب الإعدادات وما إذا كنت قد فعّلت واجهات برمجة تطبيقات معيّنة في مشروعك على Google Cloud.

  1. اسم الخدمة (python-flask-api): يمكنك استخدام هذا الاسم التلقائي أو اختيار اسم آخر، مثل my-inventory-api
  2. لم يتم تفعيل واجهة برمجة التطبيقات [run.googleapis.com] في المشروع [project-number]. هل تريد تفعيلها وإعادة المحاولة (سيستغرق ذلك بضع دقائق)؟ (y/N)؟ نعم
  3. يُرجى تحديد منطقة: اختَر منطقة من اختيارك بإدخال رقم.
  4. لم يتم تفعيل واجهة برمجة التطبيقات [artifactregistry.googleapis.com] في المشروع [project-number]. هل تريد تفعيلها وإعادة المحاولة (سيستغرق ذلك بضع دقائق)؟ (y/N)؟ نعم
  5. يتطلّب النشر من المصدر مستودع Artifact Registry Docker لتخزين الحاويات التي تم إنشاؤها. سيتم إنشاء مستودع باسم [cloud-run-source-deploy] في المنطقة [us-west1].

هل تريد المتابعة (نعم/لا)؟ نعم

  1. Allow unauthenticated invocations to [my-inventory-api] (y/N)? نعم

سيؤدي ذلك في النهاية إلى بدء عملية أخذ الرمز المصدر ووضعه في حاوية وإرساله إلى Artifact Registry ثم نشر خدمة Cloud Run وإصدارها. يجب التحلي بالصبر أثناء هذه العملية (قد تستغرق من 3 إلى 4 دقائق)، ومن المفترض أن تكتمل العملية ويظهر لك عنوان URL الخاص بالخدمة.

في ما يلي نموذج لعملية التنفيذ:

7516696ea5b3004b.png

اختبار التطبيق

بعد نشر التطبيق على Cloud Run، يمكنك الوصول إلى تطبيق واجهة برمجة التطبيقات على النحو التالي:

  1. دوِّن عنوان URL الخاص بالخدمة من الخطوة السابقة. على سبيل المثال، يظهر في إعداداتي على النحو التالي: https://my-inventory-api-bt2r5243dq-uw.a.run.app. لنسمِّ هذا العنوان <SERVICE_URL>.
  2. افتح متصفحًا وانتقِل إلى عناوين URL الثلاثة التالية لنقاط نهاية واجهة برمجة التطبيقات:
  3. <SERVICE_URL>/inventory
  4. <SERVICE_URL>/inventory/I-1
  5. <SERVICE_URL>/inventory/I-100

يجب أن يكون التنسيق مطابقًا للمواصفات التي قدّمناها في قسم سابق مع نموذج لطلب بيانات من واجهة برمجة التطبيقات ونموذج لردّ.

الحصول على تفاصيل الخدمة من Cloud Run

نشرنا خدمة واجهة برمجة التطبيقات على Cloud Run، وهي بيئة حوسبة بدون خادم. يمكننا الانتقال إلى خدمة Cloud Run من خلال Google Cloud Console في أي وقت.

من القائمة الرئيسية، انتقِل إلى Cloud Run. سيؤدي ذلك إلى عرض قائمة بالخدمات التي يتم تشغيلها في Cloud Run. من المفترض أن تظهر لك الخدمة التي تم نشرها للتو. استنادًا إلى الاسم الذي اخترته، من المفترض أن يظهر لك ما يلي:

10d2c363241d789c.png

انقر على اسم الخدمة للاطّلاع على التفاصيل. في ما يلي تفاصيل النموذج:

1ec2c9e45ff1a2db.png

لاحظ عنوان URL، وهو ليس سوى عنوان URL للخدمة يمكنك إدخاله في المتصفّح والوصول إلى Inventory API الذي تم نشره للتو. يمكنك الاطّلاع على المقاييس والتفاصيل الأخرى.

لنبدأ الآن باستخدام "حزمة عمليات Google Cloud".

4. إعداد لوحة بيانات

من الميزات الملائمة التي توفّرها خدمة Cloud Monitoring لوحات البيانات الجاهزة للاستخدام (OOTB) على مستوى موارد متعددة في Google Cloud. وهذا يجعل عملية الإعداد الأوّلي للوحات البيانات التي تتضمّن مقاييس عادية عملية سريعة ومريحة.

لنلقِ نظرة على كيفية إجراء ذلك لخدمة واجهة برمجة التطبيقات التي نشرناها للتو على Cloud Run.

لوحة البيانات المخصّصة لخدمتنا

بعد نشر خدمة واجهة برمجة التطبيقات على Cloud Run، لنطّلع على كيفية إعداد لوحات البيانات التي يمكن أن تساعد في عرض المقاييس المختلفة، والتي يتضمّن بعضها وقت استجابة الخدمة.

أولاً، من وحدة التحكّم، انتقِل إلى المراقبة ← نظرة عامة كما هو موضّح أدناه:

c51a5dda4ab72bbf.png

تعرض "النظرة العامة" عناصر متعدّدة كنت قد أعددتها في "المراقبة"، مثل لوحات البيانات والتنبيهات وعمليات الفحص في وقت التشغيل وما إلى ذلك.

2758f61f1e7f1dca.png

في الوقت الحالي، لننقر على لوحات البيانات من القائمة الرئيسية الجانبية. سيؤدي ذلك إلى ظهور الشاشة التالية:

c9110b6f065100da.png

انقر على مكتبة العيّنات . سيؤدي ذلك إلى عرض قائمة بلوحات البيانات الجاهزة للاستخدام المتوفّرة في Google Cloud، وذلك على مستوى موارد متعددة. على وجه التحديد، انتقِل للأسفل في القائمة واختَر Google Cloud Run كما هو موضّح أدناه.

ddac4038d4fa91ae.png

سيؤدي ذلك إلى عرض قائمة بلوحات البيانات العادية المتاحة في Google Cloud Run. نحن مهتمون بذلك لأنّنا نشرنا خدمتنا على Cloud Run.

ستظهر لك لوحة بيانات واحدة لرصد Cloud Run. انقر على الرابط معاينة لعرض قائمة الرسوم البيانية العادية (المقاييس) المتاحة في Cloud Run Monitoring. ما عليك سوى النقر على استيراد لوحة بيانات نموذجية لاستيراد جميع هذه الرسوم البيانية إلى لوحة بيانات مخصّصة. سيؤدي ذلك إلى عرض شاشة "لوحة البيانات" مع اسم معبأ مسبقًا كما هو موضّح أدناه:

531cb8434b18193a.png

يمكنك الرجوع إلى الصفحة السابقة من خلال النقر على السهم المتّجه لليسار، والذي يظهر على يسار اسم "لوحة البيانات"، في أعلى يمين الصفحة. سيؤدي ذلك إلى عرض قائمة لوحات البيانات، ومن المفترض أن تتمكّن من رؤية لوحة البيانات الجديدة التي أنشأتها للتو.

انقر على رابط "لوحة البيانات" هذا، ويمكنك تتبُّع مقاييس متعدّدة متاحة بدون أي إعدادات إضافية. تشمل هذه المقاييس وقت الاستجابة وعدد الطلبات ومقاييس الحاوية وغير ذلك.

يمكنك أيضًا اختيار وضع علامة على أيّ من لوحات البيانات كمفضّلة، وذلك ببساطة عن طريق النقر على رمز النجمة كما هو موضّح أدناه:

fc993d1a17415550.png

سيؤدي ذلك إلى إضافة لوحة البيانات إلى شاشة "النظرة العامة" في "المراقبة"، وستصبح طريقة سهلة للتنقّل إلى لوحات البيانات المستخدَمة بشكل متكرّر.

2e8f66e2652c55c5.png

1e1dffb5239ab110.png

رائع! لقد أضفت للتوّ لوحة بيانات مخصّصة لرصد خدمات Cloud Run. أحسنت!

5- عمليات الفحص في وقت التشغيل

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

في هذه الحالة، سيكون المرجع هو خدمة واجهة برمجة التطبيقات التي نشرناها على Cloud Run. سيكون عنوان URL نقطة نهاية محدّدة تعرضها "خدمة واجهة برمجة التطبيقات" للإشارة إلى حالة الخدمة.

في نموذج رمز خدمة واجهة برمجة التطبيقات، عرضنا نقطة نهاية /healthy التي تعرض قيمة السلسلة "All Izz Well". كل ما علينا فعله هو تحديد عملية تحقّق من وقت التشغيل تصل إلى عنوان URL مثل https://<SERVICE_URL>/healthy والتحقّق مما إذا كانت السلسلة "All Izz Well" معروضة أم لا.

إنشاء قناة إشعارات

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

في الوقت الحالي، سنضبط قناة إشعارات عبر البريد الإلكتروني ونضبطها باستخدام عنوان بريدنا الإلكتروني، حتى نتمكّن من تلقّي إشعارات في حال حدوث أي تنبيهات سيصدرها نظامنا وسنضبطها.

لإنشاء "قناة إشعارات"، اتّبِع الخطوات التالية:

انتقِل إلى المراقبة (Monitoring) → التنبيهات (Alerting) من القائمة الرئيسية في Google Cloud Console، كما هو موضّح أدناه:

9f87859064c63b63.png

سيؤدي ذلك إلى عرض صفحة تتضمّن "التنبيهات" و"السياسات" والمزيد. في الوقت الحالي، سيظهر لك رابط في أعلى الصفحة بعنوان تعديل قنوات الإشعارات. انقر على ذلك.

5ab54f42e6f7b99.png

سيؤدي ذلك إلى عرض قائمة بقنوات الإشعارات المختلفة كما هو موضّح أدناه:

cd89b1ca9e1de87c.png

ابحث عن قسم البريد الإلكتروني وانقر على إضافة جديد في هذا الصف. سيؤدي ذلك إلى عرض تفاصيل إعدادات البريد الإلكتروني كما هو موضّح أدناه:

d6ed98ffd0427fa3.png

أدخِل عنوان بريدك الإلكتروني واسم العرض كما هو موضّح أدناه. انقر على حفظ.

بهذا الإجراء، تكتمل عملية إنشاء "قناة إشعارات البريد الإلكتروني". لنبدأ الآن في إعداد عملية التحقّق من مدة التشغيل.

إنشاء عملية تحقّق من وقت التشغيل

انتقِل إلى رصد → عمليات الفحص في وقت التشغيل من القائمة الرئيسية في Google Cloud Console. في أعلى الصفحة، سيظهر لك الرابط إنشاء عملية تحقّق من وقت التشغيل. انقر على ذلك.

484541aec65e605e.png

سيؤدي ذلك إلى ظهور سلسلة من الخطوات التي عليك إكمالها لإعداد عملية التحقّق من وقت التشغيل.

تتمثل الخطوة الأولى في إعداد تفاصيل الهدف، أي المعلومات المتعلقة بخدمة Cloud Run التي نشرناها. في ما يلي نموذج مملوء:

4e2bb9fe022320f7.png

يمكن اختيار القيم المختلفة على النحو التالي:

  • البروتوكول : HTTPS
  • نوع المورد : اختَر "خدمة Cloud Run". لاحظ المراجع الأخرى التي يتيحها والتي يمكنك إعداد عمليات الفحص في وقت التشغيل عليها أيضًا.
  • خدمة Cloud Run : اختَر my-inventory-api أو الاسم المحدّد الذي اخترته لخدمة Cloud Run.
  • المسار هو /healthy، لأنّنا نعرض السلسلة "All Izz Well" ونريد التحقّق منها.

انقر على متابعة للانتقال إلى الخطوة التالية. الخطوة التالية هي خطوة التحقّق من صحة الردّ كما هو موضّح أدناه:

a6011ac2ab3e0f10.png

يمكنك ملاحظة أنّنا نفعّل خيار التحقّق من "مطابقة المحتوى"، ثم نضبط الردّ الذي تعرضه نقطة النهاية /healthy على "All Izz Well". انقر على متابعة للانتقال إلى الخطوة التالية حيث سنضبط التنبيه وقناة الإشعارات التي يجب أن نتلقّى تنبيهًا بشأنها في حال تعذّر إجراء عملية فحص وقت التشغيل.

d9738670efcb999f.png

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

انقر على مراجعة للخطوة الأخيرة لمراجعة عملية فحص وقت التشغيل التي أعددناها.

في هذه الخطوة الأخيرة، أدخِل اسمًا لفحص وقت التشغيل (مثل فحص وقت التشغيل لواجهة برمجة التطبيقات Inventory API)، ويمكنك بعد ذلك اختبار ما إذا تم ضبط الفحص بشكلٍ صحيح. انقر على الزر اختبار لإجراء ذلك.

80375bfab97fc313.png

تابِع وأكمِل العملية (انقر على الزر إنشاء على يمين الصفحة). ستطلب Google Cloud من أدوات فحص وقت التشغيل التي تم إعدادها في مناطق مختلفة إرسال طلبات ping إلى عنوان URL وسيتم جمع هذه الردود. انتقِل إلى القسم المراقبة → عمليات الفحص في وقت التشغيل بعد بضع دقائق، ومن المفترض أن ترى جميع الإشارات الخضراء التي تشير إلى إمكانية الوصول إلى عنوان URL من مختلف عمليات الفحص.

df17555ddbee1127.png

في حال تعذُّر تنفيذ أي من عمليات التحقّق لفترة زمنية معيّنة (يمكن ضبطها)، ستتلقّى إشعار تنبيه على قناة البريد الإلكتروني التي ضبطناها.

بهذا نكون قد انتهينا من قسم إعداد عملية التحقّق من وقت التشغيل. أحسنت!

6. Metrics Explorer

تعرض خدمة Cloud Monitoring آلاف المقاييس العادية من عدة منتجات من Google Cloud. تتوفّر لك هذه المقاييس للتحقيق فيها وإرسال طلبات البحث بشأنها وتحويلها إلى رسومات بيانية وإضافتها إلى لوحات البيانات وتلقّي تنبيهات بشأنها وغير ذلك.

هدفنا في هذا القسم هو:

  1. تعرَّف على كيفية الاطّلاع على المقاييس المختلفة، ثم سنتناول مقياسًا محدّدًا (وقت الاستجابة) لخدمة واجهة برمجة التطبيقات.
  2. تحويل هذا المقياس إلى رسم بياني ولوحة بيانات مخصّصة يمكننا بعد ذلك استخدامها لعرض المقياس في أي وقت

استكشاف مقياس وقت الاستجابة لخدمة Inventory API

انتقِل إلى المراقبة (Monitoring) → مستكشف المقاييس (Metrics Explorer) من القائمة الرئيسية في "وحدة تحكّم Google Cloud". سينقلك هذا الإجراء إلى شاشة "مستكشف المقاييس". انقر على اختيار مقياس. يمكنك الآن الانتقال إلى العديد من المراجع النشطة التي تم إنشاء مقاييس لها.

بما أنّنا نتعامل مع خدمات Cloud Run، انقر على "مراجعة Cloud Run"، ثم على الفئة والمقياس المحدّد بعنوان وقت استجابة الطلب كما هو موضّح أدناه:

7609d8156c8f1384.png

انقر على تطبيق. سيؤدي ذلك إلى عرض "وقت استجابة الطلب" في رسم بياني. يمكنك تغيير "نوع الأداة" إلى "رسم بياني خطي" من "إعدادات العرض" على اليسار كما هو موضّح أدناه:

46086ac0a8eaf3d7.png

سيؤدي ذلك إلى عرض "الرسم البياني لوقت الاستجابة" كما هو موضّح أدناه:

ad97f749eeacaa95.png

إنشاء رسم بياني ولوحة بيانات مخصّصة

لنحفظ هذا الرسم البياني. انقر على حفظ الرسم البياني واستخدِم التفاصيل كما هو موضّح أدناه:

35d1788d5f0cb3c4.png

يُرجى العِلم أنّنا بصدد إنشاء لوحة بيانات جديدة بدلاً من حفظها في لوحة بيانات حالية. انقر على الزر حفظ. سيؤدي ذلك إلى إضافة لوحة البيانات التي تم إنشاؤها حديثًا إلى قائمة لوحات البيانات كما هو موضّح أدناه:

c9cdcd63d5823abd.png

انقر على لوحة البيانات المحدّدة التي أنشأناها لعرض التفاصيل.

27354d8310d8a2d7.png

بهذا نكون قد أكملنا القسم المتعلّق بالتحقيق في المقاييس المختلفة من خلال "مستكشف المقاييس" وكيفية إنشاء لوحات البيانات المخصّصة.

7. Cloud Logging

في هذا القسم، سنتعرّف على Cloud Logging. تتضمّن Cloud Logging واجهة Logs Explorer التي تساعدك في التنقّل والتعمّق في السجلّات التي أنشأتها خدمات Google المختلفة وتطبيقاتك.

في هذا القسم، سنتعرّف على "مستكشف السجلات" وسنحاكي بعض رسائل السجلّ التي يمكننا بعد ذلك البحث عنها وتحويلها إلى مقاييس من خلال ميزة تُعرف باسم مقاييس مستندة إلى السجلّ.

أداة "مستكشف السجلات"

يمكنك الانتقال إلى "مستكشف السجلّات" من خلال تسجيل الدخول → مستكشف السجلّات من وحدة تحكّم Google Cloud الرئيسية كما هو موضّح أدناه:

df05f5b33fd5695a.png

سيؤدي ذلك إلى عرض واجهة سجلّ يمكنك من خلالها تحديد/إلغاء تحديد موارد مختلفة (المشروع، ومورد Google Cloud، وأسماء الخدمات، وما إلى ذلك) بالإضافة إلى مستويات السجلّ لفلترة رسائل السجلّ حسب الحاجة.

e7fa15bcf73f3805.png

تعرض الصورة أعلاه قائمة بسجلّات مراجعة Cloud Run، أي خدمات Cloud Run التي نشرناها. ستظهر لك عدة طلبات من عمليات الفحص في وقت التشغيل تصل إلى نقطة النهاية /healthy التي أعددناها.

البحث عن تحذيرات

محاكاة بعض الطلبات غير الصالحة إلى "خدمة المستودع" من خلال تقديم أرقام تعريف منتجات لا تتضمّن I-1 وI-2 وI-3 على سبيل المثال، الطلب غير الصحيح هو:

https://<SERVICE_URL>/inventory/I-999

سنبحث الآن عن جميع التحذيرات التي أنشأتها واجهة برمجة التطبيقات عندما يتم تقديم معرّف منتج غير صحيح في طلب البحث.

في "مربّع طلب البحث"، أدخِل مَعلمات طلب البحث التالية:

resource.type="cloud_run_revision"

textPayload =~ "Received inventory request for incorrect productid"

من المفترض أن تظهر بشكلٍ مشابه لما يلي:

b3ee512a0c9c5c7b.png

انقر على "تنفيذ طلب البحث". سيؤدي ذلك إلى عرض جميع الطلبات التي وردت والتي تتضمّن هذه المشكلة.

5fdbd7c23bf4694f.png

المقاييس المستندة إلى السجلّ

لننشئ مقياس سجلّ مخصّصًا لتتبُّع هذه الأخطاء. نريد معرفة ما إذا كان هناك عدد كبير من المكالمات التي تتضمّن معرّفات منتجات غير صحيحة.

لتحويل ما ورد أعلاه إلى مقياس خطأ، انقر على الزر إنشاء مقياس الذي يظهر في "مستكشف السجلات".

fa9a5e04922aa412.png

سيؤدي ذلك إلى فتح النموذج لإنشاء تعريف المقياس. اختَر مقياسًا للعدّ وأدخِل تفاصيل اسم المقياس (inventory_lookup_errors) والوصف كما هو موضّح أدناه، ثم انقر على إنشاء مقياس.

70b5719b472d4d02.png

سيؤدي ذلك إلى إنشاء مقياس العداد، ومن المفترض أن تظهر لك رسالة كما هو موضّح أدناه:

ab9058028185e4d5.png

انتقِل إلى تسجيل الدخول → المقاييس المستندة إلى السجلات من القائمة الرئيسية، وسيظهر لك المقياس المخصّص الذي حدّدناه في قائمة المقاييس التي يحدّدها المستخدم كما هو موضّح أدناه:

7d186e90559cf8e1.png

في نهاية هذا الإدخال، ستجد ثلاث نقاط عمودية، انقر عليها للاطّلاع على العمليات التي يمكنك تنفيذها على هذا المقياس المخصّص. يجب أن تكون القائمة مشابهة لتلك التي تظهر أدناه. انقر على الخيار عرض في "مستكشف المقاييس".

7586f0789a0bdb41.png

سيؤدي ذلك إلى فتح "مستكشف المقاييس" الذي تعرّفنا عليه في القسم السابق، ولكن سيتم الآن ملؤه مسبقًا.

7ee7403d0639ce25.png

انقر على حفظ الرسم البياني. استخدِم القيم التالية لخيارات "حفظ الرسم البياني":

9009da45f76eb4c5.png

سيؤدي ذلك الآن إلى إنشاء لوحة بيانات جديدة يمكنك من خلالها الاطّلاع على أخطاء "بحث المستودع الإعلاني"، وستتوفّر في قائمة لوحات البيانات.

201ed66957cb64f9.png

رائع! لقد أنشأت الآن مقياسًا مخصّصًا من سجلّاتك، وحوّلته إلى رسم بياني يظهر في لوحة بيانات مخصّصة. سيساعدنا ذلك في تتبُّع عدد المكالمات التي تستخدم معرّفات منتجات غير صحيحة.

8. سياسات التنبيهات

في هذا القسم، سنستخدم المقياس المخصّص الذي أنشأناه وسنراقب بياناته بحثًا عن حدّ معيّن، أي إذا تجاوز عدد الأخطاء حدًّا معيّنًا، سنصدر تنبيهًا. بعبارة أخرى، سنعمل على إعداد سياسة تنبيه.

إنشاء سياسة تنبيه

لننتقل إلى "لوحة بيانات البحث في المستودع". سيؤدي ذلك إلى عرض الرسم البياني الذي أنشأناه لتسجيل أخطاء البحث عن المستودع على النحو الموضّح أدناه:

3591a1dd91a8b9fd.png

سيؤدي ذلك إلى عرض بيانات المقياس الحالي. لنعدّل المقياس أولاً كما هو موضّح أدناه (انقر على الزر "تعديل"):

5e76fc20d8387984.png

سيؤدي ذلك إلى عرض تفاصيل المقياس. سنحوّل الرسم البياني من عرض معدّل الأخطاء إلى مجموع، أي عدد الأخطاء. يظهر الحقل المطلوب تغييره أدناه:

65ccd1eaca607831.png

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

سننشئ "سياسة تنبيه" يمكنها إعلامنا في حال تجاوز عدد الأخطاء حدًا معيّنًا. انقر على النقاط الثلاث في أعلى يسار الرسم البياني، ثمّ على التحويل إلى رسم بياني للتنبيهات من قائمة الخيارات، كما هو موضّح أعلاه.

cc9eec48b9bfbc92.png

من المفترض أن تظهر لك شاشة كما هو موضّح أدناه:

6202ad1e88679a78.png

انقر على التالي، وسيؤدي ذلك إلى ظهور قيمة الحدّ التي يمكننا ضبطها. الحدّ الأدنى للعينة الذي اخترناه هنا هو 5، ولكن يمكنك اختيار الحدّ الذي يناسبك.

734f809cc802ab78.png

انقر على التالي لعرض نموذج الإشعارات

f2d84fb85c2520cb.png

لقد اخترنا قناة الإشعارات لتكون قناة البريد الإلكتروني التي أنشأناها سابقًا. يمكنك ملء التفاصيل الأخرى، مثل المستندات (التي سيتم تقديمها كجزء من التنبيه الذي يتم إرساله). انقر على التالي للاطّلاع على الملخّص وإكمال العملية.

c670b29da70c4655.png

بعد إنشاء "سياسة التنبيه" هذه، ستظهر في قائمة "سياسات التنبيه" كما هو موضّح أدناه. يمكنك الوصول إلى قائمة "سياسات التنبيه" من خلال الانتقال إلى المراقبة → التنبيه. ابحث عن قسم السياسات في الصفحة للاطّلاع على قائمة السياسات التي تم ضبطها حتى الآن.

154da627959c54f3.png

رائع! لقد أعددت الآن "سياسة تنبيه" مخصّصة ستُعلمك في حال زيادة معدّل الأخطاء أثناء البحث في Inventory API.

9- مراقبة الخدمة (اختياري)

في هذا القسم، سنعمل على إعداد مؤشرات مستوى الخدمة وأهداف مستوى الخدمة لخدماتنا وفقًا لمبادئ هندسة موثوقية المواقع الإلكترونية (SRE). ستلاحظ أنّ Cloud Monitoring يسهّل عليك الأمر من خلال رصد الخدمات التي نشرتها في Cloud Run تلقائيًا، ويمكنه احتساب مؤشرات أداء الخدمة الرئيسية، مثل التوفّر ووقت الاستجابة تلقائيًا، بالإضافة إلى احتساب ميزانية الخطأ.

لنبدأ الآن في إعداد اتفاقية مستوى الخدمة (SLO) الخاصة بوقت الاستجابة لخدمة واجهة برمجة التطبيقات.

إعداد اتفاقية مستوى الخدمة (SLO) لوقت الاستجابة في "خدمة المستودع"

انقر على المراقبة (Monitoring) → الخدمات (Services) من القائمة الرئيسية في Cloud Console. سيؤدي ذلك إلى عرض قائمة الخدمات التي تم إعدادها لميزة "مراقبة الخدمة".

في الوقت الحالي، ليس لدينا أي خدمات تم إعدادها لمراقبة مؤشرات مستوى الخدمة (SLI) أو أهداف مستوى الخدمة (SLO)، لذا فإنّ القائمة فارغة. انقر على الرابط تحديد الخدمة في أعلى الصفحة لتحديد الخدمة أو التعرّف عليها أولاً.

42d14515a481213.png

سيؤدي ذلك إلى اكتشاف الخدمات تلقائيًا التي يمكن أن تخضع لميزة "مراقبة هدف مستوى الخدمة". يمكنه رصد خدمات Cloud Run، وبالتالي ستظهر خدمة Inventory API التي تم نشرها على Cloud Run في القائمة.

522aaba719f85c54.png

قد يختلف الاسم المعروض الذي تراه حسب الخيار الذي اخترته عند نشر الخدمة على Cloud Run. انقر على الزر إرسال. سيؤدي ذلك إلى ظهور الشاشة الموضحة أدناه:

eca08010ab6858a9.png

يمكنك النقر على إنشاء هدف مستوى الخدمة. سيسمح لك ذلك الآن بالاختيار من مؤشرات SLI التي يتم احتسابها تلقائيًا.

556e49b10d22e5ac.png

نختار مؤشر مستوى الخدمة لوقت الاستجابة كنقطة بداية. انقر على متابعة. بعد ذلك، ستظهر لك شاشة تعرض الأداء الحالي لهذه الخدمة ومعدّل وقت الاستجابة المعتاد.

a9cc6f6778c13b52.png

نُدخل قيمة للحدّ الأدنى، أي 300 ملي ثانية، وهو ما نريد تحقيقه. يمكنك اختيار قيمة مختلفة إذا أردت ذلك، ولكن تذكَّر أنّ ذلك سيؤثّر في ميزانية الأخطاء التي تحدّدها وفقًا لذلك. انقر على متابعة.

نضبط الآن هدف مستوى الخدمة (الهدف وفترة القياس) على النحو الموضّح أدناه:

e1fc336d4191c08e.png

وهذا يعني أنّنا نختار "فترة القياس" كفترة من النوع "متواصل" ونقيسها على مدار 7 أيام. وبالمثل بالنسبة إلى الهدف، اخترنا هدفًا بنسبة %90. ما نحاول قوله هنا هو أنّه يجب إكمال% 90 من الطلبات إلى خدمة واجهة برمجة التطبيقات في غضون 300 ملي ثانية، ويجب قياس ذلك على مدار 7 أيام.

انقر على متابعة. سيؤدي ذلك إلى ظهور شاشة الملخّص، ويمكنك تأكيدها من خلال النقر على الزر تعديل اتفاقية مستوى الخدمة.

f2540173d9f4a4b7.png

يؤدي ذلك إلى حفظ تعريف SLO ويتم احتساب "ميزانية الأخطاء" تلقائيًا.

76393df0e189104.png

في ما يلي بعض الإجراءات التي يمكنك تجربتها:

  1. استخدِم واجهة برمجة التطبيقات من خلال طلبات متعددة واطّلِع على أداء الخدمة وتأثيرها في ميزانية الأخطاء المتبقية.
  2. عدِّل رمز المصدر لإضافة بعض التأخير الإضافي (السكون) بشكل عشوائي في بعض المكالمات. سيؤدي ذلك إلى زيادة وقت الاستجابة لعدد من الطلبات، ومن المفترض أن يؤثر سلبًا في ميزانية الأخطاء.

10. تهانينا

تهانينا، لقد نشرت تطبيقًا نموذجيًا بنجاح على Google Cloud وتعرّفت على كيفية استخدام "حزمة عمليات Google Cloud" لمراقبة حالة التطبيق.

المواضيع التي تناولناها

  • نشر خدمة على Google Cloud Run
  • إعداد لوحة بيانات لخدمة Google Cloud Run
  • عمليات الفحص في وقت التشغيل
  • إعداد مقاييس السجلّ المخصّصة ولوحة البيانات/الرسم البياني استنادًا إليها
  • استكشاف "أداة استكشاف المقاييس" وإعداد لوحة البيانات/الرسم البياني
  • إعداد سياسات التنبيه
  • إعداد مؤشر مستوى الخدمة (SLI) وهدف مستوى الخدمة (SLO) لميزة "رصد الخدمة" في Google Cloud

ملاحظة: إذا نفّذت درسًا تطبيقيًا حول الترميز باستخدام حسابك ومشروعك على السحابة الإلكترونية على Google Cloud، قد تستمر الموارد المخصّصة في تكبيد رسوم فوترة. لذا، احذف المشروع والموارد بعد الانتهاء من الدرس العملي.

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

يمكنك الاطّلاع على مهمة Cloud Skills Boost هذه لمعرفة المزيد عن "حزمة عمليات Google Cloud".

Further reading