במאמר הזה מוסבר איך להגדיר ניתוח בצינור העברת הנתונים אם אתם משתמשים ב-Google Cloud Observability כמערכת הניטור שלכם.
אם אתם משתמשים בספק אחר של שירותי ניטור, אתם צריכים להגדיר ניתוח מותאם אישית, שכולל יצירה של מאגר להטמעה ולניתוח של מדדים ונתונים אחרים מהספק.
לפני שמתחילים
-
נכנסים לחשבון Google.
אם עדיין אין חשבון, יוצרים חשבון חדש.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init מפעילים את ממשקי ה-API של Compute Engine ו-Cloud Deploy, אם הם עדיין לא מופעלים:
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםgcloud services enable clouddeploy.googleapis.com
compute.googleapis.com -
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init מפעילים את ממשקי ה-API של Compute Engine ו-Cloud Deploy, אם הם עדיין לא מופעלים:
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםgcloud services enable clouddeploy.googleapis.com
compute.googleapis.com
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירה ולשימוש במשימות ניתוח, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בחשבון של הפרויקט:
- Cloud Deploy Runner (
roles/clouddeploy.jobRunner) - צפייה בהתראות של Monitoring (
roles/monitoring.alertPolicyViewer) - צרכן שימוש בשירות (
roles/serviceusage.serviceUsageConsumer)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
כדי לוודא שלחשבון השירות של Cloud Deploy יש את ההרשאות הנדרשות ליצירה ולשימוש באוטומציות, צריך לבקש מהאדמין להקצות לחשבון השירות של Cloud Deploy את תפקידי ה-IAM הבאים בפרויקט:
- משתמש בחשבון שירות ב-IAM (
roles/iam.serviceAccountUser) - Cloud Deploy Releaser (
roles/clouddeploy.releaser) - Cloud Deploy Operator (
roles/clouddeploy.operator)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שהאדמין גם יוכל לתת לחשבון השירות של Cloud Deploy את ההרשאות שנדרשות באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
הגדרת ניתוח ב-Cloud Deploy
הגדרת ניתוח הפריסה כוללת את השלבים הבאים:
מגדירים משימת ניתוח בצינור ההעברה.
מריצים את צינור עיבוד הנתונים כדי להריץ את הניתוח.
הגדרת כללי מדיניות התראות
אתם מגדירים כללי מדיניות התראה כדי לקבל מדדים מ-Google Cloud Observability. מדיניות התראות ב-Google Cloud Observability מתארת מתי ואיך אתם רוצים לקבל התראה כשנתוני המעקב עומדים בקריטריונים שצוינו.
הניתוח של Cloud Deploy משתמש בהתראות האלה כדי לבצע פעולה על סמך הנסיבות שמצוינות בהתראות.
לדוגמה, אתם יכולים להגדיר מדיניות התראות באפליקציה שלכם בסביבת הייצור כדי לשלוח התראה אם זמן האחזור של תגובת ה-HTTP גבוה מדי, ועל סמך ההתראה הזו, עבודת הניתוח שלכם יכולה להפעיל repairRolloutRuleאוטומציה כדי לבטל את הפריסה.
דוגמה נוספת: אפשר ליצור מדיניות דומה של התראות באפליקציה שפרסתם בסביבת הבדיקה. אם לא מופעלת התראה במהלך העבודה של ניתוח המשימה, המשימה יכולה להפעיל אוטומציה של promoteReleaseRule כדי לקדם את הגרסה לגרסת ייצור.
יצירת הניתוח
כדי ליצור משימת ניתוח לצינור אספקת האפליקציה, מגדירים את הניתוח בקובץ ההגדרות של הצינור, ואז מחילים את קובץ ההגדרות.
הגדרת משימת ניתוח
בקטע הזה מוסבר איך להגדיר משימת ניתוח של Cloud Deploy לשימוש עם Google Cloud Observability.
עבודת הניתוח מוגדרת כחלק מהגדרת צינור העברת הנתונים, בתוך קטע strategy. אפשר להשתמש בשיטה הזו בכל אסטרטגיה, canary או standard. אם רוצים להגדיר ניתוח לכל שלב, אפשר להשתמש ב-Canary בהתאמה אישית (strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis).
משימת ניתוח מורכבת מהרכיבים הבאים:
משך זמן
המשך הזה מציין כמה זמן יפעל ניתוח המשימה. אם משך הזמן יפוג ולא יזוהו התראות מ-Google Cloud Observability, הניתוח ייחשב להצלחה וההשקה תמשיך.
אחת או יותר מהבדיקות, שמתאימות למדיניות התראות במערכת המעקב
כל בדיקה כוללת את הפרטים הבאים:
מזהה
מדיניות התראות אחת או יותר
כלומר, הפניות למדיניות התראות אחת או יותר של Google Cloud Observability.
- תווית אחת או יותר, שמשמשות לזיהוי מדיניות התראות ספציפית. מדיניות התראות של Google Cloud Observability יכולה לנטר הרבה אפליקציות, ולכן התוויות האלה מאפשרות לנו להגביל את הבדיקה לאפליקציה ספציפית אחת או יותר.
שימו לב שאפשר להשתמש בפרמטרים של המערכת כמפתחות לתוויות כאן.
התחביר הבא משמש להגדרת משימת ניתוח כשמשתמשים בstandard אסטרטגיית פריסה:
strategy:
standard:
analysis:
duration: DURATION
googleCloud:
alertPolicyChecks:
- id: CHECK_ID
alertPolicies:
- [ALERT_POLICY_ID]
labels:
[KEY: VALUE]
כאשר:
DURATIONהערך הזה מציין את משך הזמן, בשניות, שבו יפעל ניתוח הנתונים. אחרי שפרק הזמן יסתיים, המשימה תושלם. אם הניתוח נכשל (הקונטיינר מחזיר קוד יציאה שאינו אפס), העבודה מסתיימת (
FAILED) לפני שתוקף משך הזמן פג.CHECK_IDהמזהה של בדיקה ספציפית בניתוח. כל מזהה חייב להיות ייחודי במשימת הניתוח הזו. אפשר להגדיר משימת ניתוח עם בדיקה אחת או יותר.
ALERT_POLICY_IDמזהה המדיניות של מדיניות ההתראות של Google Cloud Observability שבה אתם משתמשים לבדיקה. כדי למצוא את מזהה מדיניות ההתראות, מריצים את הפקודה
gcloud monitoring policies list. צריך את המזהה המלא, שנראה כך:projects/project-redacted/alertPolicies/01234567890123456789יכול להיות שהמזהה שמוחזר כולל את
/conditions/13842666848149128276אחרי מזהה המדיניות. אל תכללו את זה כחלק ממזהה המדיניות.KEYוגםVALUEהם צמד מפתח/ערך של תווית, שמשמשים להתייחסות רק להתראות ספציפיות. לדוגמה, אפשר להשתמש בתווית כדי שהבדיקה תתייחס רק להתראות לגבי עומס עבודה ספציפי.
אפשר להשתמש בפרמטרים של המערכת כדי להגדיר ערכים.
דוגמה לשימוש בפרמטר מערכת:
labels: service_name: '${{render.metadata.cloud_run.service.name}}'
ההגדרה הזו יוצרת משימת ניתוח. למרות שיש כמה בדיקות, ההגדרה הזו יוצרת רק עבודה אחת.
אם אף אחד מכללי המדיניות להגדרת התראות לא שולח התראות, העבודה הזו מצליחה וההשקה נמשכת. אם מדיניות כלשהי מפעילה התראה, העבודה נעצרת עם סטטוס FAILED, וההשקה נכשלת (עם סטטוס FAILED, אלא אם בוחרים להתעלם מכשל העבודה).
שימוש בקובץ ההגדרות של צינור עיבוד הנתונים למשלוח
כדי ליצור צינור העברה עם משימת הניתוח, מריצים את הפקודה הבאה כדי להחיל את קובץ התצורה:
gcloud deploy apply FILE \
--region=REGION \
--project=PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
FILEעם השם של קובץ התצורה של צינור העברת הנתונים,
clouddeploy.yamlאו כל שם שנתתם לו.REGIONבאזור שבו אתם יוצרים את צינור העברת הנתונים.
PROJECT_IDמזהה הפרויקט שבו יוצרים את צינור העברת הנתונים.
עכשיו יש לכם צינור להעברת נתונים בפרויקט, ועבודת ניתוח שתהיה חלק מהצינור כשתצרו גרסת הפצה.
המאמרים הבאים
אפשר לנסות את המדריך למתחילים בנושא ניתוח האפליקציה באמצעות מדדים.
תוכלו לראות את סכימת ההגדרות לניתוח בחומר עזר בנושא הגדרות של Cloud Deploy.