ניתוח האפליקציה באמצעות מדדים
במדריך למתחילים הזה נסביר איך להשתמש ב-Cloud Deploy כדי לנתח את שירות Cloud Run שפרסתם, על סמך מדדים מ-Google Cloud Observability, כדי לוודא שהאפליקציה פועלת כמצופה.
במדריך למתחילים הזה תבצעו את הפעולות הבאות:
יצירה ופריסה של שירות Cloud Run אחד.
במקרה כזה, לא תשתמשו ב-Cloud Deploy כדי לפרוס אותו.
יוצרים בדיקת זמני פעילות ב-Google Cloud Observability.
הבדיקה הזו עוקבת אחרי שירות Cloud Run כדי לוודא שהוא פועל.
יוצרים מדיניות התראות ב-Cloud Monitoring.
כברירת מחדל, בניתוח של Cloud Deploy אפשר להשתמש בסוגים רבים של מדדים מ-Google Cloud Observability. המדיניות הזו יוצרת התראה אם בדיקת זמני פעילות מצביעה על בעיה.
יוצרים הגדרת Skaffold כדי לזהות את שירות Cloud Run.
מגדירים את צינור עיבוד הנתונים לפריסה ואת היעד ב-Cloud Deploy.
צינור העיבוד הזה כולל שלב אחד בלבד ומשתמש רק ביעד אחד, והוא כולל את ההגדרה של משימת ניתוח.
יוצרים גרסת הפצה, שנפרסת באופן אוטומטי ביעד.
אחרי פריסת האפליקציה, הניתוח מופעל כעבודה בהשקה.
הפריסה של השירות ליעד אמורה להצליח, אבל ההשקה אמורה להיכשל כי מדיניות ההתראות תיצור התראה.
משנים את הגדרת השירות של Cloud Run כדי להגדיל את מספר המופעים של השירות, ויוצרים גרסה חדשה.
הפעם, הפריסה של השירות תצליח וההשקה תסתיים בהצלחה.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Deploy, Cloud Build, Cloud Run, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Deploy, Cloud Build, Cloud Run, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init
התפקידים הנדרשים
כדי לוודא שלחשבון השירות של Cloud Deploy יש את ההרשאות הנדרשות להפעלת פעולות של Cloud Deploy ולפריסה ב-Cloud Run, צריך לבקש מהאדמין להקצות לחשבון השירות של Cloud Deploy את תפקידי ה-IAM הבאים בפרויקט:
- Cloud Run Developer (
roles/run.developer) - Cloud Deploy Runner (
roles/clouddeploy.jobRunner) - משתמש בחשבון שירות ב-IAM (
roles/iam.serviceAccountUser) - צפייה בהתראות של Monitoring (
roles/monitoring.alertViewer) - צרכן שימוש בשירות (
roles/serviceusage.serviceUsageConsumer)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שהאדמין גם יוכל לתת לחשבון השירות של Cloud Deploy את ההרשאות שנדרשות באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
מידע נוסף על חשבון השירות של Cloud Deploy
פריסת שירות Cloud Run
במדריך למתחילים הזה נשתמש במדיניות התראות שדורשת ששירות Cloud Run כבר יתקיים. לכן נפריס כאן אחד, ובקטע מאוחר יותר נגדיר service.yaml באמצעות אותו שם שירות.
מריצים את הפקודה הבאה כדי ליצור את השירות הראשוני:
gcloud run deploy my-analysis-run-service \
--image=us-docker.pkg.dev/cloudrun/container/hello@sha256:95ade4b17adcd07623b0a0c68359e344fe54e65d0cb01b989e24c39f2fcd296a \
--project=PROJECT_ID \
--region=us-central1 \
--allow-unauthenticated
מחליפים את PROJECT_ID במזהה הפרויקט.
יצירת בדיקה של זמני פעילות ב-Google Cloud Observability
בדיקת הזמינות הזו עוקבת אחרי השירות הפעיל כדי לוודא שהוא פועל. בהמשך המאמר, תיצרו מדיניות התראות של Google Cloud Observability שתפיק התראה אם בשירות שלכם לא תהיה לפחות מופע אחד פעיל.
כדי ליצור את בדיקת הזמינות, מריצים את הפקודה הבאה:
gcloud monitoring uptime create my-analysis-run-service-cloud-run-uptime-check \ --resource-type=cloud-run-revision \ --resource-labels="project_id=PROJECT_ID,location=us-central1,service_name=my-analysis-run-service" \ --project=PROJECT_ID \ --protocol=https \ --path="/" \ --port=443 \ --period=1 \ --timeout=10 \ --service-agent-auth="oidc-token" \ --status-classes="2xx"מעתיקים את מזהה בדיקת זמני הפעילות.
המזהה מופיע בפלט של הפקודה שהרצתם.
הכנת הגדרות Skaffold והגדרת השירות
במדריך למתחילים הזה יוצרים קובץ skaffold.yaml שמזהה את המניפסט שישמש לפריסת שירות לדוגמה ב-Cloud Run, ומגדירים גם את קובץ service.yaml שמגדיר את Cloud Run עצמו.
פותחים חלון טרמינל.
יוצרים ספרייה חדשה ועוברים אליה.
mkdir deploy-analysis-run-quickstart
cd deploy-analysis-run-quickstart
- יוצרים קובץ בשם
skaffold.yamlעם התוכן הבא:
apiVersion: skaffold/v4beta7
kind: Config
manifests:
rawYaml:
- service.yaml
deploy:
cloudrun: {}
מידע נוסף על קובץ ההגדרה הזה מופיע בskaffold.yamlמאמר בנושא הפניה.
- יוצרים קובץ בשם
service.yamlעם התוכן הבא:
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: my-analysis-run-service
annotations:
run.googleapis.com/scalingMode: manual
run.googleapis.com/manualInstanceCount: 0
spec:
template:
spec:
containers:
- image: my-app-image
הקובץ הזה הוא הגדרה של שירות Cloud Run, שמשמש לפריסת האפליקציה. קובץ האימג' של הקונטיינר לפריסה מוגדר כאן כמחזיק מקום, my-app-image, שמוחלף באימג' הספציפי כשיוצרים את הגרסה.
שימו לב שהגדרנו את מצב ההתאמה לשינויים ל'ידני', ואת מספר המופעים ל-0.
המשמעות היא שהשירות שנפרס לא יוכל לקבל תנועת גולשים ולא יהיו מופעים פעילים, ולכן תופעל התראה. בשלב הבא תגדירו את ההתראה הזו.
יצירת מדיניות התראות
במדריך הזה למתחילים נשתמש במדיניות התראות של Google Cloud Observability. מדיניות ההתראה הזו יוצרת התראה אם שירות Cloud Run נכשל בבדיקת הזמינות שיצרתם קודם.
בספרייה
deploy-analysis-run-quickstart, יוצרים קובץ בשםpolicy.yamlעם התוכן הבא:displayName: Cloud Run service uptime check userLabels: policy-for: analysis-run-pipeline combiner: OR conditions: - displayName: Failure of uptime check UPTIME_ID conditionThreshold: filter: metric.type="monitoring.googleapis.com/uptime_check/check_passed" AND metric.label.check_id="UPTIME_ID" AND resource.type="cloud_run_revision" aggregations: - alignmentPeriod: 60s crossSeriesReducer: REDUCE_COUNT_FALSE groupByFields: - resource.label.* perSeriesAligner: ALIGN_NEXT_OLDER comparison: COMPARISON_GT duration: 60s thresholdValue: 1.0מחליפים את
UPTIME_IDבמזהה של בדיקת הזמינות שיצרתם קודם.מריצים את הפקודה הבאה כדי ליצור את המדיניות:
gcloud monitoring policies create \ --policy-from-file=policy.yaml\ --project=PROJECT_IDמחליפים את
PROJECT_IDבמזהה הפרויקט.מעתיקים את מזהה המדיניות מהפלט של הפקודה שהפעלתם הרגע.
הפעם, מעתיקים את מזהה המשאב כולו, כולל הנתיב. תצטרכו להשתמש במזהה הזה בקטע הבא, בהגדרת הניתוח בצינור העברת הנתונים.
יצירת צינור העברת נתונים ויעד
לצינור הזה של העברת נתונים יש שלב אחד, ליעד אחד: analysis-staging.
בספרייה
deploy-analysis-run-quickstart, יוצרים קובץ חדש,clouddeploy.yaml, עם התוכן הבא:apiVersion: deploy.cloud.google.com/v1 kind: DeliveryPipeline metadata: name: deploy-analysis-demo-app-run description: main application pipeline serialPipeline: stages: - targetId: analysis-staging profiles: [] strategy: standard: analysis: duration: 300s googleCloud: alertPolicyChecks: - id: check-1 alertPolicies: - ALERT_POLICY_ID --- apiVersion: deploy.cloud.google.com/v1 kind: Target metadata: name: analysis-staging description: staging Run service run: location: projects/PROJECT_ID/locations/us-central1בקובץ ה-YAML הזה, מחליפים את
ALERT_POLICY_IDבפלט של הפקודהgcloud monitoring policies listשהפעלתם קודם, ואתPROJECT_IDבמזהה של הפרויקט שבו אתם משתמשים.רושמים את צינור עיבוד הנתונים ואת היעד בשירות Cloud Deploy:
gcloud deploy apply --file=clouddeploy.yaml --region=us-central1 --project=PROJECT_IDעכשיו יש לכם צינור להעברת נתונים עם יעד אחד, שמוכן לפריסת האפליקציה.
מאשרים את הצינור ואת היעד:
במסוף Google Cloud , נכנסים לדף Delivery pipelines של Cloud Deploy כדי לראות רשימה של צינורות העברת הנתונים שזמינים לכם.
צינור העברת הנתונים שיצרתם מוצג, עם יעד אחד שמופיע בעמודה יעדים.

