מה שקורה בסייזינג נשאר בסייזינג?

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

סביב הביקור הקודם בעיר, התרגשתי בעיקר בעניין ה Sphere וכמו שכתבתי לכם, ההתרגשות היתה לגמרי מוצדקת.

הפעם אנחנו מתארחים במלון חדש, Resorts World, שמעבר להיותו מלון סופר דופר מפנק הוא גם אחת התחנות של ה Las Vegas Loop, אחד המיזמים היותר מוזרים של אלון מאסק. בעבר מאסק דיבר על ה Hyper Loop כפתרון אפשרי לתחבורה ציבורית מהירה, היה לו חזון לרשת מנהרות ואקום או יותר נכון תת לחץ בהן ישוגרו הנוסעים בקפסולות יעודיות. זה היה ניסוי מחשבתי מעניין ולאחר שמימן מחקר ראשוני בנושא מאסק שחרר את מסמכי המחקר לציבור על מנת לאפשר תחרות ופיתוח מהיר. היו מספר חברות שניסו להקים מייזם שכזה ביניהן וירג'ין של ריצ'רד ברנסון ולמיטב ידיעתי אף אחד מהמיזמים לא קיים יותר.

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

הרשת מאד מצומצמת עדיין, היא מכסה את חלקי ה Las Vegas Convention Center בשלוש תחנות ומקושרת אל Resorts world ושאר הרשת בשלבי תכנון או בניה ראשוניים אבל זה נראה לי מגניב ואני חייב לנסות, אדווח!

כל התמונות מאתר החברה כמובן.

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

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

התשובה היא, בעיני, לא.

תודה שקראתם וסוף שבוע נעים.

טוב בסדר זו בדיחה שעובדת פחות טוב בכתב אולי, תתעלמו. בכל מקרה התשובה היא כמובן לא והיא לא בגלל הרבה מאד סיבות. הסיבה הראשונה והעיקרית היא שבמרבית המקרים אנחנו פשוט לא יודעים מה הוא אותו עומס עבודה אליו אנחנו נדרשים לתכנן. תחשבו על כל שיחת אפיון שהייתם בה בחיים, כמה שאלות שונות נשארו ללא תשובה בשאלון שלכם, שאלון אמיתי או שאלון תיאורטי ובכל מקרה, שאלון. האם אתם יודעים אם האפליקציה מוטת כמות ליבות או מהירות ליבה? האם היא רגישה יותר לכמות זיכרון או ל מהירות תגובה מהדיסק? כמה מהמידע בדיסק הוא מידע חם וכמה קר? כמה מהר מתקרר המידע שאנחנו מחשביים כמידע קר? האם הקריאה והכתיבה נראו אותו דבר או שאנחנו כותבים רנדומלית וקוראים סדרתית? האם תהליכי ה Meta Data רצים במקביל לתהליכי user io או שמחכים ל off time? האם אנחנו מגדירים את כל ה over head כחלק מהעומס המתוכנן או מעבר אליו? מה לגבי אנומליות? מתקפות?

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

עכשיו תכפילו את העומס? עכשיו תכפילו את העומס פי עשר? עכשיו תכפילו את העומס פי 100? מתישהו, at scale, כל הנחות היסוד שעשינו עד עכשיו נשברות ולא תקפות יותר, מה שעובד על המחשב של המפתח לא בהכרח עובד על שרת פרודקשן ומה שעובד על שרת פרודקשן לא בהכרח עובד בקנה מידה של ספקית שירות קטנה ובדרך כלל לא עובד בקנה מידה של ספקית גדולה?

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

