טסים, מגרדים ומשדרים

החישגד של חברות התעופה

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

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

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

20171107_171405-PANO

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

מגעים לרכישת ענק בעולם השבבים

אם חשבנו שהרכישה של Dell את EMC  תמורת כשישם וחמישה מיליארד דולר היא עסקה גדולה, השבוע גילינו שברודקום רוצה לרכוש את קוואלקום תמורת כמאה ושלושים מיליארד דולר. אם רוצים קנה מידה לגודל הרכישה הזו, מדובר בסכום העולה על התקציב השנתי של מדינת ישראל, כארבע מאות ארבעים וארבעה מיליארד שקלים בשנת 2017. מדובר באיחוד של שתי ענקיות בתחום השבבים לסלולר ו Wi-Fi ולפחות לפי חלק מהאנליסטים זו רכישה לפי שווי מניה נמוך יחסית כלומר מדובר במחיר מבצע לסוף שנה.

כשלון IT אדיר על חשבון משלם המיסים

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

code.infinidat.com

כמו שאתם אולי יודעים, 100% מיכולות מערכת האחסון שלנו, InfiniBox, מוחצנות החוצה באמצעות RESTful API. לקוחות רבים פונים אלינו בשאלות לגבי אופן השימוש ב API שלנו מול כל מני מערכות ניטור, ניהול ואוטומציה. עקרונית השימוש ב API שלנו די פשוט, ה CLI מספק פלט של הsyntax הנדרש על מנת ליישם פקודות שונות וה GUI כולל באופן מובנה את הדוקומנטציה הנדרשת. בכל מקרה, העלינו השבוע פורטל חדש שנקרא code ובו אנחנו מתכוונים לרכז את הידע הנדרש לגבי אינטגרציה של כל מני מערכות על בסיס ה API. מי שיגש לפורטל ימצא שם עכשיו למשל הפניה למודול ה saltstack שפיתח חברי עידן ברנר התותח.

הפורטל מתוכנן להיות מיזם קהילתי פתוח כלומר כל אחד מכם מוזמן לקבל ממנו תוכן אבל גם לתרום אליו תוכן, כרגע דרך כתובת הדוא"ל codecontrib@infinidat.com

עדכוני פודקאסטים

בחודשים האחרונים חלו שינויים בכל מני פודקסטים טכנולוגיים שאני מאזין להם, מתוך כבוד לחברים שם להלן רשימה לא מלא – ידין פורטר דה לאון עזב את In Tech We Trust ועכשיו אפשר לשמוע אותו בפודקאסט חדש שנקרא Tech Village. הפודקאסט הנהדר Speaking in Tech עזב את האכסניה של The Register (הרג'יסטר טענו שהם לא תומכים יותר בתוכן צד ג') ועל הדרך גרג העביר את המושכות לפיטר, אדי, איימי ומליסה. איימי לואיס (כן אותה איימי) שאתם אולי מכירים כ @CommsNinja התחילה להריץ פודקאסט חדש בשם Tech CONFESSIONS תחת החסות של מקום העבודה החדש שלה, VMware וזה מביא אותנו ל The Geek Whisperers שסיים לאחרונה את דרכו אחרי 140 פרקים מוצלחים, תודה רבה לעושים במלאכה שם, לדעתי זה היה אחד הפודקאסטים המעניינים בתעשייה שלנו למרות שהדרך כלל לא היה טכני טהור אלא עסק בעיקר המיומנויות הרכות מסביב לטכנולוגיה. אולי לא כולם יודעים את זה אבל הפודקאסט הוא לדעתי אחד הגורמים המשפיעים על הקריירה שלי בשנתיים האחרונות, למדתי מהם הרבה על מה אני רוצה לעשות, איך אפשר לנהל ארגונים קצת אחרת, למה כדאי ליצור ולתרום לקהילה וקצת בזכותם הייתי חבר ה A-team של NetApp בזמנו מה שתרם באופן מגניב לעבודה שאני עובד באינפינידט היום.

לסיום אני רוצה להמליץ על פודקאסט חדש שמצטרף לנגן שלי (podcast addict) בשם The Tech Fugitives וכמובן להפנות אתכם ישר לפרק האחרון בו התארח בריאן קרמודי, ה CTO שלנו בארה"ב.

bigger boat

כמו תמיד שמח לשמוע מה דעתכם,

שלכם,

ניר מליק

 

הקרמה באה בבעיטת סיבוב ואז היא הריצה Vdbench

ואוו איך הקרמה התפוצצה לי בפרצוף מהר הפעם.

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

