סקירה כללית של הכלי למידרוג אוטומטי

בדף הזה מוצג הכלי Autoscaler ל-Spanner (להלן: Autoscaler), שהוא כלי בקוד פתוח שאפשר להשתמש בו ככלי משלים ל-Spanner. הכלי הזה מאפשר להגדיל או להקטין באופן אוטומטי את נפח המחשוב במכונה אחת או יותר של Spanner, בהתאם לנפח שנמצא בשימוש.

מידע נוסף על שינוי גודל ב-Spanner זמין במאמר בנושא התאמה אוטומטית לעומס (automatic scaling) ב-Spanner. למידע על פריסת הכלי Autoscaler:

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

מידרוג אוטומטי

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

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

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

ארכיטקטורה

ל-Autoscaler יש שני רכיבים עיקריים: Poller ו-Scaler. אפשר לפרוס את Autoscaler עם הגדרות שונות לכמה סביבות ריצה בכמה טופולוגיות עם הגדרות שונות, אבל הפונקציונליות של רכיבי הליבה האלה זהה.

בקטע הזה מוסבר על שני הרכיבים האלה ועל המטרות שלהם.

מבצע סקרים

ה-Poller אוסף ומעבד את מדדי הסדרות העיתיות של מכונת Spanner אחת או יותר. ה-Poller מעבד מראש את נתוני המדדים של כל מופע Spanner, כך שרק נקודות הנתונים הרלוונטיות ביותר מוערכות ונשלחות אל ה-Scaler. העיבוד המקדים שמתבצע על ידי Poller גם מפשט את תהליך ההערכה של ספי נתונים עבור מופעי Spanner אזוריים, בשני אזורים ובמספר אזורים.

Scaler

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

במהלך התהליך, הכלי Autoscaler כותב סיכום של ההמלצות והפעולות שלו ב-Cloud Logging לצורך מעקב וביקורת.

תכונות של מידרוג אוטומטי

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

ניהול של כמה מופעים

הכלי Autoscaler יכול לנהל כמה מופעי Spanner בכמה פרויקטים. לכל סוגי המכונות הווירטואליות – רב-אזוריות, דו-אזוריות ואזוריות – יש ספי שימוש שונים שמשמשים לשינוי הגודל. לדוגמה, פריסות במספר אזורים ובשני אזורים מורחבות בשיעור של 45% של ניצול מעבד (CPU) בעדיפות גבוהה, בעוד שפריסות אזוריות מורחבות בשיעור של 65% של ניצול מעבד (CPU) בעדיפות גבוהה. בשני המקרים יש מרווח מותר של פלוס או מינוס. מידע נוסף על ספי הצריכה השונים להרחבת הקיבולת זמין במאמר בנושא התראות על ניצול גבוה של CPU.

פרמטרים עצמאיים להגדרה

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

הפרמטרים האלה קובעים את הגורמים הבאים:

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

שיטות התאמה להיקף

הכלי Autoscaler מספק שלוש שיטות שונות להגדלה ולהקטנה של מופעי Spanner: stepwise,‏ linear ו-direct. כל שיטה מיועדת לתמוך בסוגים שונים של עומסי עבודה. כשיוצרים לוחות זמנים עצמאיים של שליחת בקשות, אפשר להחיל שיטה אחת או יותר על כל מופע Spanner שמתבצע בו שינוי גודל אוטומטי.

בקטעים הבאים מוסבר בהרחבה על שיטות ההתאמה האלה.

שלב אחר שלב

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

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

דפוס טעינה עם כמה שלבים.

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

לינארי

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

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

דפוס טעינה עם תנודות.

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

הנוסחה לחישוב מספר הצמתים או יחידות העיבוד החדש היא:

newSize = currentSize * currentUtilization / utilizationThreshold

ישיר

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

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

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

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

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

לכלי Autoscaler יש אפשרויות הגדרה שונות שבעזרתן אפשר לנהל את שינוי הגודל של פריסות Spanner. למרות שהפונקציות של Cloud Run והפרמטרים של GKE דומים, הם מסופקים בצורה שונה. מידע נוסף על הגדרת הכלי Autoscaler זמין במאמרים הגדרת פריסה של פונקציות Cloud Run והגדרת פריסה של GKE.

הגדרה מתקדמת

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

ערכי סף מותאמים אישית

הכלי Autoscaler קובע את מספר הצמתים או יחידות העיבוד שצריך להוסיף למופע או להחסיר ממנו באמצעות הסף המומלץ של Spanner למדדי העומס הבאים:

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

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

מדדים מותאמים אישית

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

שוליים

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

מטרת הפרמטר הזה היא למנוע הפעלה של אירועי התאמה אוטומטית לעומס (automatic scaling) בגלל תנודות קטנות בעומס העבודה סביב ערך הסף, וכך להקטין את התנודות בפעולות של מידרוג אוטומטי. הסף והמרווח מגדירים יחד את הטווח הבא, בהתאם לערך המדד שרוצים לקבל:

[threshold - margin, threshold + margin]

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

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

פיצול נתונים

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

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

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

  • ערך ההגדלה: 5 דקות
  • ערך ההקטנה: 30 דקות

מידע נוסף על המלצות לגבי שינוי גודל ותקופות צינון זמין במאמר שינוי גודל של מופעי Spanner.

תמחור

צריכת המשאבים של הכלי Autoscaler קטנה מבחינת מחשוב, זיכרון ואחסון. בהתאם להגדרות של Autoscaler, כשפורסים אותו בפונקציות Cloud Run, השימוש במשאבים של Autoscaler הוא בדרך כלל במסגרת תוכנית בחינם של השירותים התלויים שלו (פונקציות Cloud Run,‏ Cloud Scheduler, ‏ Pub/Sub ו-Firestore).

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

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