המלצות

שירות ההמלצות

שירות המלצות הוא שירות ב- Google Cloud שמספק המלצות לאופטימיזציה של Google Cloud מוצרים ומשאבים.

כל כלי להמלצות מאפשר לכם לראות ולנהל את ההמלצות והתובנות שלו באמצעות API בארכיטקטורת REST ו-Google Cloud CLI. חלק מהממליצים מאפשרים גם לצפות בהמלצות ובתובנות שלהם ולנהל אותן באמצעות אחת או יותר מהאפשרויות הבאות:

  • Active Assist
  • FinOps Hub, שבו מנהלי חשבונות לחיוב יכולים לקבל המלצות לאופטימיזציה של העלויות.
  • הדף 'אופטימיזציה' ב-Cloud Hub, שבו מופיעות המלצות לאופטימיזציה של עלויות למפתחים ולאדמינים של פלטפורמות.
  • בהקשר באמצעות ממשק המשתמש של השירות במסוף Google Cloud

במאמר Recommenders (המלצות) מפורטים פרטים על כלי ההמלצות ועל לקוחות נתמכים.

לכל שירות המלצות יש מזהה ייחודי שמזהה את השירות. משתמשים במזהה ההמלצה כשמבצעים אינטראקציה עם המלצות באמצעות הפקודות של Recommender gcloud או ממשקי ה-API של REST או RPC.

מידע נוסף מופיע במאמר שירות ההמלצות.

המלצות

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

ההמלצות כוללות את מאפייני הליבה הבאים:

שם

שם ההמלצה מאוחסן בשדה name של הישות Recommendation. זהו השם של ההמלצה בפורמט הבא:

projects/TARGET_PROJECT_ID/locations/LOCATION/recommenders/RECOMMENDER_ID/recommendations/RECOMMENDATION_ID

where:

  • TARGET_PROJECT_ID הוא מזהה הפרויקט שבו נוצרה ההמלצה.
  • LOCATION הוא Google Cloud המיקום שבו נמצאים המשאבים שמשויכים להמלצות (לדוגמה, global או us-central1-a).
  • RECOMMENDER_ID הוא מזהה שירות ההמלצות המוגדר במלואו (לדוגמה, google.compute.instance.MachineTypeRecommender).
  • RECOMMENDATION_ID הוא מזהה ייחודי להמלצה.

תיאור

תיאור ההמלצה מאוחסן בשדה description של הישות Recommendation. האפשרות זמינה רק באנגלית. זהו טקסט קריא שמתאר את ההמלצה. ב Google Cloud מסוף, התיאור מופיע כשלוחצים כדי לראות פרטים נוספים על ההמלצה.

סוג משנה של שירות ההמלצות

יכול להיות שלשירות המלצות יהיו סוגי משנה להמלצות מסוגים ספציפיים. לדוגמה, לממליץ התפקידים בניהול הזהויות והרשאות הגישה יש את סוגי המשנה REPLACE_ROLE ו-REMOVE_ROLE. יכול להיות שעם הזמן יתווספו סוגי משנה חדשים למערכות ההמלצה הקיימות. בסקירה הכללית הזו מוצגת רשימה של כל כלי ההמלצות הזמינים. מידע נוסף על סוגי המשנה של ההמלצות זמין במאמרי העזרה על שירות ההמלצות.

השפעה של שירות ההמלצות

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

  • ההשפעה העיקרית היא חובה ונשמרת בשדה primaryImpact של ישות Recommendation.

  • השפעות משניות הן אופציונליות ומאוחסנות בשדה additionalImpact.

אלה סוגי ההשפעה העיקריים והמשניים:

  • COST: סכום הכסף המשוער שצפוי להיחסך (או להוצאה) אם תיישמו המלצה מסוימת. פרטים נוספים מופיעים בשדה cost בקטע CostProjection.

  • PERFORMANCE: עלייה או ירידה משוערת בביצועים. חשוב לזכור שחלק מההמלצות לשיפור הביצועים עלולות להוביל לעלויות נוספות (לדוגמה, אם ההמלצה היא להגדיל את הקצאת ה-CPU או הקצאת זיכרון במכונה וירטואלית שעושה שימוש יתר במשאבים).

  • SECURITY: שיפור משוער ברמת האבטחה. פרטים נוספים מופיעים בשדה details בקטע SecurityProjection.

  • MANAGEABILITY: צמצום משוער של טרחה ידנית.

  • SUSTAINABILITY: צמצום משוער בפליטות פחמן. פרטים נוספים זמינים בשדה carbon_footprint_kg_co2 בקטע SustainabilityProjection ובקטע מתודולוגיה של דיווח על טביעת רגל פחמנית.

