למה Error Budget Policy לא עובד בפרודקשן אמיתי
פורמלית, מדיניות תקציב שגיאות קיימת כמעט תמיד: נאספות מטריקות זמינות, מחושבת חלקם של בקשות לא מוצלחות, ובלוח המחוונים רואים כמה תקציב נוצל בחלון. מכאן מתחיל הפער — תקציב שנוצל לא מחייב אף אחד לשום דבר, וההחלטה על עצירת פריסות מתקבלת על ידי התורן באופן ידני ובכל פעם מחדש.
הסיבה היא שערכי הסף של האמינות חיים בנפרד מתהליך השחרור. התקציב הגיע ל-80% — התראה נשלחה, אבל מה לעשות הלאה לא מתועד בשום מקום: לעצור את כל הפריסות, להעביר רק תיקונים, לבצע rollback לשחרור האחרון.
התורן בוחר לפי המצב ובהשפעת לחץ לוח הזמנים של השחרורים, וכמעט תמיד בוחר «נפרוס, נראה». אחרי כמה חריגות כאלה מפסיקים לשים לב לסף, וניהול האמינות של השירות הופך למטריקה דקורטיבית.
מכאן גם צומחת אחריות מעורפלת של התורנים: צוות המוצר סבור שעל האמינות אחראית התפעול, התפעול ממתין להחלטת בעל השירות, ובעל השירות לומד על הבעיה מהסלמה. חסימות ידניות של שחרורים עובדות בצורה לא אחידה: במחזור אחד הפריסות נעצרות בגלל תקלה אחת, ובאחר הן ממשיכות כשהתקציב נשרף לחלוטין. שתי הקצוות יקרים — או שהמהירות יורדת בלי סיבה, או שהתקלות חוזרות באותה תדירות.
נבחן איך זה נסגר: איך לקשור את תקציב השגיאות לצינור השחרורים, להגדיר ספים חד-משמעיים ולהוציא את ההחלטה מידי התורן.
אפקט מדיד: מהירות שחרורים וסוגי כשלים
כל עוד Error Budget Policy קיימת רק כטבלה, היא לא משפיעה על דבר. ברגע שתקציב השגיאות הופך לכלל — עם סף עצירה, אחראי להחלטה ותקנון חזרה — משתנים ארבעה גדלים מדידים, וכל אחד מהם נראה בדוחות כבר מהחודש הראשון.
מהירות הפריסות עולה לא מפני שהצוות כותב קוד מהר יותר, אלא מפני שהשחרור מפסיק להיות סיכון. בלי אמינות מדידה כל שינוי מאושר «ליתר ביטחון»; עם תקציב ההחלטה מתקבלת לפי היתרה: יש רזרבה — משחררים, הרזרבה נגמרה — קודם מתקנים את הסיבה. תדירות הפריסות עולה פי כמה באותו מספר תקלות.
גם סוג הכשלים משתנה: רוב התקלות הופכות להפיכות, ה-rollback אורך דקות, וזמן השחזור של השירות נמדד לא מרגע הבחנת בבעיה אלא מרגע הפעולה של האוטומציה. הגישה לניהול אמינות מפורמלת בפרקטיקה של Site Reliability Engineering ומועברת לכל סטאק.
זמן התיאום של עצירה מתקצר מימים של התכתבות להחלטה אחת של התורן: הסף וההשלכות כתובים מראש, וההסלמה לא דורשת ישיבה. שיעור התקלות החוזרות יורד, כי כל ניצול מלא של התקציב נסגר במשימה בעדיפות גבוהה מזו של המוצר, ולא בדוח.
בנפרד משתנה יכולת החיזוי של התורנויות: המהנדס יודע מראש את הנפח המותר של התראות לילה, והמנהל — מתי הפיתוח ייעצר ולכמה זמן.
מצבי מדיניות: מאותת רך עד עצירה קשיחה
מצב המדיניות הוא מה שהצוות והמערכת עושים ברגע שבו הרזרבה המוסכמת של אמינות נגמרה. הוא נקבע לא בהצהרה אלא בקונקרטיקה: מי מקבל את האות, אילו בדיקות נחסמות בצינור הפריסות, מה נחשב לחריג ומי חותם עליו. בחירת המצב משפיעה על מהירות האספקה יותר מאשר עצם קיומה של Error Budget Policy.
איך בוחרים בין המצבים
| מצב | מתי מתאים | מגבלות |
|---|---|---|
| תצפית והתראה | מחזורים ראשונים אחרי ההטמעה, כשמטריקות האמינות עוד לא מעוררות אמון | לא חוסם דבר: אם מתעלמים מהאות, התנהגות הצוות לא משתנה |
| ניתוח מחייב בעדיפות | הרזרבה נגמרה, אבל עצירת האספקה אינה קבילה | דורש בקרה ידנית: קל לדחות את הניתוח, והמצב מדרדר בחזרה לתצפית |
| עצירה אוטומטית של פריסות | תקופות של כשלים תכופים ומחיר תקלה גבוה | חוסם גם תיקון דחוף, שדווקא סוגר את סיבת הכשל |
| עצירה עם אישור חריגים | תהליך בוגר: יש מי שיחתום ובמה לתעד | בלי תקנון ברור חריגים הופכים לנורמה, והמדיניות מאבדת מערכה |
מעשי לבנות את זה כסולם: המצב עולה לפי עובדות בשטח, לא לפי הסכם — למשל, אחרי ניצול מלא שני של הרזרבה ברצף. עצירה אוטומטית של פריסות מוסרת רק אחרי ניתוח ושחזור מטריקת האמינות, וכל חריג מתועד עם מועד ואחראי, כדי שהחלטות לא יימסו בהתכתבות.
שלבי הטמעה: מביקורת מטריקות ועד מסירת תקנון
הטמעת Error Budget Policy היא לא התקנה של כלי, אלא ארגון מחדש של התהליך: קודם מודדים, אחר כך מסכימים על ספים, ורק לבסוף מבצעים אוטומציה של התגובה. הסדר עקרוני — אם מתחילים מהתראות, הצוות יקבל זרם של רעש במקום החלטות מנוהלות.
- ביקורת מטריקות השירות — אוספים מה כבר נמדד: זמינות, שיעור שגיאות, השהיות, עומס. בנפרד מתעדים היכן מחשבים נתונים ידנית והיכן אין אותם בכלל.
- תיוג קריטיות של שירותים — מחלקים שירותים לפי השפעה על המשתמש ועל ההכנסה. לכל רמה מגדירים רמת אמינות יעד משלה וגודל שיעור כשלים מותר.
- תכנון הסכימה — מגדירים בעל תקציב, את ההשלכות של ניצול מלא שלו (הקפאת שחרורים, הקצאה מחדש של כוחות לאמינות) ואת האופן שבו החלטות מתועדות בכתב.
- הגדרת ספים והתראות — חלונות חישוב, קצב ניצול התקציב, אותות דו-שלביים: מוקדם לניתוח, מאוחר לעצירת שינויים.
- בדיקה על תקלת אימון — מריצים תרחיש שבו התקציב נשרף: האם ההתראות הופעלו, האם ברור לתורן מה לעשות, האם התקנון מפריע לשחזור.
- מסירת התקנון לצוות — מסמך, לוחות מחוונים, סדר תורנויות, אחראים וכלל לבחינת ספים מחדש אחת לרבעון.
בתוצאה הצוות מקבל מעגל עבודה פעיל: החלטות על שחרורים נשענות על מספרים, לא על טעמי אישיים, והמדיניות מתעדכנת לפי תוצאות הניתוחים.
מה מועבר לידיים: קונפיגורציות, סכימות, תקנונים
יחד עם מדיניות תקציב שגיאות עובדת (Error Budget Policy) מעבירים את כל מה שדרוש לתפעול עצמאי שלה: לא מצגת על אמינות, אלא קבצים, סכימות ותקנונים שלפיהם המהנדסים שלכם יוכלו לשנות ספים ולנתח תקלות בלעדינו. כל ארטיפקט נמצא במאגר שלכם ומנותח במסירה שורה אחר שורה.
- קונפיגורציות עבודה של המדיניות: כללי חישוב תקציב השגיאות, ספי האטה של שחרורים, התראות אוטומטיות בעת שריפת הרזרבה — מחוברים לניטור שלכם ולמערכות הבנייה והפריסה.
- סכימת חישוב רזרבת האמינות: אילו יעדים לזמינות ולמהירות תגובה נלקחו, איך מחושב שיעור אי-הזמינות, לפי איזו נוסחה התקציב מתאפס ומה נחשב לחריג.
- תקנון ניתוח תקלות: תפקידי המוביל, קריטריונים לחומרה, מועדי פרסום הניתוח, סעיפים מחייבים — מכרונולוגיה ועד משימות לתיקון הסיבות.
- כללי גישה ותפקידים: מי רואה את לוח המחוונים, מי משנה ספים, מי רשאי להקפיא שחרורים, איך ניתנות ומבוטלות הרשאות.
- מטריצת אחריות: לכל תחום — שירות, תורנות, שינוי מדיניות — מי מחליט, למי מודיעים, למי מסלימים.
- הוראות תפעול: איך לחשב מחדש את התקציב כשמשתנים היעדים, איך להחליש או לחזק ספים באופן בטוח, מה לעשות בהתראות שווא.
- פרוטוקול מסירה: ניתוח תקלה אמיתית לפי התקנון החדש יחד עם הצוות שלכם, צ'ק-ליסט קבלה ורשימת שאלות פתוחות.
מקרה בוחן: הסרנו חסימות ידניות של שחרורים והשבתות
לפני הפרויקט ההחלטה על פריסה התקבלה ידנית: מנהל השחרורים פתח גרפים, השווה תקלות אחרונות ולפי ניסיון החליט אם להעלות גרסה לפרודקשן. התיאום ארך משעות ספורות ועד יממה, ושחרורים שנויים במחלוקת נדחו למועד בלתי מוגבל.
הטיה ההפוכה לא הייתה טובה יותר: כשהגרפים נראו שקטים, הפריסות זרמו ברצף, כולל חלונות ערב של יום שישי, וחלק מירידות הביצועים הגיעו בדיוק משם. זמני ההשבתה נבעו משני מקורות — פריסות מסוכנות ותיאומים מתמשכים, שבגללם תיקונים הגיעו לפרודקשן באיחור.
קבענו רמות יעד לזמינות ולהשהיה של תרחישי מפתח וקשרנו אליהן את תקציב השגיאות — שיעור הבקשות שהשירות רשאי לאבד בחלון התצפית. כלל במערכת ההתראות מחשב את קצב ניצול התקציב: כשהשריפה מואצת, הפריסות נחסמות אוטומטית, ובשחזור — מוסרות.
הסף, החלון ורשימת החריגים נמצאים בקונפיגורציה של המדיניות, לא בהסכמות בצ'אט; הגישה נשענת על הפרקטיקה של Google SRE.
מטריקות לפני ואחרי
- שיעור בקשות מוצלחות: 99.3% → 99.9%
- החלטה על פריסה: שעות של התכתבות → בדיקת תקציב אוטומטית בדקות
- זמן השבתה ממוצע לתקלה: 42 → 9 דקות
- Rollbacks: כל שחרור חמישי → אחד מעשרים
- תדירות הפריסות עלתה פי 2.5 בלי עלייה במספר התקלות
במה Error Budget שונה מ-SLO ו-SLA
SLA — רמה חוזית: התחייבות כלפי הלקוח, שהפרתה גוררת סנקציות. SLO — רמת יעד פנימית, שהצוות מחזיק מרצון ובדרך כלל מחמירה יותר מ-SLA. Error Budget — נגזרת של SLO: שיעור חוסר האמינות שהשירות רשאי להוציא.
התקציב מחושב כ-1 − SLO בחלון נבחר. ברמת יעד של 99.9% ל-30 יום, חוסר האמינות המותר הוא כ-43 דקות; ב-99.95% — חצי מכך. זה לא קנס, אלא אישור לסיכון: שחרורים, ניסויים ותחזוקה מוציאים את התקציב, ולא מפרים הבטחה.
| מושג | מה קובע | מי אחראי | מה קורה בחריגה מהגבול |
|---|---|---|---|
| SLA | רמה חוזית וסנקציות | העסק יחד עם המהנדסים | השלכות חוזיות, הסלמה ללקוח |
| SLO | יעד פנימי לזמינות ולהשהיה | צוות השירות | ניתוח סיבות, הקפאת שחרורים |
| Error Budget | נפח מותר של חוסר אמינות | צוות השירות | מעבר לעבודה על אמינות |
SLA תמיד נקבע נמוך יותר מ-SLO: הרזרבה נחוצה כדי שהיעד הפנימי יופעל לפני החוזי ויישאר זמן להגיב לפני סנקציות. אם הרמות זהות, כל תקלה הופכת מיד לחוזית — הצוות מאבד מרחב תמרון.
אם הניטור כבר פרוס ואוסף מטריקות זמינות, אין צורך לכתוב אותו מחדש. חישוב התקציב מונח מעל סדרות הזמן הקיימות: בוחרים חלון — נע או קלנדרי — מגדירים כללים לקצב שריפה (מהיר לשעה, איטי לכמה יממות) וספים שלפיהם המדיניות מופעלת.
נשאר להסכים מה בדיוק קורה כשהתקציב נגמר: עדיפות האמינות על פני משימות חדשות ורשימה מפורשת של חריגים.
ספקות טכניים לפני הטמעת המדיניות
ההתנגדויות למדיניות תקציב שגיאות (Error Budget Policy) הן בדרך כלל אותן התנגדויות: אין מטריקות אמינות, את התקנון הקיים של התיאומים אף אחד לא ביטל, ואת עדיפות התקלה יתחילו להנמיך כדי לא להוציא תקציב. נבחן כל אחת — ומה בדיוק סוגר אותה ברמת הקונפיגורציה.
לא צריך להתחיל מכל המעגל: את המדיניות מציגים לפי שירותים, והצעד הראשון — שירות אחד או שניים שבהם הטלמטריה כבר נאספת. את השאר מחברים בהדרגה עם הופעת המטריקות, ולכן אין צורך להסכים על תקנון אחיד לכל התשתית.
אין מטריקות אמינות — המדיניות תישען על הערכות סובייקטיביות?
התקציב מחושב מאותות שהניטור כבר מספק: שיעור בקשות מוצלחות וזמן תגובה. אם הכיסוי צר, קודם מרחיבים בדיקות בנתיבים קריטיים, ואת חלון החישוב מגדירים כך שהמדגם יהיה מייצג. אפס מטריקות אינו סיבה לדחות: מתחילים משירות שבו הנתונים כבר קיימים.
המדיניות מתנגשת עם תהליך התיאומים הקיים?
לא, היא מגדירה קריטריון בתוכו. כל עוד התקציב לא נוצל, שחרורים מתנהלים לפי התקנון הרגיל; לאחר התכלות — רק שינויים שמשחזרים את האמינות. הכלל מתועד בקונפיגורציה, והמשא ומתן הידני בכל פריסה מפסיק.
יתחילו לתמרן עם חשיבות התקלות?
העדיפות נקבעת לפי מאפיינים, לא לפי הצבעה: שיעור המשתמשים שנפגעו, משך, ירידה בביצועי תרחיש מפתח. את מטריצת העדיפויות ואת כללי הניתוח האוטומטי מתעדים מראש, מקרים שנויים במחלוקת מנתחים ברטרוספקטיבה לפי לוגים ומתקנים ספים.
נדבר על המשימה: מה להכין לשיחה
כדי שהשיחה על אמינות תהיה עניינית, כדאי לאסוף מראש כמה נתוני פתיחה. אין צורך להכין משהו במיוחד — בדרך כלל זה מה שכבר יש לצוות: רשימת שירותים, לוחות מחוונים, היסטוריית תקלות.
לפיהם נשחזר תמונה אמיתית: איפה צוואר הבקבוק, לאילו שירותים מדיניות תקציב השגיאות תיתן אפקט הכי מהר ומה יהיה צריך לשנות בתהליך השחרור. אחרי זה נחזור עם הערכה ותוכנית עבודה.
- רשימת שירותים ומטריקות — מה שייך להכנסה, מה לכלים פנימיים, איפה השבתה מותרת ואיפה לא; איך מחושבים כיום זמינות והשהיות.
- נתונים היסטוריים — ייצוא נתוני תקלות וירידות ביצועים לפחות מכמה חודשים: בלעדיהם אי אפשר לבחור ספים שלא יופעלו כל יום.
- נקודות כאב בתהליך — אילו תקלות חוזרות, איפה מקבלים החלטות «בעין», מי ובאיזו תדירות עוצר את השחרור ידנית.
- אזורי אחריות — בעל השירות, מי שמאשר ספים, ומי שמפעיל הקפאת שחרורים.
- תקנונים קיימים — סדר השחרור, הוראות לניתוח תקלות, כללי הסלמה והתראות לתורנים.
- מגבלות — דרישות רגולטוריות, חלונות תחזוקה, תלות בספקים חיצוניים.
זה מספיק כדי לדון במשימת האמינות לגופה ולא לבזבז את הפגישה על איסוף הקשר. תארו את המצב — נחזור עם הערכה ותוכנית.







