מהו Chaos Monkey? הסבירו הנדסת כאוס

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

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

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

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

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

כאוס קוף בנטפליקס

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

"האופן שבו אני חושב על Chaos Monkey הוא לא הישג משמעותי של הנדסה," אמר אורזל. "הערך שהוא מביא הוא שינוי הלך הרוח שהיה קריטי באותה תקופה כאשר עברנו ממשלוח תקליטורי DVD לסטרימינג דרך האינטרנט."

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

הצבא המקורי (שפרש כיום בעיקר לטובת כלים חדשים) כלל אנשים כמו Latency Monkey, שיגרמו לעיכובים מלאכותיים בשכבת התקשורת RESTful של שרת הלקוחות, ו- Doctor Monkey, שייקח את בדיקות הבריאות המופעלות בכל מקרה. וכן צגים לסימני בריאות חיצוניים אחרים (למשל עומס מעבד) כדי לאתר מקרים לא בריאים ולהסיר אותם מהשירות במידת הצורך.

Chaos Kong העלה את Chaos Monkey לשלב הבא על ידי הדמיה של הפסקת אזור זמינות AWS שלם. "נדיר מאוד שאזור AWS לא יהיה זמין, אבל זה קורה", מתואר בלוג של נטפליקס משנת 2015. 

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

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

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

עקרונות הנדסת כאוס

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

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

בפועל זה לובש צורה של תהליך בן ארבעה שלבים:

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

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

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

הנדסת כאוס עם Chaos Monkey

כדי להריץ את גרסת הקוד הפתוח של Chaos Monkey, המערכות שלך יצטרכו לעמוד במערך מסוים של תנאים מוקדמים, כמתואר ב- GitHub.

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

כדי להשתמש בגרסה זו של Chaos Monkey, עליך להשתמש בפלטפורמת המסירה הרציפה של נטפליקס בקוד פתוח, Spinnaker, שיכולה להגביל את יכולתם של ארגונים מסוימים לאמץ את השיטה. Chaos Monkey דורש גם מסד נתונים תואם MySQL, גרסה 5.6 ואילך.

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

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

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

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

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

משאבי הנדסת כאוס

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

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

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

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