פעולה

Operation היא פעולה בודדת שצריך לבצע כאחד מהשלבים האטומים בהמלצה מוצעת. הפעולות יכולות לייצג את השינויים הבאים:

  • הוספה, הסרה או החלפה של שדות באובייקט JSON ב Google Cloud resource.
  • מוסיפים, מסירים או מחליפים שדות של מערך JSON במשאב Google Cloud . כדי לזהות את הרכיבים של מערך JSON, צריך להגדיר מסנן בנתיב.
  • מוסיפים Google Cloud משאב חדש.
  • מחיקת Google Cloud משאב.
  • פעולות בדיקה שמציינות את המצב המקורי של המשאב. אפשר גם להשתמש בפעולות הבדיקה כדי לאמת את המצב הנוכחי של משאב לפני שמחילים את ההמלצה.
  • העתקה והעברה Google Cloud של משאבים ושדות.

כל Operation מבוסס באופן חופשי על פורמט JSON Path (RFC 6902) לתיקונים. בחרנו ב-RFC הזה כי הוא מספק דרך עקבית יותר לשקף שינויים במשאבים, כולל תרחישים מורכבים שנפוצים ב- Google Cloud. לדוגמה, המלצות IAM כוללות מערכים מקוננים כדי לשקף העברה של קישור תפקיד של חשבון משתמש לתפקיד אחר.

אפשר ליצור רשימת שינויים (תצוגה מבוססת-השוואה) לכל משאב באופן הבא:

  • מצב מקורי: פעולות הבדיקה מייצגות את הערך המקורי של שדה. החלק הזה מייצג את הצד הימני של תצוגת ההשוואה.
  • מצב מומלץ: פעולות שאינן בדיקות מייצגות את השינויים המומלצים בכל שדה. החלק הזה מייצג את הצד השמאלי של תצוגת ההשוואה.

קבוצות פעולות

קבוצת פעולות היא קבוצה של פעולה אחת או יותר שצריך לבצע בסדר מסוים כשמחילים המלצה. המלצה יכולה לכלול קבוצת פעולות אחת או יותר. קבוצות של פעולות מאוחסנות בשדה operationGroups בישות Recommendation.

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

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

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

מדינה

ההמלצות עוברות הרבה שינויי סטטוס אחרי שהן מוצעות. המלצה יכולה להיות באחד מהמצבים הבאים:

  • ACTIVE, כלומר ההמלצה ניתנה אבל לא בוצעו פעולות בעקבותיה. כדי ליישם את ההמלצה, צריך לאשר אותה. אפשר לעדכן המלצות פעילות כשמשאבים משתנים.
  • CLAIMED, כלומר אתם או תהליך אחר תבעתם את ההמלצה, והתשובה לה נמצאת בתהליך. כשמאמצים המלצה, Recommender לא מעדכן אותה כשמשאבים משתנים.
  • SUCCEEDED, כלומר אתם או תהליך אחר יישמתם את ההמלצה על המשאב המשויך.
  • FAILED, כלומר הניסיון ליישם את ההמלצה נכשל.
  • DISMISSED, כלומר אתם או תהליך אחר דחיתם את ההמלצה בלי להחיל אותה על המשאב המשויך. במצב הזה ההמלצה לא מופיעה ברשימת ההמלצות, ובדרך כלל אדמין שפסל אותה מסיבות שונות הוא זה שמחיל את המצב הזה. היא גם מונעת מעבר של המלצה למצב CLAIMED.

מידע על מצב ההמלצה מאוחסן בשדה stateInfo של ישות Recommendation. המידע הזה כולל את המצב של ההמלצה עצמה וכל מטא-נתונים נוספים של המצב לכל כלי המלצות.

כשמשנים את ההמלצה למצב CLAIMED, SUCCEEDED או FAILED, התוכן של ההמלצה לא מתעדכן, וההמלצה תקפה למשך 90 ימים מרגע שינוי המצב.

