ניתוח האפליקציה באמצעות מדדים
במדריך למתחילים הזה נסביר איך להשתמש ב-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 כדי להגדיל את מספר המופעים של השירות, ויוצרים גרסה חדשה.
הפעם, הפריסה של השירות תצליח וההשקה תסתיים בהצלחה.
לפני שמתחילים
-
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, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
Configure the gcloud CLI to use your federated identity.
For more information, see Sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
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) - Service Usage Consumer (
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 יוצר באופן אוטומטי משאב פריסת גרסה. האפליקציה נפרסת באופן אוטומטי ליעד אחד שהוגדר לצורך צינור אספקה (pipeline) זה.
הצגת התוצאות במסוף Google Cloud
אחרי כמה דקות, הגרסה שלכם נפרסת בסביבת זמן הריצה של היעד. אתם יכולים לצפות בו.
במסוף Google Cloud , עוברים לדף Delivery pipelines של Cloud Deploy כדי לראות את צינור אספקת התוכנה ("deploy-analysis-demo-app-run").
לוחצים על השם של צינור העברת הנתונים ("deploy-analysis-demo-app-run").
במסך מוצג תרשים של צינור הנתונים, שבו אפשר לראות את סטטוס הפריסה של האפליקציה. מכיוון שיש רק שלב אחד בצינור, ההדמיה מציגה רק צומת אחד.

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

ניתוח שנכשל
משימת הניתוח שציינו בהגדרות של צינור עיבוד הנתונים לפריסה מופעלת כחלק מההשקה הזו, אחרי פריסת האפליקציה. הניתוח הזה אמור להיכשל, כי מדיניות ההתראות אמורה להפעיל התראה. ההשקה תיכשל בגלל הכשל הזה בניתוח.
אנחנו נבצע שינוי, ואז ניצור עוד פריט תוכן, שאמור לעבור את הבדיקה.
שינוי הגדרת השירות ויצירת גרסה חדשה
עכשיו, נשנה את מספר המכונות בהגדרת השירות, כך שתהיה מכונה פעילה של השירות, וההתראה לא תופעל.
עורכים את קובץ ההגדרה של 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.
סיימתם את המדריך למתחילים.