יצירת גרסה
הפצה היא המשאב המרכזי ב-Cloud Deploy שמייצג את השינויים שנפרסים. צינור העברת התוכן מגדיר את מחזור החיים של הגרסה הזו. פרטים על מחזור החיים הזה מופיעים במאמר ארכיטקטורת שירות Cloud Deploy.
מריצים את הפקודה הבאה מהספרייה deploy-analysis-run-quickstart כדי ליצור משאב release שמייצג את קובץ האימג' של הקונטיינר לפריסה:
gcloud deploy releases create test-release-001 \
--project=PROJECT_ID \
--region=us-central1 \
--delivery-pipeline=deploy-analysis-demo-app-run \
--images=my-app-image=us-docker.pkg.dev/cloudrun/container/hello@sha256:95ade4b17adcd07623b0a0c68359e344fe54e65d0cb01b989e24c39f2fcd296a
שימו לב לדגל --images=, שבו משתמשים כדי להחליף את ה-placeholder (my-app-image) בהגדרת השירות בתמונה הספציפית שמוגדרת באמצעות SHA. Google ממליצה ליצור תבניות להגדרות השירות בדרך הזו,
ולהשתמש בשמות תמונות שעומדים בדרישות של SHA כשיוצרים מהדורה.
בדומה לכל פריטי התוכן (אלא אם הם כוללים --disable-initial-rollout),
מערכת Cloud Deploy יוצרת באופן אוטומטי גם משאב פריסת גרסה. האפליקציה נפרסת באופן אוטומטי ליעד אחד שהוגדר לצורך צינור אספקת התוכן הזה.
צפייה בתוצאות במסוף Google Cloud
אחרי כמה דקות, הגרסה שלכם נפרסת בסביבת זמן הריצה של היעד. אפשר לראות אותו.
במסוף Google Cloud , עוברים לדף Delivery pipelines של Cloud Deploy כדי לראות את צינור אספקת התוכנה ("deploy-analysis-demo-app-run").
לוחצים על השם של צינור העברת הנתונים ("deploy-analysis-demo-app-run").
הוויזואליזציה של הצינור מראה את סטטוס הפריסה של האפליקציה. בגלל שיש רק שלב אחד בצינור, בתצוגה החזותית מוצג רק צומת אחד.