המקומות היחידים שאני מכיר שלוקחים מערכת לקצה ככה, אלו מקומות שמקריבים אמינות לטובת ביצועים. דמיינו מכונית Formula1 למשל, המכונה מתוכננת לעמוד בעומס מקסימלי למשך שעתיים, מתוחזקת על ידי צי של מהנדסים במשך כל השבוע בין המרוצים ומוחלפת כל שנה בדגם חדש יותר, מהיר יותר (לא תמיד מהיר יותר ראו המקרה של מרצדס בזמן האחרון למשל 😊), וזה נכון גם למשל, לפעמים, בסביבות HPC, אנחנו לא מתכננים מערכות כאלו לריצה ארוכת טווח, אנחנו לא צריכים את המערכת הזו לתפקד 100 אחוז במשך עשורים קדימה, אנחנו מקריבים את שרידות המערכת לטובת ביצועים, אנחנו רוצים לקצר את הזמן לקבלת המענה, תוצאת החישוב, שאלת המחקר.  

טוב יצא ארוך יותר ממה שחשבתי,

כמו תמיד מאד אשמח לשמוע מה חשבתם (הבת שלי ראתה שאני עובד על הפוסט הזה ושאלה אם אני מפורסם ואמרתי שלא אבל יש לי כמה עוקבים קבועים ואני גאה על כל אחת ואחד!),

בברכת בשורות טובות,

שישובו כל החטופים והחטופות במהרה אמן וכל החיילים והחיילות בריאים ושלמים!

שלכם כרגיל,

ניר מליק

פוקה-יוקה, קאיזן ומכרזים מחורבנים

סיפרתי לכם פעם כמה אני שונא מכרזים?

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

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

אצלנו, מאד מקובל לבצע תהליך אפיון מאד מפורט כולל שימוש בכלי אפיון כמו למשל VMware Capacity Planner או ניתוח קבצי NAR של מערכות EMC, Perfstat במערכות NetApp וכו'. אנחנו לאחרונה משתמשים קצת ב mitrend כדי לאסוף ולנתח ביצועים של מערכות שונות וליצר גראפים נוחים לשימוש.

זה ברור שהכלים לא מושלמים, הכלי של VMware יודע להתייחס לכמות ליבות אבל חלש בהבנה של מהירות המעבדים, כלי ה SPM של NetApp חלש בניתוח פעילות Metadata, או לפחות היה כזה בפעם האחרונה שעוד עבדתי איתו, אבל למרות החולשות האלו, הכלים נותנים לפחות קריאת כיוון טובה, אולי הם מפספסים נקודות שיא רגעיות אבל הם מכוונים אותנו למקום בו אנחנו לפחות מבינים את סדרי הגודל הנכונים.

במזרח נתקלתי לאחרונה בכמה מקרים שבהם אין שום דרישת ביצועים במכרז, כלום. נפח אחסון נדרש וזהו. עכשיו מתחיל החלק האומנותי, בחלק מהמקרים אין שום דבר אחר, ואז אני חושב לעצמי שמי שפרסם את המכרז פשוט לא מבין בסטורג', קורה. במקרים אחרים רואים משהו אחר, והוא מטריד הרבה יותר, מישהו מפרסם מכרז ללא דרישת ביצועים אבל עם מפרט מאד מדויק של מערכת האחסון שהוא דורש, כמו נניח דגם מעבדים ספציפי או יכולת גידול לכמות בקרים גדולה פי 20 ממה שהוא דורש ביום הראשון. במקרים כאלו ברורה כוונת המשורר, הרי אלא אם אתה יצרן מערכות אחסון בעצמך, אין לך דרך ריאלית לבדוק את ההשפעה על הביצועים בשימוש במעבד 3GHz לעומת שימוש במעבד 3.2GHz  וגם בואו נהיה הוגנים, בניגוד למה שמראים לנו במצגות בכנסים, הסיכוי שאנחנו נישאר עם אותה מערכת בדיוק גם בגידול פי 20 לא סביר כל כך, הרי גם אם אתה בר מזל והעסק שלך אכן גדל פי 20 בטווח הנראה לעין, הארכיטקטורה שלך תשתנה עוד מיליון פעמים בדרך כדי לתמוך בכזה גידול, שום דבר שעובד ב1 לא עובד ב 20 as is, אז למה לקשקש?!

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

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

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

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

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

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

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

עלו והפוקה-יוקו כולכם! קאיזן על בתיכם ומשפחותיכם ומועדים לשמחה!

שלכם,

ניר מליק