etag

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

אחרי שמקבלים המלצה מ-Recommender באמצעות gcloudפקודות או קריאות ל-API, צריך להפנות אליה בפעולות הבאות באמצעות מזהה ההמלצה וגם באמצעות ה-etag. כך מוודאים שפעולות יבוצעו רק אם ההמלצה לא השתנתה מאז הפעם האחרונה שבה אחזרתם אותה.

עדיפות

העדיפות של ההמלצה עוזרת להבין באילו פעולות צריך לטפל קודם. השדה הזה מגיע עם הערכים P1, P2, P3 ו-P4, כאשר P4 מוגדר כברירת המחדל. לכל כלי להמלצות יכולה להיות אסטרטגיית תעדוף משלו.

מטא-נתונים של מצב

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

המטא-נתונים מצוינים כזוגות key:value. לדוגמה:

{
  "stateMetadata": {
    "priority" : "high",
    "tracking_number": "12345" }
}

עדכונים בשדה stateMetadata מחליפים מטא-נתונים קיימים של מצב.

זמן הרענון האחרון

הזמן של הרענון האחרון מציין מתי ההמלצה רעננה לאחרונה בתהליך היצירה. התוכן של ההמלצה משקף את מצב המשאבים בזמן הרענון האחרון.

דוגמאות

בדוגמה הבאה מוצגת המלצה לגבי גודל של מכונה וירטואלית ב-Compute Engine.

{
  "content": {
    "operationGroups": [
      {
        "operations": [
          {
            "action": "test",
            "path": "/machineType",
            "resource": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/instance-rightsizing-2",
            "resourceType": "compute.googleapis.com/Instance",
            "valueMatcher": {
              "matchesPattern": ".*zones/us-central1-a/machineTypes/n1-standard-4"
            }
          },
          {
            "action": "replace",
            "path": "/machineType",
            "resource": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/instance-rightsizing-2",
            "resourceType": "compute.googleapis.com/Instance",
            "value": "zones/us-central1-a/machineTypes/custom-2-5120"
          }
        ]
      }
    ]
  },
  "description": "Save cost by changing machine type from n1-standard-4 to custom-2-5120.",
  "etag": "\"923daeebe926c12f\"",
  "recommenderSubtype": "CHANGE_MACHINE_TYPE",
  "lastRefreshTime": "2019-06-13T06:44:58Z",
  "name": "projects/32428390823/locations/us-central1-a/recommenders/google.compute.instance.MachineTypeRecommender/recommendations/a523ff7e-ed03-4143-a3a5-5b396b99cba9",
  "primaryImpact": {
    "category": "COST",
    "costProjection": {
      "cost": {
        "currencyCode": "USD",
        "units": "-73"
      },
      "duration": "2592000s"
    }
  },
  "stateInfo": {
    "state": "ACTIVE"
  }
}

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

הפניה לתובנה

הפניה לתובנה משויכת. ההפניות מקשרות בין ההמלצות לבין התובנות שקשורות אליהן, אם יש כאלה.

הגדרות אישיות

בהגדרות של שירות ההמלצות, אפשר:

  • התאמה אישית של האופן שבו נוצרות תובנות והמלצות. השינוי מתבצע על ידי שינוי של חלק מפרמטרי ההגדרה שמשמשים ליצירת התובנות וההמלצות האלה.
  • לכל פרמטר מוגדרים ערכי ברירת מחדל בהגדרות של כל מערכת המלצות. לכל פרמטר יש טווח ערכים שבאמצעותם אפשר להתאים אישית את ההגדרה.
  • ההגדרה הפעילה היא ההגדרה ששיניתם לאחרונה. כל שינוי שתבצעו בהגדרות ייכנס לתוקף תוך 48 שעות.

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

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

זוהי דוגמה לתשובה שמכילה פרמטרים של הגדרות עבור שירות המלצות על מכונות וירטואליות בלי פעילות:

{
  "name": "projects/project-number/locations/global/recommenders/google.iam.policy.Recommender/config",
  "recommenderGenerationConfig": {
    "params": {
      "minimum_observation_period": "P90D",
    }
  },
  "etag": "\"2f3c9b65cda6a4ba\"",
  "updateTime": "2020-11-03T04:41:15.330351Z"
}