למה מערכת שלא נכשלת לעולם היא מסוכנת
למה מערכת שלא נכשלת לעולם היא מסוכנת
במערכות מחשוב, כשל נתפס כאויב. משהו שצריך להעלים, להסתיר, או “לפתור אחת ולתמיד”.
אבל במערכות גדולות ובוגרות, מערכת שלא נכשלת לעולם אינה בהכרח מערכת יציבה - לעיתים היא מערכת מסוכנת.
כשל שלא רואים - לא נעלם
כשמערכת “לא נכשלת”, זה לא אומר שאין בה בעיות.
זה אומר שהבעיות לא נראות.
- חריגים נבלעים
- timeouts מתארכים בשקט
- retries מסתירים תקלות
- רכיבים עובדים מחוץ לטווח הנוח שלהם
הכול נראה ירוק - ומתחת לפני השטח מצטבר לחץ.
למה Failure Visibility חשובה מ-Uptime
Uptime מודד אם המערכת חיה. Failure visibility מודדת אם המערכת מדברת.
מערכת טובה לא שואפת להיות מושלמת - היא שואפת להיות מובנת.
כשל גלוי:
- מסמן גבולות
- חושף צווארי בקבוק
- מאפשר למידה
- מונע הפתעות
מערכת שמסתירה כשל שוללת מעצמה את היכולת להשתפר.
תכנון כשל כחלק מה-Happy Path
במערכות בוגרות, כשל אינו חריג. הוא חלק מהזרימה הרגילה.
לכן מתכננים מראש:
- איפה מותר להיכשל
- איך הכשל נראה
- מי רואה אותו
- ומה קורה אחריו
כשל מתוכנן הוא סיגנל, לא אסון.
המשל: נורת אזהרה שלא נדלקת
נורת אזהרה שמכובה תמיד לא הופכת את הרכב לבטוח יותר.
היא רק מבטיחה שהתקלה תתגלה ברגע הכי לא מתאים.
כך גם מערכות.
סיכום
מערכת שלא נכשלת לעולם לא מוכיחה חוזק - היא מוכיחה חוסר שקיפות.
כישלון מבוקר, נראה ומובן עדיף בהרבה ממערכת “מושלמת” שקורסת יום אחד בלי שום אזהרה.