העיקרון הזה, שנכלל בעמודה 'מצוינות תפעולית' בGoogle Cloud Well-Architected Framework, עוזר לכם לוודא שהעומסים בענן מוכנים לפעולה ושהביצועים שלהם טובים. הוא מדגיש את החשיבות של הגדרת ציפיות והתחייבויות ברורות לגבי ביצועי השירות, הטמעה של מערכות חזקות למעקב ולהתראות, ביצוע בדיקות ביצועים ותכנון מראש של צורכי הקיבולת.
סקירה כללית של העקרונות
ארגונים שונים עשויים לפרש את המושג 'מוכנות תפעולית' בצורה שונה. מוכנות תפעולית היא הדרך שבה הארגון שלכם מתכונן להפעלה מוצלחת של עומסי עבודה ב- Google Cloud. הכנה להפעלה של עומס עבודה מורכב בענן, עם שכבות רבות, מחייבת תכנון קפדני גם לקראת ההשקה וגם לקראת הפעולות בday-2. הפעולות האלה נקראות לעיתים קרובות CloudOps.
תחומי התמקדות במוכנות תפעולית
המוכנות התפעולית כוללת ארבעה תחומים מרכזיים. כל תחום התמקדות מורכב ממערך של פעילויות ורכיבים שנדרשים כדי להתכונן להפעלה של אפליקציה או סביבה מורכבת ב- Google Cloud. בטבלה הבאה מפורטים הרכיבים והפעילויות של כל תחום התמקדות:
| תחום ההתמקדות של מוכנות תפעולית | פעילויות ורכיבים |
|---|---|
| Workforce |
|
| תהליכים |
|
| כלים | כלים שנדרשים לתמיכה בתהליכי CloudOps. |
| פיקוח |
|
המלצות
כדי להבטיח מוכנות תפעולית וביצועים באמצעות CloudOps, כדאי לעיין בהמלצות שבקטעים הבאים. כל המלצה במסמך הזה רלוונטית לאחד או יותר מתחומי המיקוד של מוכנות תפעולית.
הגדרת SLO ו-SLA
אחת מהאחריות העיקריות של צוות התפעול בענן היא להגדיר יעדים למדידת רמת השירות (SLOs) והסכמי רמת שירות (SLAs) לכל עומסי העבודה הקריטיים. ההמלצה הזו רלוונטית לניהול בתחום המיקוד של מוכנות תפעולית.
הגדרת יעדי SLO:
היעדים למדידת רמת השירות (SLOs) צריכים להיות ספציפיים, ניתנים למדידה, ניתנים להשגה, רלוונטיים ומוגבלים בזמן (SMART), והם צריכים לשקף את רמת השירות והביצועים שאתם רוצים.
- ספציפי: מנוסח בצורה ברורה לגבי רמת השירות והביצועים הנדרשים.
- ניתן למדידה: ניתן לכימות ולמעקב.
- ניתן להשגה: אפשר להשיג את המטרה במסגרת היכולות והמשאבים של הארגון.
- רלוונטיות: התאמה ליעדים ולסדרי העדיפויות העסקיים.
- מוגבל בזמן: יש לו מסגרת זמן מוגדרת למדידה ולהערכה.
לדוגמה, יעד SLO לאפליקציית אינטרנט יכול להיות 'זמינות של 99.9%' או 'זמן תגובה ממוצע של פחות מ-200 אלפיות השנייה'. יעדים כאלה למדידת רמת השירות מגדירים בבירור את רמת השירות והביצועים הנדרשת לאפליקציית האינטרנט, ואפשר למדוד ולעקוב אחרי היעדים האלה לאורך זמן.
הגדרת הסכמי רמת שירות (SLA):
הסכמי SLA מפרטים את ההתחייבויות ללקוחות בנוגע לזמינות השירות, לביצועים ולתמיכה, כולל סנקציות או סעדים במקרה של אי-עמידה בהתחייבויות. הסכמי ה-SLA צריכים לכלול פרטים ספציפיים על השירותים שניתנים, על רמת השירות שאפשר לצפות לה, על האחריות של ספק השירות ושל הלקוח, ועל כל סנקציה או סעד במקרה של אי-עמידה בתנאים. הסכמי SLA משמשים כהסכם חוזי בין שני הצדדים, ומבטיחים שלשני הצדדים יש הבנה ברורה של הציפיות והמחויבויות שמשויכות לשירות הענן.
מעקב אחרי יעדי SLO:
שימוש ב-Cloud Monitoring ובאינדיקטורים לרמת השירות (SLI) כדי לעקוב אחרי יעדים למדידת רמת השירות (SLO). Cloud Monitoring מספק יכולות מקיפות של ניטור ושל observability, שמאפשרות לארגון שלכם לאסוף ולנתח מדדים שקשורים לזמינות, לביצועים ולחביון של אפליקציות ושירותים מבוססי-ענן. SLI הם מדדים ספציפיים שבהם אפשר להשתמש כדי למדוד ולעקוב אחרי SLO לאורך זמן. השימוש בכלים האלה מאפשר לכם לעקוב אחרי שירותי הענן ולנהל אותם בצורה יעילה, ולוודא שהם עומדים ביעדי רמת השירות (SLO) ובהסכמי רמת השירות (SLA).
הגדרה ברורה של SLO ו-SLA לכל שירותי הענן הקריטיים, הצגה שלהם בצורה ברורה ומעקב אחריהם עוזרים להבטיח את האמינות והביצועים של האפליקציות והשירותים שפרסתם.
הטמעה של ניראות מקיפה
כדי לקבל נראות בזמן אמת של המצב והביצועים של סביבת הענן, מומלץ להשתמש בשילוב של כלים של Google Cloud Observability ופתרונות של צד שלישי. ההמלצה הזו רלוונטית לתהליכים ולכלים, שהם תחומי המיקוד של מוכנות תפעולית.
הטמעה של שילוב של פתרונות נראות מספקת לכם אסטרטגיית נראות מקיפה שמכסה היבטים שונים של תשתית הענן והאפליקציות שלכם. Google Cloud Observability היא פלטפורמה מאוחדת לאיסוף, לניתוח ולהצגה חזותית של מדדים, יומנים ויומני מעקב ממגווןGoogle Cloud שירותים, אפליקציות ומקורות חיצוניים. בעזרת Cloud Monitoring אפשר לקבל תובנות לגבי ניצול המשאבים, מאפייני הביצועים והמצב הכללי של המשאבים.
כדי להבטיח מעקב מקיף, כדאי לעקוב אחרי מדדים חשובים שתואמים לאינדיקטורים של בריאות המערכת, כמו ניצול המעבד (CPU), שימוש בזיכרון, תנועה ברשת, קלט/פלט (I/O) בדיסק וזמני תגובה של אפליקציות. כדאי גם להתייחס למדדים ספציפיים לעסק. מעקב אחרי המדדים האלה מאפשר לזהות צווארי בקבוק פוטנציאליים, בעיות בביצועים ומגבלות של משאבים. אפשר גם להגדיר התראות כדי להודיע לצוותים הרלוונטיים באופן יזום על בעיות או אנומליות פוטנציאליות.
כדי לשפר עוד יותר את יכולות המעקב, אפשר לשלב פתרונות של צד שלישי עם Google Cloud Observability. הפתרונות האלה יכולים לספק פונקציות נוספות, כמו ניתוח נתונים מתקדם, זיהוי אנומליות שמבוסס על למידת מכונה ויכולות ניהול אירועים. השילוב הזה של כלי Google Cloud Observability ופתרונות של צד שלישי מאפשר לכם ליצור מערכת אקולוגית חזקה וניתנת להתאמה אישית של ניטור, שמותאמת לצרכים הספציפיים שלכם. השימוש בשילוב הזה של גישות מאפשר לכם לזהות ולפתור בעיות באופן יזום, לבצע אופטימיזציה של ניצול המשאבים ולהבטיח את המהימנות והזמינות הכוללות של האפליקציות והשירותים שלכם בענן.
הטמעה של בדיקות ביצועים ועומס
ביצוע בדיקות ביצועים באופן קבוע עוזר לוודא שהאפליקציות והתשתית שלכם מבוססות הענן יכולות להתמודד עם עומסים גבוהים ולשמור על ביצועים אופטימליים. בדיקות עומס מדמות דפוסי תנועה ריאליסטיים. בדיקות עומס בודקות את המערכת עד למגבלות שלה כדי לזהות צווארי בקבוק פוטנציאליים ומגבלות בביצועים. ההמלצה הזו רלוונטית לתהליכים ולכלים, שהם תחומי המיקוד של מוכנות תפעולית.
בדיקת ביצועים: כדי לדמות דפוסי תנועה בעולם האמיתי ולבדוק את האפליקציות שלכם במצבי עומס, תוכלו להשתמש ב-Cloud Load Balancing ובשירותים לבדיקת עומס. הכלים האלה מספקים תובנות חשובות לגבי התנהגות המערכת בתנאי עומס שונים, ויכולים לעזור לכם לזהות תחומים שדורשים אופטימיזציה.
אופטימיזציה של הביצועים: על סמך התוצאות של בדיקות הביצועים, תוכלו לקבל החלטות לאופטימיזציה של תשתית הענן והאפליקציות שלכם כדי להשיג ביצועים ומדרגיות אופטימליים. האופטימיזציה הזו עשויה לכלול התאמה של הקצאת משאבים, שינוי של הגדרות או הטמעה של מנגנוני שמירת נתונים במטמון.
לדוגמה, אם אתם מגלים שהאפליקציה שלכם פועלת לאט בתקופות של נפח תנועה גבוה, יכול להיות שתצטרכו להגדיל את מספר המכונות הווירטואליות או הקונטיינרים שהוקצו לאפליקציה. לחלופין, יכול להיות שתצטרכו לשנות את ההגדרות של שרת האינטרנט או של מסד הנתונים כדי לשפר את הביצועים.
על ידי ביצוע בדיקות ביצועים באופן קבוע והטמעה של האופטימיזציות הנדרשות, תוכלו לוודא שהאפליקציות והתשתית שלכם מבוססות הענן תמיד פועלות בביצועים אופטימליים, ומספקות למשתמשים חוויה חלקה ומגיבה. כך תוכלו לשמור על יתרון תחרותי ולבנות אמון עם הלקוחות.
תכנון וניהול של הקיבולת
כדי שמערכות הענן יפעלו ויתרחבו בהתאם לשינויים בביקוש, צריך לתכנן ולנהל באופן פעיל את הקיבולת של משאבי הענן. ההמלצה הזו תומכת בתהליכים ובכלים של תחומי המיקוד של מוכנות תפעולית.
כדאי לקחת בחשבון את מגבלות השירות ולנהל את מכסות המשאבים: כדי לתכנן את הקיבולת של משאבי הענן, כדאי להתחיל עם המגבלות הקשיחות (האילוצים הקבועים) של השירותים שבהם אתם מתכננים להשתמש.
- כדאי להעריך את דרישות המכסה שלכם לגבי מחשוב, אחסון, מגבלות API ומשאבים אחרים שאתם צריכים. כדאי לשלוח בקשה להתאמות מתאימות במכסות לפני שתזדקקו למשאבים.
- טוענים מדדים מ-Cloud Monitoring אל BigQuery, ומשתמשים במדדים כדי לזהות דפוסי תנועה ולעקוב אחרי עומס המערכת לאורך זמן.
- תחזית לביקוש למשאבים על סמך קמפיינים שיווקיים עתידיים, הרשמות של משתמשים והשקות של תכונות. כדאי גם לקחת בחשבון את ההתחייבויות הנוכחיות והמתוכננות שלכם בהסכם רמת השירות.
תכנון גמיש ויעיל: כשמתכננים את הקיבולת לפריסות בענן, מפרידים בין רכיבי האפליקציה לבין סוגים ספציפיים של מכונות. כשמצמידים עומס עבודה לסוג מכונה יחיד, אי אפשר לנצל חומרה חדשה יותר בענן או שינויים בקיבולת האזורית.
- עבור עומסי עבודה שזקוקים לחומרה מיוחדת, כמו אינסטנסים עם זיכרון גבוה או GPU, חשוב לוודא שאפשר להשיג משאבים כשנדרש. אתם יכולים להשתמש במקום שמור לעתיד כדי להבטיח קיבולת לסוגי מכונות קריטיים עד שנה מראש.
- לעומסי עבודה של עיבוד באצווה או אימון מודלים, שבהם אפשר להסתדר עם זמני התחלה משתנים, כדאי לתזמן את הקיבולת באופן דינמי באמצעות מכונות וירטואליות עם הפעלה גמישה. המכונות הווירטואליות האלה משתמשות בתזמון דינמי של עומסי עבודה (DWS) כדי להוסיף בקשות לתור ולהפחית את עלויות החישוב.
- אל תשריינו משפחות מכונות או משאבים ישנים יותר לסביבות פיתוח זמניות.
- כדאי לתכנן את המשאבים באזורים משניים כדי שתוכלו לבצע מעבר לגיבוי (failover) בצורה יעילה להתאוששות מאסון (DR).
הטמעת התאמה אוטומטית לעומס: כדי להתאים את משאבי הענן באופן דינמי לתנודות בעומס העבודה בזמן אמת, מטמיעים מדיניות של התאמה אוטומטית לעומס. אלגוריתמים של שינוי גודל אוטומטי מעריכים מדדים כמו ניצול המעבד (CPU), עומס על הזיכרון ועומק התור. על סמך ההערכה, המשאבים מורחבים בתקופות של שיא התנועה ומצטמצמים בתקופות של שימוש נמוך, וכך מתבצעת אופטימיזציה של עלות משאבי הענן.
- הגדרת קבוצות של מופעי מכונה מנוהלים (MIG) עם תבניות של מופעי מכונה מעורבים שמשלבות בין דורות נוכחיים וחדשים יותר של סוגי מכונות.
- חשוב לוודא שההגדרות של קבוצת ה-MIG כוללות גם הפעלה גמישה של מכונות (ציון של כמה סוגי מכונות תואמים) וגם גמישות של מיקומים (פיזור של יעדי הטירגוט על פני כמה תחומים (zones) באזור). בהתאם לדרישות הקיבולת הנוכחיות, המערכת מקצה באופן אוטומטי את סוג המכונה המועדף הבא מרשימת הגיבוי, בלי להפיל בקשות או להגביל את משאבי החישוב.
מעקב ואופטימיזציה מתמשכים
כדי לנהל ולבצע אופטימיזציה של עומסי עבודה בענן, צריך ליצור תהליך של מעקב וניתוח מתמשכים של מדדי הביצועים. ההמלצה הזו רלוונטית לתהליכים ולכלים של תחומי המיקוד של מוכנות תפעולית.
מעקב אחרי נתונים ואיסוף שלהם:
כדי ליצור תהליך של ניטור וניתוח רציפים, צריך לעקוב אחרי נתונים שקשורים להיבטים שונים של סביבת הענן, לאסוף אותם ולהעריך אותם. הנתונים האלה מאפשרים לכם לזהות מראש תחומים לשיפור, לבצע אופטימיזציה של השימוש במשאבים ולוודא שהתשתית שלכם בענן עומדת באופן עקבי בציפיות הביצועים שלכם או עולה עליהן.
בדיקת יומנים ועקבות:
יומנים מספקים תובנות חשובות לגבי אירועים, שגיאות ואזהרות במערכת. הנתונים של מעקב הבקשות מספקים מידע מפורט על זרימת הבקשות באפליקציה. ניתוח של יומנים ועקבות מאפשר לכם לזהות בעיות פוטנציאליות, לגלות את הסיבות העיקריות לבעיות ולהבין טוב יותר את התנהגות האפליקציות בתנאים שונים. מדדים כמו זמן הלוך ושוב בין שירותים יכולים לעזור לכם לזהות צווארי בקבוק בעומסי העבודה ולהבין אותם.
שיפור הביצועים:
אפשר להשתמש בטכניקות לשיפור הביצועים כדי לשפר באופן משמעותי את זמני התגובה של האפליקציה ואת היעילות הכוללת שלה. הנה כמה דוגמאות לטכניקות שאפשר להשתמש בהן:
- שמירה במטמון: אחסון נתונים שמתבצעת אליהם גישה לעיתים קרובות בזיכרון כדי לצמצם את הצורך בשאילתות חוזרות במסד הנתונים או בקריאות חוזרות ל-API.
- אופטימיזציה של מסד הנתונים: שימוש בטכניקות כמו יצירת אינדקס ואופטימיזציה של שאילתות כדי לשפר את הביצועים של פעולות במסד הנתונים.
- Code profiling: זיהוי אזורים בקוד שצורכים משאבים מוגזמים או גורמים לבעיות בביצועים.