פורטל ידע

שילוב בינה מלאכותית בניהול תקלות IT

Incident Management

 

רוברט ברון | ארכיטקט בקבוצת ה-CIO הגלובלית של IBM


 


מבוא:

המונח AIOps או AI Operations הוגדר כך ע"י חברת Gartner:

״ AIOps combines big data and machine learning to automate IT operations processes, including event correlation, anomaly detection and causality determination."

מתי ואיך נרצה להשתמש ב-AIOps כדי לפתור את בעיות ה-IT Operations שלנו? מה ההבדל בין שימוש ב- AIOps היום לשיטות הישנות של Monitoring שהיינו רגילים אליהם?


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

  • מה הדברים שמפריעים למשתמשים? ה-Service Level Indicator (SLI) מודד דברים כגון "כמה זמן לוקח לבצע פעולה מסוימת במערכת" או "כמה פעמים אני נכשל בביצוע פעולה".

  • ה-Service Level Objective (SLO) מגדיר את היעד שלנו למדידה – למשל, אנחנו נצפה שייקח לנו פחות מ-5 שניות לבצע login למערכת הבנקאית ו-100% מההעברות שאנחנו רוצים לבצע בחשבון יצליחו.

  • כל כמה זמן יש לנו תקלה שבה ה-SLO לא מתקיים (למשל לקוח לנו יותר מ-5 שניות לבצע login או שיש לנו כישלון בהעברה בנקאית)? הזמן הממוצע בין תקלה לתקלה נקרא(MTBF) Mean Time Between Failure. כמה זמן לוקח לנו לפתור את התקלה (או לפחות להחזיר את השירות למצב התקין שלו)? הזמן הממוצע לפתרון תקלה נקרא Mean Time To Repair (MTTR).


ברור שנרצה שה-MTTR יהיה כמה שיותר קטן ושה-MTBF יהיה כמה שיותר גדול.


פתרון בעיות בזמן אמת במהירות הרבה ביותר:


תהליך פתרון הבעיות בנוי מארבע שלבים כלליים (כמובן שהמימוש של השלבים האלה יכול להיות מורכב מאוד).

  1. בשלב הראשון יש לאסוף מידע רב ולמדוד את התנהגות המערכות, להכיר את ההתנהגות הרגילה ולזהות מתי מתחילים להופיע חריגות (anomalies) מההתנהגות הסבירה לה אנחנו מצפים. זאת אומרת שאנחנו מודדים את ה-SLI-ים שלנו ומרימים דגל ברגע שהם חורגים מהטווח הסטנדרטי שלהם.

  2. את החריגות יש לנתח. לחלקן מקור ברור וחד משמעי (הדוגמה הקלאסית היא "נגמר מקום בדיסק ולכן האפליקציה נכשלה") וחלקן מורכבות ומתוחכמות (כיצד שינוי קל בזמן תגובה של שירות SaaS גורם לתגובת שרשרת במערכת (?On-Premiseמכיוון שאספנו כל כך הרבה מידע בשלב הקודם, נצטרך להשתמש בבינה מלאכותית כדי להוציא את המוץ מהתבן ולהבדיל בין חריגות לא מזיקות לחריגות המבשרות על אסון הולך ומתקרב. זאת על בסיס מודלים של בינה מלאכותיות המזהים את התבניות בנתונים ועושים את הקורלציות בין הנתונים ההיסטוריים לנתונים העכשוויים ומנתחים את המקור של החריגה.

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

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

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

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

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

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


בואו נשווה בין מערכת שו"ב קלאסית למערכת AIOps בכל אחד מהשלבים הנ"ל:


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

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

מניעת תקלות חוזרות:

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


סיכום:

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


 

במאמרים עתידיים ארחיב על כל אחד מהסעיפים (כולל דוגמאות מהשטח מבית IBM) ובינתיים אשמח להרחיב את השיחה. ניתן ליצור איתי דרך אתרים הבאים:

https://flyingbarron.medium.com https://www.linkedin.com/in/flyingbarron/