מהי הנדסת כאוס?
הנדסת כאוס (Chaos Engineering) היא דיסציפלינה בהנדסת תוכנה הכוללת בדיקת חוסנה של מערכת על ידי
הכנסת הפרעות או תקלות בכוונה כדי לראות כיצד המערכת מגיבה.
תרגול זה מסייע להבטיח שמערכת תוכל לעמוד בשיבושים בלתי צפויים ולהמשיך לפעול ביעילות במגוון תנאים.
המטרה העיקרית של Chaos Engineering היא לזהות חולשות לפני שהן הופכות לבעיות.
איך עובדת הנדסת כאוס?
תוכנית: זהה את ההיבטים של המערכת הזקוקים לבדיקה, כגון זמינות גבוהה, סיבולת תקלות ומנגנוני כשל.
קו בסיס: מדוד את התנהגות המערכת בתנאי הפעלה רגילים כדי לקבוע קו בסיס להשוואה.
השערה: חזה מה יקרה כאשר יוכנס כאוס.
זה כרוך בהתוויית התגובות הצפויות של המערכת במהלך הבדיקה.
ניסוי: הכנס משתנים המחקים בעיות פוטנציאליות – כמו כשלים בשרת, זמן השהייה ברשת או מיצוי משאבים –
כדי לראות אם המערכת מתנהגת כמצופה.
ניתוח: השווה את תוצאת הניסוי מול ההתנהגות המשוערת ונתח אי-התאמות.
למד: יישם את התובנות שהושגו כדי לשפר את המערכת, לטפל בחולשות ולשפר את החוסן.
חזרה: בצעו ניסויים חדשים ברציפות כדי לחשוף בעיות פוטנציאליות נוספות, בהתחשב בכך שהמערכות
והסביבות שלהן תמיד מתפתחות.
Chaos Engineering קשורה קשר הדוק לקהילות ה-DevOps והנדסת אמינות אתרים (SRE) והיא נהוגה
בסביבות ענן ובמערכות מבוזרות שבהן העלות של תקלה יכולה להיות גבוהה והמערכות מורכבות ומקושרות זו לזו.
שימושים של הנדסת כאוס
השימוש של הנדסת כאוס (כאוס אנג’ינירינג) משתרע על פני היבטים שונים של פיתוח ותפעול המערכת,
במטרה לשפר את האמינות והחוסן.
הנה כמה דרכים ספציפיות ליישום:
שיפור חוסן המערכת
הנדסת כאוס בודקת עד כמה מערכת יכולה לקיים את השירות שלה מול כשלים.
הצגת כשלים באופן קבוע מסייעת להבטיח שמנגנוני מעבר הכשל ואסטרטגיות היתירות של המערכת יעילים
ויכולים להתמודד עם בעיות בלתי צפויות.
זיהוי חולשות
על ידי גרימת תקלות בכוונה בחלקים שונים של המערכת, צוותים יכולים לזהות ולטפל בחולשות לפני שהן משפיעות על הלקוחות.
גישה פרואקטיבית זו מסייעת בשיפור מתמיד של ארכיטקטורת המערכת.
אימות ניטור והתראה
זה עוזר בבדיקה אם כלי ניטור ומערכות ההתראה יעילים.
אם הפסקה מדומה לא מפעילה התראה, ייתכן שיהיה צורך להתאים את כלי הניטור.
אימות תוכניות התאוששות מאסון
ארגונים יכולים לבדוק את נהלי ההתאוששות שלהם מאסון כדי להבטיח שהם עובדים כצפוי בתנאים אמיתיים.
זה עשוי לכלול אימות מערכות גיבוי נתונים, בדיקת האפקטיביות של הליכי שחזור נתונים, והבטחה שניתן להעביר
את הפעולות לאתר התאוששות מאסון ללא זמן השבתה משמעותי.
בניית אמון במערכת
על ידי בדיקה שוטפת והוכחה שהמערכת יכולה להתמודד עם כשלים, הן צוותי ההנדסה והן לבעלי העניין העסקיים יכולים
לקבל אמון רב יותר בחוסנה של המערכת.
זה יכול להיות חיוני לשימור לקוחות ועמידה ברגולציה בתעשיות שבהן זמן פעולה קריטי.
הדרכה של צוותים
Chaos Engineering מספקת סביבה מציאותית להכשרת צוותי IT ו-DevOps בתגובה לאירועים.
זה עוזר להם לתרגל פתרון בעיות והתאוששות בסביבה מבוקרת, ומשפר את המוכנות שלהם לתקריות בפועל.
אופטימיזציה של שימוש במשאבים
באמצעות ניסויים אלה, צוותים יכולים למצוא הזדמנויות לייעל את השימוש במשאבים, מה שעלול להפחית עלויות.
לדוגמה, זיהוי משאבים מוגזמים שאינם משפיעים על הביצועים כאשר הם מוסרים או נכשלים.
תמיכה באינטגרציה רציפה/פריסה רציפה (CI/CD)
שילוב Chaos Engineering בצינורות CI/CD מסייע בהערכת ההשפעה של שינויים חדשים בתנאי לחץ,
ומבטיח שהעדכונים לא יפגעו בעמידות המערכת.
כלים ומסגרות של הנדסת כאוס
ישנם מספר כלים שנועדו להקל על הנדסת כאוס, כולל:
Chaos Monkey
חלק ממערכת הכלים של Simian Army שפותחה על ידי Netflix.
Chaos Monkey מפסיק באופן אקראי מופעים בייצור כדי להבטיח שמהנדסים מיישמים את השירותים שלהם
כדי להיות עמידים בפני כשלים במופע.
Gremlin
כלי מסחרי המציע מגוון רחב של התקפות מלבד כיבויים, כמו גניבת משאבים ומניפולציה ברשת, על פני פלטפורמות שונות.
Litmus
כלי קוד פתוח, המשמש במיוחד בסביבות Kubernetes, כדי לעזור להגדיר, להפעיל ולנטר ניסויי כאוס.