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