חזרה לבלוג

הביפר של שלוש לפנות בוקר והמחיר של resize

‏03:04 לפנות בוקר. הביפר מצלצל. ה-CPU נעוץ בתקרה, התור נערם, והתיקון ברור ומשעמם: המכונה קטנה מדי. תנו לה עוד ליבות.

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

לא כי אתם עצלנים בשלוש לפנות בוקר. כי חלק מכם יודע ש-resize עולה יותר ממה שהוא אמור לעלות, ובשלוש לפנות בוקר החלק הזה שלכם עושה את החשבון.

להגדיל את המכונה זו החלטה פיננסית. זה הבאג.

תסתכלו למה resize באמת מחייב אתכם תחת תמחור ענן קונבנציונלי.

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

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

ההתחייבות. אם ה-instance יושב תחת תוכנית reserved או הסכם savings, אתם משלמים עכשיו גם על הקיבולת שהתחייבתם לה וגם על ה-instance ה-on-demand שעשיתם אליו resize. אתם מחויבים פעמיים על אותו תיקון. אופטימיזציית העלויות הנבונה שלכם מהרבעון שעבר גובה מכם עכשיו, באופן פעיל, עמלה על תגובה לתקלה.

אז המהנדס בשלוש לפנות בוקר מריץ את המספרים, גרוע, על ארבע שעות שינה, ומגיע למסקנה שלבלוע את ה-downtime זול יותר.

והנה החלק המחריד באמת: הוא בדרך כלל צודק.

Downtime הוא עלות. הוא פשוט לא מופיע בחשבונית.

החשבונית תתעד בנאמנות את ארבעת הדולרים הנוספים שהוצאתם על ליבות. היא לא תתעד את ארבעים הדקות של checkouts שנכשלו, את ה-error budget שזה עתה העליתם באש, את הלקוחות שניסו פעם אחת ולא חזרו, או את העובדה שמהנדס ה-on-call שלכם חסר תועלת עכשיו למשך כל יום שלישי.

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

התמחור עשה את זה. לא המהנדס.

מה אנחנו עושים במקום זה

חיוב לפי שנייה, ובלי התחייבויות להתיר. resize עולה בדיוק מה שהוא שווה: השניות שבהן השתמשתם בו.

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

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

וההסתייגות, כי היינו מעדיפים שתשמעו אותה מאיתנו ולא תמצאו אותה בדוח: האחסון ממשיך לחייב כל עוד הדיסק קיים. עצירת ה-VM לא הופכת את ה-volume שלו לחינמי. הבייטים האלה עדיין יושבים על הדיסקים שלנו, עדיין שמורים לכם, עדיין עולים לנו משהו להחזיק. ה-compute נעצר. האחסון לא. אם אתם רוצים שגם האחסון ייעצר, אתם צריכים למחוק את ה-volume — ואת זה אל תעשו לפני שיש לכם גיבוי, שהוא, כפי שכתבנו במקום אחר, לא אותו דבר כמו snapshot.

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

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

מודל התמחור שלכם צריך לאפשר לכם את זה.