הגדרת משימות ניתוח שמשתמשות ב-Google Cloud Observability

במאמר הזה מוסבר איך להגדיר ניתוח בצינור העברת הנתונים אם אתם משתמשים ב-Google Cloud Observability כמערכת הניטור שלכם.

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

לפני שמתחילים

  1. נכנסים לחשבון Google.

    אם עדיין אין חשבון, יוצרים חשבון חדש.

  2. התקינו את ה-CLI של Google Cloud.

  3. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  4. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  5. מוודאים שיש את ההרשאות הנדרשות כדי להשלים את ההדרכה.

  6. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  7. מפעילים את ממשקי ה-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
  8. התקינו את ה-CLI של Google Cloud.

  9. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  10. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  11. מוודאים שיש את ההרשאות הנדרשות כדי להשלים את ההדרכה.

  12. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  13. מפעילים את ממשקי ה-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 יש את ההרשאות הנדרשות ליצירה ולשימוש באוטומציות, צריך לבקש מהאדמין להקצות לחשבון השירות של Cloud Deploy את תפקידי ה-IAM הבאים בפרויקט:

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

יכול להיות שהאדמין גם יוכל לתת לחשבון השירות של Cloud Deploy את ההרשאות שנדרשות באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

הגדרת ניתוח ב-Cloud Deploy

הגדרת ניתוח פריסה כוללת את השלבים הבאים:

  1. הגדרה של כללי מדיניות התראות

  2. מגדירים משימת ניתוח בצינור העברת הנתונים.

  3. מריצים את צינור עיבוד הנתונים כדי להריץ את הניתוח.

הגדרת כללי מדיניות התראות

אתם מגדירים כללי מדיניות להתראות כדי לקבל מדדים מ-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

    מזהה הפרויקט שבו אתם יוצרים את צינור העברת הנתונים הזה.

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

המאמרים הבאים