נתחיל מהעובדה שבנתב"ג, אחרי שעמדתי 55 דקות בתור לביטחון ועוד 50 דקות בתור לצ'ק-אין למרות שעשיתי צ'ק-אין באתר של טורקיש ולכאורה אני אמור להגיע לאקספרס צ'ק-אין, הודיעו לי שאני לא יכול לעלות לטיסה לאיסטנבול. המטוס שאמור להגיע מאיסטנבול לקחת אותנו מאחר, הוא עדיין לא המריא מאיסטנבול ואין סיכוי שנספיק לעלות על טיסת ההמשך שלנו לדלהי. אחרי המתנה ארוכה ומעצבנת, סתם בעמידה מול דלפקי הצ'ק-אין, העבירו אותי לטיסת לופטהנזה לפרנקפורט. הקונקשן בפרנקפורט עוד יותר קצר ושדה התעופה עוד יותר גדול אז אחרי ריצה – נסיעה ברכבת הפנימית – ריצה – שיחה מתנשפת עם נציגת air india הספקתי לארגן לעצמי מקום ביציאת חירום לטיסת ההמשך הארוכה ואז הגיעה נקודת האור הכמעט יחידה בנסיעה הזו, הספקתי לאכול שתי נקניקיות ולשתות בירה אחת לפני שעליתי לטיסת ההמשך. אני מקצין קצת כי לא באמת הספקתי לשתות את הבירה אבל הרשו לי לעלות איתה לטיסה וככה זכיתי להיות מהאחרונים שעולים על 787 עמוס ולקבל מבטים של כל הנוסעים "הנה השיכור שבגללו אנחנו מתעכבים" למרות שלא היה עיכוב בכלל ועליתי בזמן תפסיקו להסתכל עלי don’t you judge me! אגב 787 אכן מטוס נחמד מאד וכשמטים את המשענת אחורה המושב מחליק טיפה קדימה, די קול.

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

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

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

real workloads

Vdbench הוא כלי של אורקל שמיועד לבדיקות עומסים ותקינות של מערכות אחסון. מדובר בכלי פשוט מבוסס Java ולכן ירוץ כמעט על כל מערכת הפעלה שתתקלו בה כולל הפצות Windows, UX, AIX, לינוקס, Mac ואפילו RaspBerry Pi (למרות שקשה לי לראות מה המטרה להריץ עומסים מכלי כל כך קטן, אולי אם מריצים כמה במקביל).

אם הכלי הוא כלי Java אז צריך Java . אם קיבלתם שרת ריק, כמוני, ואם השרת שלכם הוא שרת ממשפחת הפדורה, כל מה שצריך לעשות זה להריץ yum install java. צריך הרשאות root לבצע את זה אז אם אתם ל root  ואני מקווה שאתם לא עובדים עם root סתם אז תריצו sudo yum install java. השרת צריך גישה לאינטרנט כדי שהתהליך הזה יעבוד חלק, הוא יגש לrepository, יוריד לעצמו את כל מה שהוא צריך ואחרי כמה דקות ושני אישורים זה מה שאתם רוצים לראות:

Installed:

  java-1.8.0-openjdk.x86_64 1:1.8.0.141-1.b16.el7_3

Dependency Installed:

  copy-jdk-configs.noarch 0:1.2-1.el7                                  fontconfig.x86_64 0:

  fontpackages-filesystem.noarch 0:1.44-8.el7                          giflib.x86_64 0:4.1.

  java-1.8.0-openjdk-headless.x86_64 1:1.8.0.141-1.b16.el7_3           javapackages-tools.n

  libICE.x86_64 0:1.0.9-2.el7                                          libSM.x86_64 0:1.2.2

  libXcomposite.x86_64 0:0.4.4-4.1.el7                                 libXext.x86_64 0:1.3

  libXfont.x86_64 0:1.5.1-2.el7                                        libXi.x86_64 0:1.7.4

  libXrender.x86_64 0:0.9.8-2.1.el7                                    libXtst.x86_64 0:1.2

  libfontenc.x86_64 0:1.1.2-3.el7                                      libxslt.x86_64 0:1.1

  lksctp-tools.x86_64 0:1.0.17-2.el7                                   python-javapackages.

  python-lxml.x86_64 0:3.2.1-4.el7                                     ttmkfdir.x86_64 0:3.

  tzdata-java.noarch 0:2017b-1.el7                                     xorg-x11-font-utils.

  xorg-x11-fonts-Type1.noarch 0:7.5-9.el7

Dependency Updated:

  nspr.x86_64 0:4.13.1-1.0.el7_3          nss.x86_64 0:3.28.4-1.2.el7_3          nss-sysini

  nss-tools.x86_64 0:3.28.4-1.2.el7_3     nss-util.x86_64 0:3.28.4-1.0.el7_3

Complete!

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