פריט התוכן יופיע בכרטיסייה פריטי תוכן בקטע פרטים על צינור ההפצה.
בקטע פרטים על צינור ההפצה, לוחצים על הכרטיסייה השקות.
לוחצים על שם ההשקה כדי לראות את הפרטים שלה.
ניתוח מופיע כמשימה.

ניתוח שנכשל
משימת הניתוח שציינו בהגדרות של צינור עיבוד הנתונים לפריסה מופעלת כחלק מההשקה הזו, אחרי פריסת האפליקציה. הניתוח הזה אמור להיכשל, כי מדיניות ההתראות אמורה להפעיל התראה. ההשקה תיכשל בגלל הכשל הזה בניתוח.
אנחנו נבצע שינוי, ואז ניצור עוד פריט תוכן, שאמור לעבור בהצלחה.
שינוי הגדרת השירות ויצירת גרסה חדשה
עכשיו, נשנה את מספר המכונות בהגדרת השירות, כך שתהיה מכונה פעילה של השירות, וההתראה לא תופעל.
עורכים את קובץ ההגדרה של Cloud Run,
service.yaml, כדי לשנות את הערך שלrun.googleapis.com/manualInstanceCountמ-0ל-1.מריצים את הפקודה הבאה מאותה תיקיית
deploy-analysis-run-quickstartכדי ליצור עודrelease:gcloud deploy releases create test-release-002 \ --project=PROJECT_ID \ --region=us-central1 \ --delivery-pipeline=deploy-analysis-demo-app-run \ --images=my-app-image=us-docker.pkg.dev/cloudrun/container/hello@sha256:95ade4b17adcd07623b0a0c68359e344fe54e65d0cb01b989e24c39f2fcd296a
הפעם, ההשקה אמורה להצליח. הסיבה לכך היא שלשירות Cloud Run יש עכשיו מופע אחד שפועל, ולכן בדיקת זמן הפעולה לא תפעיל התראה ממדיניות ההתראות.
הסרת המשאבים
כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, פועלים לפי השלבים הבאים:
מוחקים את שירות Cloud Run:
gcloud run services delete my-analysis-run-service \ --region=us-central1 \ --project=PROJECT_IDכדי למחוק את צינור העברת התוכן, היעד, הגרסה וההפצה, מריצים את הפקודה הבאה מהספרייה שמכילה את ההגדרה של צינור העברת התוכן:
gcloud deploy delete --file=clouddeploy.yaml \ --force \ --region=us-central1 \ --project=PROJECT_IDמחיקת מדיניות ההתראות של Google Cloud Observability:
gcloud monitoring policies delete ALERT_POLICY_IDמוחקים את הקטגוריות של Cloud Storage שנוצרו על ידי Cloud Deploy.
אחד מסתיים ב-
_clouddeployוהשני הוא[region].deploy-artifacts.[project].appspot.com.
סיימתם את המדריך למתחילים!