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

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

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

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

הניתוח של Cloud Deploy משתמש בהתראות האלה כדי לבצע פעולה על סמך הנסיבות שההתראות מציינות.

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

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

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

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

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