מה הכוונה משהו סביר לעבודה? החלק החשוב בבדיקות כאלו הוא לדמות משהו ריאלי, אין הרבה טעם להריץ 100% read IO של בלוקים בגודל 2K. למה? כי אין הרבה אפליקציות שככה נראה הIO Pattern שלהן אז למרות שנקבל מספרים די מגניבים, אלו מספרים חסרי משמעות יישומית ללקוח. היות וניסינו לעבוד מסודר ועשינו את עבודת ההכנה ידענו איך נראה ה workload של הלקוח לשרת בודד וככה בנינו את קובץ ההגדרות שלנו ואז אפשר לשחק עם הקובץ, להריץ אותו לדמות שרת בודד, להריץ אותו לדמות כמה שרתים, להוריד את ה performance peak, להריץ רק את performance peak וכן הלאה. הסיבה להוריד את ה performance peak או להריץ רק את השיא היא שלפעמים יש שונות מאד גדולה בין מה שהשרת עושה במהלך רוב הזמן ומה שהוא עושה בשיא הביצועים, במקרה שלנו למשל, בשיא הפעילות השרת מריץ בלוקים פי 2 יותר גדולים בקריאה ופי 10 יותר גדולים בכתיבה (batch job) ולכן כדאי לראות כמה וריאציות שונות של היחס בין אלו לאלו.

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

*

* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

*

 * Author: Henk Vandenbergh.

*

 *Example 1: Single run, one raw disk

 *SD:      Storage Definition

*WD:    Workload Definition

*RD:     Run Definition

*

sd=sd1,lun=/dev/rdsk/c0t0d0sx

wd=wd1,sd=sd1,xfersize=4096,rdpct=100

rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1

 *Single raw disk, 100% random read of 4k records at i/o rate of 100 for 10 seconds

SD מגדיר את הדיסקים אליהם אנחנו רוצים לכתוב, במקרה הזה דיסק בודד שנמצא בנתיב /dev/rdsk/c0t0d0sx

WD מגדיר מה מרצים כלומר איך נראה ה workload, בדוגמה הזו מדובר על בלוקים בגודל 4K ואגב, אפשר פשוט לכתוב 4K במקום 4096 ומדובר כאן על 100% קריאה – rdpct=100 – read percent 100

RD מגדיר כמה מריצים וכאן מוגדר להריץ iorate=100 כלומר 100 פעמים מה שמוגדר ב WD.

לבדיקות ביצועים אמינות ויציבות כדאי להריץ לפני כן workload בסיסי של fillup שמטרתו די ברורה מהשם שלו, למלא את הדיסקים לפחות באופן חלקי. למה? כי כולנו יודעים שמערכת ריקה לא מתנהגת כמו מערכת מלאה או מלאה חלקית, אם היא ריקה אז אין תחרות על משאבים, תהליכי ה metadata פשוטים יותר, אין בעיות למצוא מקום פנוי לבצע תהליכי כתיבה, כל תהליכי הקריאה פשוטים, אין בשום מקום תהליכי scrub או תהליכי garbage collection, הכל נקי וחלק ופנוי ולא אמין.

ההרצה בפועל היא פקודה מאד פשוטה

./vdbench -f configfilename

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

וזו התוצאה הצפויה, הכלי מדווח שהוא יוצר את קובץ הפלט, שההתקנים מחוברים ושהוא מתחיל לעבוד על קובץ הקונפיגורציה שבחרתם. הפלט למטה מראה לנו בערך 6000 IOps של כתיבה בלבד בבלוקים של 256K, זה שלב ה fillup ובבלוקים כאלו גדולים גם זמן התגובה (latency) בהתאם

 

13:30:44.188 Created output directory '/home/vdbench50406/ outputfilename

13:30:44.202 input argument scanned: '- configfilename

13:30:44.202 input argument scanned: '- outputfilename

13:30:44.341 Starting slave: /home/vdbench50406/vdbench SlaveJvm -m localhost

13:30:44.865 All slaves are now connected

13:30:46.001 Starting RD=fillup; I/O rate: 15000; elapsed=30000; For loops: threads=32

Aug 02, 2017  interval        i/o   MB/sec   bytes   read     resp     read    write     re

                             rate  1024**2     i/o    pct     time     resp     resp      m

13:31:06.042         1    6073.95  1518.49  262144   0.00   51.710    0.000   51.710  107.9

13:31:26.049         2    6148.60  1537.15  262144   0.00   51.924    0.000   51.924  103.0

13:31:46.045         3    6184.25  1546.06  262144   0.00   51.756    0.000   51.756  106.2

 

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

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

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

20170801_191543

זהו, יצא די ארוך הפעם, מקווה שיועיל למישהו.

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

20170803_082600

אל תהססו לספר לי מה דעתכם.

שלכם תמיד,

ניר מליק