כמה מילים על המרה מערכת לניהול גרסאות קוד

בשנה האחרונה ביצעתי מספר פרויקטים הקשורים להמרת מערכת לניהול גרסאות קוד, ממערכות שונות למערכות מבוססות GIT (כמו GitLab, או Bit Bucket ואחרים), ורציתי לשתף עם הקוראים כמה תובנות בנושא.

אם יש סוג מסויים של עסקים בהם אין עבודה כזו, אלו הם הסטארטאפים. אני לא מכיר ולא שמעתי אפילו על סטארטאפ אחד שלא משתמש בפתרון מבוסס GIT (בין בשימוש שרת GIT, שימוש בשרותי GIT של ספקי הענן וכו'). בדרך כלל עניין ההמרה מתרחש אצל חברות ותיקות, ושם אצל אותן חברות ותיקות יש כל מיני פתרונות לניהול קוד, בין אם מדובר ב-TFS (או VSS), ב-Subversion או Mercurial, וכן .. יש גם חברות שמשתמשות ב-CVS. כמעט בכל חברה, מעבר למערכת ניהול קוד אחרת זה תהליך לא קל (בירוקרטית וניהולית, טכנית ניתן להמיר את הדברים ביום או יומיים, תלוי בכל מיני פרמטרים).

ככל שעובר הזמן, עניין המעבר ל-GIT נהיה פחות "אופציה" ויותר "צורך". חברות שחושבות לעבור להשתמש במערכות מבוססות קונטיינרים (בין אם זה Kubernetes, OpenShift, CaaS, Rancher, Mesos ועוד) יצטרכו להבין עוד בהתחלה שמבחינה טכנית ניתן איכשהו לעבור עם מערכת ניהול קוד הנוכחית שיש להן, אבל אם מכניסים מערכת קונטיינרים ל-Enterprise, הצורך לעבור ל-GIT יהיה יותר דחוף.

בדרך כלל כשלקוחות יוצרים עימי קשר לפרויקט כזה, רשימת הדרישות, פחות או יותר, היא זהה:

  • המרת קוד ממערכת קיימת למערכת GIT חדשה (מקומית, מכונה בענן, שרות GIT של ספק הענן) כולל היסטוריה ורוויזיות.
  • התאמת הכלים המקומיים שלהם לעבוד מול מערכת ה-GIT.
  • ביצוע "פרישה" (Retire) של מערכת הקוד הנוכחית.
  • תמיכה שוטפת.

וכאן נמצאים בדיוק הנקודות שעבדכם הנאמן צריך לחזור עליהן לכל לקוח, וכאן המקום להעלות אותן:

  • אם אתם חברה גדולה ומסודרת, ואני אוריד את מערכת הקוד הנוכחית ואמחק אותה, והמחלקה המשפטית שלכם תשמע את זה, הם ירדפו אחריי עם נבוטים. קוד ישן ומערכות ישנות צריכות להיות זמינות במקרה שהחברה נתבעת על העתקת קוד או הפרת פטנטים. ישנה חשיבות קריטית לזמנים (תאריכים, כולל שעה מדוייקת) של הכנסת קוד והדברים האלו יוצגו בבית משפט/דיונים מול התובעת כדי להראות סתירות בתביעה. לכן, מה שעושים לגבי מערכות ניהול קוד קיימות (לאחר מעבר לעבודה עם GIT) – הוא שמירת גיבוי, כיבוי המכונה אך לא למחוק אותן.
  • העברת היסטוריה מלאה של קוד קיים ממערכות ניהול קוד אחרות ל-GIT: זה אפשרי בחלק מהמקרים (לדוגמא: mercurial או TFS) אך בעייתי במקרים כמו CVS או Subversion, ולכן בדרך כלל ההמלצה היא להעביר קוד נוכחי ולשמור קוד/Branches ישנים במערכת הקודמת. מיקרוסופט בעבר הבטיחו ללקוחות כי הם יעבירו בקלות קוד מ-SVN ל-GIT כולל היסטוריה מלאה, ורק אחרי שהם התחילו את הפרויקט, הם ראו כמה זה לא ממש ריאלי (במיוחד אם יש קוד ענק של מספר שנים) ומאז הם ירדו מכך.
  • האם להשתמש בשרותי Code Repository של ספק הענן שאיתו אתם עובדים או להרים VM עם אפליקציית שרת GIT (כמו GitLab, BitBucket, GitHub Enterprise)? זה תלוי בכם. אם חתמתם עם ספק הענן על חבילת תמיכה רצינית, אז אולי כדאי להשתמש בשרות (שימו לב, שתצטרכו לשלם תשלום חודשי על כך. באמזון AWS ה-5 משתמשים ראשונים הם בחינם). לעומת זאת, אפשר להקים Instance ולהקים מערכת GIT כמו אלו שציינתי במחירים נוחים:
    • מערכת GitLab היא חינמית כל עוד אינכם צריכים תמיכה מסחרית מהחברה.
    • מערכת BitBucket היא חינמית ל-5 משתמשים ראשונים, 2$ לאחר מכן (מינימום 10 משתמשים) ואתם מקבלים גם אינטגרציה עם Jira.
      שימו לב: ב-2 המקרים אתם מקבלים גם תמיכת Pipelines כדי לבצע אוטומציה לקימפולים, קונטיינרים וכו'.
  • עבודה עם מערכת ניהול קוד נוכחית יחד עם GIT: אם יש לכם מערכת ניהול קוד ישן מבוססת Subversion, ניתן להקים מערכת (היא בתשלום אם יש יותר מ-10 משתמשים) המאפשרת לעבוד מול ה-Subversion והמערכת המסחרית תמיר מיידית את הקוד למערכת ה-GIT שלכם ולהיפך, כך שניתן להמיר את המפתחים לעבודה ב-GIT ואת האוטומציה (Jenkins, Team City וכו') בהדרגה ולא במכה אחת.
  • תמיכה והדרכה – חשוב לסגור את העניין במסגרת חוזה הפרויקט. קל מאוד לעשות שטויות מצד אחד ובמקרים רבים גם לא מנצלים את היתרון של מערכות מבוססות GIT מצד שני – וחבל.

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

חושבים לרכוש מחשבי דסקטופ חדשים לחברה?

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

במצבים כאלו, כשצריכים לדוגמא לרכוש מחשבים נוספים עבור העובדים (ולא מעוניינים בפתרונות VDI מכל מיני סיבות), מתחילות לצוץ השאלות. כן, במחלקת ה-IT יודעים בערך את ההבדלים בין המעבדים השונים של אינטל, ויותר מכך – את ההבדלים בין דגמי הדסקטופ השונים של היצרנים השונים. גם אם החלטתם לעשות לעצמכם חיים קלים וללכת עם יצרן ספציפי מסוים – בדרך כלל יהיו לו כמה דגמים ולכל דגם יש מספר אפשרויות. נוסיף את העובדה שחברות ומוסדות גדולים לא יפנו למישהו מסוים לבקש הצעת מחיר לעשרות מחשבים אלא יוציאו מכרז ואז המחליטים יתקלו במבול הצעות שקשה לדעת מה באמת הצעה שווה (אם מסתכלים לא רק על שורת המחיר) – ונקבל סלט של מידע שמתוכו צריך לבחור את ההצעה הזוכה.

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

לכאורה, הדבר נשמע קל. תן לי מעבד בינוני (נניח i5), כ-8 ג'יגה זכרון, דיסק קשיח מכני או SSD קטן, חיבור רשת ומסכים – וכל השאר זה בונוס אופציונאלי. קל, לא? אז זהו. שלא. האמינו לי, לפני מספר שנים היתה חברה גדולה שעשתה בדיוק כך ולאחר כשנה הם היו צריכים לרכוש חצי מהמחשבים מחדש (כי המחשבים שהם קנו לא היו ניתנים לשדרוג).

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

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

מעבדים: כולם מכירים את המעבדים של אינטל (i3,i5,i7) אך לאינטל יש גם תתי דגמים למעבדים השונים. הדגמים שציינתי, אם יש להם בסוף U לדוגמא, כמות הליבות היא כמחצית ממעבד ללא האות U, והם נמצאים במחשבים היותר קטנים (מה שנקרא SFF) אך הם אינם יותר זולים (תתפלאו, במקרים רבים הם יותר יקרים מהמעבדים ללא האות U). בל נשכח שמחירי המעבדים במחצית השנה האחרונה עלו בממוצע בכ-20%.

נקודה חשובה לציין: במחשבי ה-SFF המעבדים יעבדו בערך במחצית המהירות של מעבדים רגילים הואיל והקירור במקרים רבים הוא פאסיבי או עם מאוורר קטן (החלפה של המאוורר לא תעזור הואיל וזה קשור למעבד, לא לקירור)
אפשרות שתמיד קיימת לכם – היא לבחון את מעבדי AMD. בדרך כלל המחיר שלהם נמוך בכ-400-600 שקל מהמעבד המקביל של אינטל מבלי לספוג הנחתת ביצועים רצינית (הבדלי הביצועים נעים בכ-5-9% לטובת אינטל) כך שניתן לקבל הנחה רצינית פר מכונה. בנוסף, מקבלים גם ניהול מרחוק שבנוי בתוך המעבד לטובת התמיכה הטכנית הפנימית בחברה (כמו ה-vPro של אינטל).

זכרון: בעקרון המינימום המומלץ כיום הוא 8 ג'יגהבייט לפקידות, ו-16 ג'יגהבייט לשאר (למפתחים מומלץ 32 ג'יגהבייט). מהירות הזכרון המינימלית המומלצת היא 2666 מגהרץ וחשוב מאוד: הזכרון אמור להגיע בזוגות, כלומר אם אנחנו מזמינים מכונה עם 8 ג'יגהבייט של זכרון, שזה יגיע ב-2 מקלות של 4 ולא במקל אחד של 8 ג'יגהבייט, אחרת סתם מפסידים ביצועים.

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

כרטיסים גרפיים ומסכים: ברוב המקרים המחשבים שתרכשו כבר כוללים פתרון גרפי או במעבד או ככרטיס במחשב. אם אלו מחשבים חדשים ואתם הולכים לרכוש איתם מסכים, ריכשו מסכים עם חיבור Display Port שהוא חיבור הרבה יותר אמין מ-VGA או DVI וכל המסכים כיום תומכים בו. ככלל, מחירי המסכים ירדו (גם בארץ) וניתן להשיג גם מסכים שהם יותר מ-20 אינטש במחיר זול מאוד ולכן מומלץ לחשוב על הוצאת רכישת מסכים במכרז נפרד.

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

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

לסיכום: חשוב לשים לב מה אתם רוצים לרכוש לפני שאתם מוציאים מכרז. אפשר ורצוי להפריד סוגי מחשבים אם אתם צריכים מחשבים ל-2 מחלקות שונות כאשר כל אחת צריכה מפרט שונה, ולא מומלץ ללכת על ה-Low Bottom, במיוחד שמחשבים אלו אמורים לשרת את המשתמשים במשך 4+ שנים. אם יש לכם שאלות, אפשר ליצור קשר.

מערכות משובצות ומצבי "קיוסק"

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

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

  • עדכוני אבטחה – קשה להתקין עדכוני אבטחה ל-Windows כשאין לך תקשורת חיצונית, ומה לעשות ש-Windows דורש המון עדכוני אבטחה.
  • מחיר רשיון – 150-200$ לרשיון Windows Pro (מחיר שונה ל-Windows Embedded אבל כיום המוצר מאבד פופולריות במהירות לטובת פתרונות מבוססי Linux).
  • קבלת Latency נמוך – לא חשוב כמה תכוונן את Windows, תמיד יהיו "קפיצות" שישבשו את ה-Latency.

לכן הרוב עוברים למערכות מבוססות ARM.

לוחות מבוססי מעבדי ARM כדוגמת I.MX6/7/8 ומעבדים אחרים קיימים בשוק זמן רב ובשנים האחרונות המחירים צונחים (בעיקר עקב פופולריות של Raspberry Pi). מחשב קטן שרק לפני כמה שנים היה עולה מאות דולרים, צנח למחירים שכיום נמדדים בעשרות דולרים (כולל אחסון קבוע כמו eMMC). פאנלים ללוחות כאלו קל לחבר (דרך LVDS לדוגמא) והתוספת ל-Touch היא דולרים בודדים, ולכן יש רצון מצד חברות שונות לבנות פתרונות שאותם הם משלבים במוצריהם – הכוללים מעבדי ARM, עם צג מגע וחוויית משתמש טובה. יש אפילו חברה מסויימת שמייצרת Appliance בגודל 1U .. .עם מסך מגע נשלף. לאן הגענו….

לקוח כזה בסופו של דבר צריך לבנות Image שיוכנס ב-eMMC של הלוח. ה-Image אמור לכלול את כל חלקי התוכנה ויש מספר אפשרויות:

  • לינוקס "רגיל" – אפשרות אחת היא לקחת הפצת לינוקס רגילה (Debian, CentOS וכו') עם Kernel שמגיע מיצרן (או שהאינטגרטור מקמפל תוך שימוש ב-BSP, Cross compiler וכו') ופשוט מקימים לינוקס עם התקנת התוכנות הנדרשות (בשימוש yum/apt) וההגדרות הכרוכות בכך, ולבסוף מכינים Image. יש כלים כמו kickstart (ל-CentOS) או Preseed (ל-Debian) כדי להכין Image כזה.
    הבעיה בשיטה זו היא שיש צורך בידע רציני להגדיר את הסביבה הגרפית (Xorg, Wayland, שימוש ב-OpenGL וכו') מכיוון שאין אוטומציה שניתן להשאיל מ-X86 ויש צורך להשקיע מאמצים מרובים להגדיר את הכל.
    חסרון נוסף: אבטחה. במקרים רבים החבילות המגיעות עם תלויות שאין בהן צורך עבור אותה מערכת משובצת ולכן יש לקמפל את החבילות מחדש ללא אותן תלויות או במקרה היותר קשה – לבטל/להחליף תלויות באחרות. חבילות מיותרות ופונקציונאליות שאינה דרושה, גם אם אינן מופעלות יכולות פוטנציאלית לגרום לחורי אבטחה במערכת.
  • Yocto – אחד הכלים הכי פופולריים. עם Yocto אפשר ליצור Image מצומצם לדברים שאנו צריכים בלבד. מערכת Yocto בונה לנו את כל המערכת ולבסוף מכינה Image שניתן "לזרוק" על כרטיס מיקרו SD או על eMMC. המערכת מספיק חכמה בשביל לא לקמפל חבילות שכבר קומפלו ולא היה בהן שינויים, וכל יצרן לוחות ARM תומך בה.
    החסרון עם Yocto: בלא מעט מקרים תצטרך לדעת איך לבנות Recipe כדי להוסיף את החבילה שאתה רוצה ועם אלו ספריות ו-Compile Flags לעיתים. בנוסף – תצטרך להוסיף את ההגדרות לכל חבילה שתרצה בתוך ה-Yocto. בכל הקשור לגרפיקה – גם כאן, תצטרך לשבור את הראש איך להגדיר את הדברים.
  • Boot2QT – זהו מוצר של חברת TrollTech שמשתמש ב-Yocto כדי לבנות מערכת גרפית מוכנה. לא תצטרך לשבור את הראש על Touch, על הגדרות Frame Buffer או Xorg ופרמטרים אחרים. מוצר הדגל של החברה (QT Creator) נותן לך לכתוב אפליקציות גרפיות ולנסות אותן על מחשבך או ישירות על המערכת המשובצת (מבלי להכין כל פעם Image מחדש כדי לנסות את הקוד שכתבת). המערכת קטנה ועולה תוך שניות ספורות. היא גם הופכת את החיים להרבה יותר קלים מבחינת שימוש ב-Yocto והיא מסתירה לא מעט חלקים מורכבים ומטפלת בקומפילציה.
    החסרון: זו מערכת מסחרית. ישנה גירסה חופשית אך אם תשתמש בה, תצטרך לשחרר את כל הקוד שכתבת באפליקציה הגרפית.
  • Android – עוד פתרון שחברת "אגד" לדוגמא – שמחה לאמץ אותו לנהגים כמערכת קופה/כרטוס. כל יצרן מערכת ARM בדרך כלל משחרר גירסת אנדרואיד ולחברה שרוצה להשתמש בכך, ניתן לקחת את גירסת האנדרואיד ולהוריד חלקים שאין צורך בהם, ואם צריך לכתוב אפליקציות יעודיות, לא חסרים מפתחי אנדרואיד (וכן, יש גם מצב קיוסק באנדרואיד) כך שניתן לכתוב את האפליקציה ולשלב אותה ב-Android הפנימי שיווצר ל-Image שירוץ על המערכת. אם צריכים חבילות לינוקס, אפשר להרים מערכת כמו Linux Deploy שתרוץ ברקע, להקים הפצת לינוקס מינימלית שצריכים עם החבילות הדרושות ואז מהאפליקציה שלכם לתקשר דרך Socket או דרך TCP אל האפליקציה (אישית עשיתי זאת פעמיים וזה הציל פעם אחת פרויקט מביטול מאחר והאפשרויות האחרונות לא אפשרו התקנת חבילות מסויימות).
    החסרון: אם מחפשים Boot של 3-5 שניות – תשכחו מזה. בנוסף, קימפול קרנל למערכת אנדרואיד אינו עניין פשוט הואיל ויש לא מעט חלקים שאנדרואיד כן צריך והפצות לינוקס רגילות לא צריכות.

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

לסיכום: מערכות ARM קיימות היום במחירים מאוד תחרותיים ובניית Image עם הדברים שאתם רוצים ניתנת לביצוע. כדאי לבדוק קודם כל מה אתם רוצים להריץ ורק אז לבדוק את האפשרויות לעיל. אם יש לכם צורך ביעוץ בנידון – אתם מוזמנים ליצור קשר.

כמה מילים על רד-האט 8 (BETA)

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

גירסת ה-Major האחרונה שרד-האט שחררה (גירסה 7.0) יצאה לשוק ב-9/6/2014 ולאחר מכן רד-האט שחררה עדכונים לגירסה זו וגרסאות קודמות, עדכונים שלא שברו תאימות בינארית כך שדברים לא השתנו, ובעולם האינטרנט – 4 שנים זה נצח.

כל חברה שחושבת לשדרג ל-רד-האט 8 (אנחנו כרגע רק בבטא, הגירסה הרשמית תשוחרר כנראה במחצית השניה של 2019), כדאי שתכין את עצמה לעבודה רצינית. גירסה 8 כלל אינה דומה לגירסה 7 וסביר להניח שאפליקציות רבות שרצו בצורה תקינה על גירסה 7 פשוט לא ירוצו על גירסה 8 מבלי לשנות הגדרות וקבצים שונים.

רד-האט 8 עושה קפיצת דרך בכל אספקט אפשרי. גירסת ה-Kernel עוברת מ-3.11 לגירסה 4.18 (אני מנחש שזה יעלה ל-4.19). הקומפיילר משתדרג מספר גירסאות קדימה, ולראשונה ניתן ב-RHEL להוסיף Repositories ולהחליף גירסאות של אותה אפליקציה מבלי לעשות פעמיים פליק פלאק לאחור. לחובבי פייתון – רד-האט נוטשת רשמית את גירסה 2.7 ועולה לגירסה 3.6 (התקנת ברירת המחדל, אגב, אינה כוללת שום גירסת פייתון ב-RHEL-8). תחום התקשורת בין קונטיינרים מקבל שיפור בדמות תמיכת IPVLANS והתווספו כלים נוספים חדשים לבניה וניהול קונטיינרים, ניהול שרתים בצורה מרוכזת עכשיו יותר קליל ומסודר עם Cockpit (אגב, אני לא ממליץ להשתמש בו ככלי ניטור). משתמשים בקבצי Image בענן או מקומית? רד-האט משתמשת בכלי ידוע – Composer לבניית אימג'ים.

רד-האט שינתה כמעט כל פונקציה ושדרגה את כל האפליקציות שקיימות בהפצה. רד-האט 8 היא בעצם Fedora 28 ש-רד-האט לקחו כבסיס ומשם הם החלו לשפר ולייצב את המערכת על מנת לעמוד בכל המבחנים שיצרני תוכנה וחומרה שונים עושים לפני שהם מאשרים את ההפצה כנתמכת וכיציבה.

מכיוון שזו גירסת בטא ראשונה ציבורית, גירסה זו, סביר להניח, לא תעבוד ולא תריץ כמעט אף פלטפורמה אחרת של רד האט, כולל OpenShift, RHV/oVirt, Cloud Formation, Foreman ואחרים. במהלך החודשים החודשים שאר הכלים והפלטפורמות (מחוץ ל-RHEL-8) יתעדכנו ויתמכו בהפצה החדשה בגירסת הבטא. אם אתם רוצים להתקין אותה ולנסות אותה, אל תשכחו להירשם לרד-האט ולבצע Subscription על ההתקנה כדי שתקבלו עדכונים (ויש כבר ערימה).

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

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

ולמעוניינים לשרוף זמן או ללמוד מה השינויים ב-RHEL-8 – להלן קובץ ה-PDF.

Red_Hat_Enterprise_Linux-8-beta-8.0_Beta_release_notes-en-US

סקירה מקדימה: מעבד AMD EPYC ROME

בשבוע שעבר אינטל החלה לחשוף מספר נתונים על מעבדי על Cascade Lake AP שלהם. כשאני מדבר על "מספר נתונים", אני מדבר על פירורים ורמזים – הרבה מאוד מידע חסר. אינטל חשפה את המידע יום אחד לפני ש-AMD חשפו את מעבדי ה-EPYC החדשים תחת הקוד "ROME" (רומא, כל הקודים של מעבדי EPYC קשורים למקומות/ערים באיטליה).

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

נתחיל בקצת היסטוריה: ל-AMD היו מספר מעבדים לשרתים במשפחת Opteron. היתרון שלהם היה מחיר זול, אך החסרון שלהם היה בביצועים בהשוואה למעבדים של אינטל. בדרך כלל, מי שלא כל כך מעניין אותו הביצועים אך מעניין אותו כמות הליבות אלו חברות ה-Hosting שרכשו כמויות של שרתים כאלו (זה היה בתקופה לפני העננים הציבוריים). מאז ל-AMD לא היו פתרונות טובים ואינטל כבשה את השוק לחלוטין.

ב-2017, אחרי שההנהלה הוחלפה וד"ר ליסה סו נכנסה לתפקיד המנכ"לית, הציגה AMD את ארכיקטורת ZEN, ואת מעבדי ה-EPYC, ו-AMD הציגו את המעבד הראשון בעולם עם 32 ליבות, 64 נימים ותמיכה של עד 2 טרהבייט זכרון פר מעבד. מבחינת ביצועים, אם נשווה את ה-EPYC למעבדי ה-Xeon SP, מעבדי ה-EPYC של AMD מובילים ב-2 קטגוריות עיקריות:

  • וירטואליזציה, כולל VDI
  • קונטיינרים

ב-2 המקרים, מעבדי ה-EPYC נותנים יתרונות ברורים על פני מעבדי Xeon SP, הן במצב וירטואליזציה "קלאסי" (סטורג' חיצוני, מכונות VM רצות על ברזלים) והן בפתרונות Hyper Converged (סטורג', רשת, Compute – הכל רץ על הברזלים המקומיים). ב-VDI היתרון של EPYC הוא שניתן להכניס הרבה יותר סשנים/מכונות וירטואליות פר ברזל מבלי לשלם את המחירים הגבוהים של מעבדי Xeon SP. כשזה מגיע לעומת זאת לאפליקציות ופלטפורמות שרצים על הברזל כמו Deep Learning, AI, רינדור תלת מימד ועוד מספר דברים (או מכונת VM שמשתמשת ברוב הליבות) – היתרון למעבדי Xeon SP ברור (אם כי רק בדגמים של Gold ו-Titanium). הביצועים היו יותר נמוכים עקב הארכיקטורה של המעבד שנתנה ביצועי Latency יותר גבוהים, תלוי על איזה ליבות או פיסת סיליקון נופלים, דבר שלא משנה ממש בוירטואליזציה/קונטיינרים וניתן להגדרה בקלות עם CPU Affinity.

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

בתמונה משמאל נוכל לראות את המעבד בגירסה הראשונה: 4 מעבדים שמכילים את כל מה שצריך (I/O, PCIe, ניהול זכרון וכו') בתוך כל אחד מהם. בתמונה למעלה נוכל לראות תצורה שונה לחלוטין: כל מלבן קטנטן שרואים בתמונה (AMD קוראים להם Chiplets) הם פיסות סיליקון שמכילות כל אחת מהן 8 ליבות (וסך הכל 64 ליבות במעבד בקצה הגבוה) אך ללא הדברים האחרים כמו ניהול זכרון, I/O, PCIe ועוד. מי שדואג לכל הדברים הוא המלבן האמצעי הגדול – זהו ה-I/O מודול שכולל את כל מה שצריך בשרת, הוא מנהל את הזכרון מה-Chiplets ואליהם, תעבורה, חיבור למעבדים וציוד אחר ועוד. בשיטה הזו, מהירויות תעבורת הנתונים וה-Latency הם צפויים וקבועים. כך בעצם AMD מסירה מה-Chiplets כל דבר שאינו קשור ישירות לליבות והביצועים יותר גבוהים בהשוואה למעבדי EPYC מדור קודם: פי 2 בהשוואה לדור קודם בעבודות רגילות, ופי 4 כשמדובר על Floating Point. ב-AMD החליטו גם להיות הראשונים (במעבדי X86-64) לצאת עם מעבדים עם תמיכת PCIe 4.0 כך שרוחב הפס לכל כרטיס PCIe הוא כפול ושבב ה-I/O יוכל לתקשר איתם במהירות כפולה בהשוואה לכל מעבד של אינטל.

מבחינת תאימות, AMD מאוד אוהבת סולידיות (כמו הלקוחות שלהם) ולכן מעבדי ה-EPYC החדשים יכולים להיות מוכנסים לשרתים הנוכחיים, לעדכן BIOS/UEFI ולקבל גם את הביצועים הגבוהים וגם כמות ליבות גבוהה (עד 64 ליבות פר מעבד) באותו שרת, ו-AMD מבטיחים שגם משפחת ה-EPYC הבאה (שם קוד: "Milan" שתצא ב-2020) תהיה תואמת לאותה תושבת, כך שניתן יהיה לשדרג כל שרת קדימה.

בזמן הצגת המעבד, ב-AMD החליטו קצת להתעמר באינטל עם הדגמת C-RAY, זו תוכנה לחישובי תלת מימד שמשתמשת רק במעבד (לא ב-GPU), והם השוו מכונה עם 2 מעבדי Xeon SP 8180M (זה המעבד הכי גבוה שיש לאינטל להציע ללקוחות, עם 28 ליבות פר מעבד) מול מכונה עם מעבד יחיד של EPYC החדש, וזה נראה כך:

ה-Sales Pitch של AMD לחברות שמריצות פתרונות וירטואליזציה הוא כזה: מחירי המעבדים שלנו זולים ב-60% מהמעבדים של אינטל בקצה הגבוה. אתה יכול לחסוך חשמל, ניהול מכונות וחסכון ברשיונות וירטואליזציה (הם מדברים על VMWare, לא על הפתרונות של מיקרוסופט) בכך שתעבור לכמות קטנה של שרתים מבוססי EPYC החדשים. הוידאו כולו המציג את המעבדים החדשים, את 2 כרטיסי ה-GPU החדשים ל-Data Center, עננים וחסכון ב-Datacenter אפשר לראות בוידאו הבא (הקישור לוידאו מתחיל בחלק של החסכון, תרגישו חופשי לרוץ קדימה ואחורה בוידאו):

לסיכום: AMD הציגה פרטים על מעבדי ה-EPYC החדשים ו-AMD מראה שאין לה כל כוונה לרדת מה"מלחמה" מול אינטל בכל הנוגע לתחרות של מעבדים לשרתים (על מעבדים לדסקטופ – AMD תציג פרטים במהלך ינואר). ב-AMD הפיקו לקחים רבים מה-EPYC הראשון ושינו דברים רבים, אך יחד עם זאת חשוב להם לשמור על תאימות כך שלקוחות לא יצטרכו לזרוק שרתים רק בגלל שהחברה החליטה להחליף תושבת למעבד (דבר שאינטל משנה תדיר, מה שמקשה על שדרוג שרתים מבלי להחליף שרת). ישנם שינויים רבים ש-AMD ביצעה ל-I/O Chip שלהם שלא כתבתי עליהם ושיופיעו בפוסט עתידי.

על בחירת מחשב תעשייתי/מוקשח

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

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

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

ברכבים לדוגמא, כשהחלק יושב בסביבת המנוע, פתרון קירור רציני הוא חובה. קחו לדוגמא את הלוח של nVidia Drive PX2. רואים את 4 המעבדים? תנסו להפעיל את המערכת ללא איוורור ותראו את המערכת נכבית תוך שניות ספורות. במקרה של הלוח הזה, הפתרון קירור יחד עם הלוח נראה כך (התמונה עם לוח מהגירסה הקודמת):

  • סוג מעבד: במקרים של מחשבים תעשייתיים, את סוג המעבד יש לקבוע בהתאם לעבודה שאותו מחשב אמור לבצע. אין שום סיבה לרכוש i7 אם המחשב מבצע עבודה שמעבד עם ביצועים נמוכים יותר יוכל לעשות מבלי לפגוע בביצועים. בניגוד לדסקטופ, כאן בהחלט מומלץ גם לשקול מעבדים מבוססי ARM, מעבדי ATOM של אינטל, או EPYC Embedded של AMD.
  • חיבור ציוד עם USB: חיבור ציודים עם USB הוא בעייתי. בניגוד לחיבורים כמו VGA או DVI או Display Port שכוללים ברגים או מנגנון לנעילת החיבור, USB הוא לא החיבור הכי יציב, ולכן אם חייבים לחבר ציוד בעזרת USB, יש צורך לדאוג לפתרון בולם זעזועים מחוץ למחשב. ללא פתרון לזעזועים, המערכת תדווח בזמן עבודה על חיבור/ניתוק ציודים באופן תכוף.
  • אמצעי אחסון: לא מומלץ להשתמש בדיסקים מכניים. הדיסקים המכניים כוללים בתוכם בולם זעזועים, אבל אם הפתרון מצריך נסיעות בדרכים או עמידה בתנאים קיצוניים הכוללים תנועה, פתרון הבולם זעזועים הפנימי לא תמיד יפעל טוב (הבולם זעזועים מתאים למקרים של נפילה פיזית פתאומית אחת לזמן רב, לא כל מספר דקות). בעבר ההמלצה היתה להשתמש ב-SATADOM (שהוא בעצם Flash Disk שנכנס ישירות לתוך חיבור SATA ומצריך חיבור חשמל על לוח האם), אולם כיום מומלץ להשתמש ב-SSD בחיבור M.2 הכולל 2 ברגים לחיזוק החיבור. M.2 הרבה יותר אמין ועומד בכבוד גם בזעזועים על טרקטורים.
  • שימוש בכרטיסי PCIe: אין בעיה להכניס כרטיסי PCIe (יש מעט דגמים של מחשבים תעשייתיים המאפשרים הכנסת כרטיסי PCIe) בפתרונות הללו, אולם מומלץ אם אפשר – לחפש כרטיסי Mini PCIe עם אותה פונקציונאליות. כמו ב-M.2, הפתרון מוברג ומוחזק בצורה יותר טובה.
  • שימוש במאווררים: רוב המחשבים התעשייתיים הם מחשבים שקטים, ודרישת השקט מגיעה במקרים רבים מהלקוחות וכך יצרני אותם מחשבים עושים הכל על מנת שהמחשב יהיה שקט. יחד עם זאת, יש לעיתים צורך (בהתאם לתצורה) להחליף את המאווררים הכלולים במאווררים אחרים. הדבר האחרון שמומלץ הוא להשתמש במאווררים רגילים שעולים 30 שקל. יש צורך לבדוק את כמות ה-RPM וה-CFM ואז לרכוש את המאווררים המתאימים או לבקש מהיצרן מאווררים אחרים או המלצות על מאווררים אחרים. מאווררים שאינם תואמים עלולים לגרום לנזק למחשב.

לסיכום: מחשבים תעשייתיים אינם מחשבים זולים, ולא מומלץ לקפוץ על דגמים שהמליץ משווק כלשהו לרכוש ולהאמין להבטחות. ראיתי כבר מספר מקרים שבהם חברה רכשה מחשבים תעשייתיים אך יש בתוכם באגים ב-BIOS/UEFI, או שהבטיחו שהם יכולים לבצע מטלות מסויימות והם לא יכולים לבצע וכו' וכו'. חשוב לקחת יעוץ, לתת מידע מדויק והדגמה מה צריך לרוץ ואיך, שהיועץ ימדוד עומסים ורק לאחר קבלת כל הנתונים – שיתן המלצה על מחשב זה או אחר שמתאים לצרכיכם.

ה"מפלצות" החדשות של אינטל

אינטל החלה לאחרונה לחשוף יותר ויותר פרטים על המעבדים החדשים מסידרת Cascade Lake לשרתים, אלו מעבדים שישבו תחת המשפחה "Cascade Lake SP" והמשפחה הזו תהיה היורשת של הדגמים מסוג "Skylake SP". בימים האחרונים הציגה אינטל פרטים ראשונים על נגזרת ממשפחת ה-Cascade Lake ואותה נגזרת נקראת Cascade Lake AP.

הסיפור (הלא רשמי) בכל מה שקשור ל-Cascade Lake AP (שמעתה פשוט אקרא לו בפוסט: AP) הוא פשוט: AMD הוציאה את מעבדי ה-EPYC שלהם עם גרסאות עד 32 ליבות. מעבדי ה-EPYC בנויים בעצם ממספר מעבדים שיושבים בחבילה אחת. כך לדוגמא, מעבד עם 32 ליבות מכיל 4 פיסות סיליקון שכל אחת מהן מכילה 8 ליבות.

אינטל כמובן החליטה במסגרת התחרות קצת לצחוק על AMD. הם פרסמו את זה:

עובדתית, הדברים אינם נכונים, מה גם שמבחינת ביצועים, המעבדים של AMD עוקפים את המעבדי שרתים של אינטל בכל הקשור לוירטואליזציה וקונטיינרים, אבל איך אומרים באנגלית: Water Under the bridge. מה שלא השתנה – זה שאינטל רוצה עכשיו להתחרות במספר ה-Cores מול AMD וכמובן לגרוף מכך רווחים רציניים. לגטימי? בהחלט.

מה שאינטל כן עשו, הם בעצם החליטו לעשות "Me Too" כמו ש-AMD עושים, רק עם שינויים. מעבדי ה-AP יהיו עם עד 48 ליבות. מה שאינטל בעצם עושים, זה לקחת 2 פיסות סיליקון של ה-SP (כלומר Cascade Lake SP) שכל אחד מהם עם 28 ליבות, לבטל לכל אחד מהם 4 ליבות, להכניס אותם לחבילה אחת (עם תושבת שונה ממה שיש כיום, ההערכות בשוק מדברות על LGA 5903), ובכך למכור ללקוח מכונה עם 2 מעבדים שתכיל בעצם 96 ליבות.

איך יבוצע החיבור בין הליבות עצמן ובין הליבות לבין המעבד השני? דרך חיבור שאינטל המציאה ומשתמשת ב-SP, שנקרא UPI. החלק של ה-UPI הוא חלק מאוד חשוב: חיבור לא אופטימלי יתן תקשורת יותר איטית בין הליבות ובין המעבדים, אבל לאינטל יש נסיון. כרגע לא ניתן ממש להרחיב לגבי ה-UPI במעבדי AP הואיל ואינטל לא פרסמה את התצורה שבה היא תפרוס את חיבורי ה-UPI (ופרטים רבים נוספים על הארכיטקטוטרה והמעבדים), וההערכות הן שאינטל תפרסם יותר פרטים בשבוע הבא, בכנס ה-Super Computing 2018.

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

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

אינטל גם הציעה מעבדים שמתאימים לשרתים עם תמיכה ל-4 עד 8 מעבדים (בעבר אלו היו מעבדי Xeon E7, כיום הם אותם מעבדי Xeon SP אם כי מסידרת ה-Gold או Platinum). הבעיה (שבגינה אני לא ממליץ לרכוש שרתים כאלו, ויש להבדיל בין שרת 2U/3U/4U עם 4-8 מעבדים לבין מארז Blade ששם הדברים שונים לחלוטין) המרכזית היא שה-Scaling שתצורות כאלו נותנות אינו נותן ביצועים ששווים את המחיר של שרת כזה. זה לא רק ש-חץ בן חמו לא ממליץ, זו המלצה שניתנת ע"י מאות ואלפי אנשי מקצוע בארץ ובעולם, ובגלל זה הרוב פשוט רוכשים שרתים עם מקסימום 2 מעבדים, ונראה שאינטל הבינו את הפואנטה עם מעבדי ה-AP, שם התצורה המקסימלית תהיה עד 2 מעבדים.

למי מיועדים המעבדים והמערכות הללו? ברוב המקרים, התשובה היא: לספקי העננים הגדולים ובמיוחד לאלו שנותנים שרותים של Deep Learning/AI. לשאר החברות, מחיר של שרת עם 2 מעבדי AP יהיה יותר גבוה מ-2 שרתים עם מעבדי SP בתוכם.

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

התקציב השנתי ורכישת ציוד

יש חברות שכבר הספיקו לתכנן את תקציב ה-IT לשנה הקרובה, יש כאלו שעדיין יושבים על המספרים. כמובן שאצל כל חברה הדברים שונים, יהיו כאלו שירצו בשנה הקרובה להחליף שרתים, להחליף סטורג', אולי לרכוש PC חדשים, לשדרג ל-SSD, לעבור לתקשורת פנימית יותר מהירה (10/40/50/100 ג'יגהביט), וכמובן שיש את כל עניין הפלטפורמות: לעבור לקונטיינרים, הטמעת CI/CD, להתחיל לעבוד בתצורת AGILE, לשכור אנשים/חברות ללמד את העובדים טכנולוגיות חדשות וכו'.

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

נתחיל בסטורג' SDS.

את עולם הסטורג' לקצה התחתון עד הבינוני ניתן לחלק ל-2: סטורג' קנייני (כזה שמגיע עם "ראש", מדפים), וסטורג' מבוסס תוכנה (SDS – כלומר Software Defined Storage). אם תשאלו את אנשי השיווק של הסטורג' הקנייני, תקבלו הילולים מכאן עד הודעה חדשה כמה הוא יציב, וכמה "לא כדאי" לרכוש SDS. המצב במציאות – די הפוך. בואו נאמר שאתם הולכים להוציא $50,000 על פתרון סטורג' ואתם מבקשים מכל העולם והחתול שלו הצעות מחיר לסטורג'. רוב ההצעות שתקבלו – הם SDS, גם אם הם לא יקראו כך בכותרת.

באופן עקרוני, סטורג' SDS מבוסס בעצם על חלקים COTS (כלומר Common Off The Shelf), כלומר שרת SDS אינו שונה מהותית מכל שרת שיש לכם בחדר/חוות שרתים שלכם. יש בו זכרון, מעבדים, בקר דיסקים, דיסקים קשיחים, וכרטיסי רשת. 2 הדברים ששונים בין סטורג' SDS לשרת רגיל הם בקר דיסקים (בחלק מהמקרים יש SAS Expander ו/או בקר RAID יותר יוקרתי הכולל תמיכה ל-SSD Caching) וכרטיסי רשת לחיבור מהיר (10/40/50 ג'יגה). הדבר העיקרי שהופך את השרת ל-סטורג', זו בעצם התוכנה שרצה עליו.

אחת השאלות הראשונות שאני נשאל לגבי פתרונות כאלו זה "האם יש תמיכה מהיצרן שרתים"? והתשובה בדרך כלל היא "כן", כלומר אם תבקשו מ-HP או DELL או LENOVO פתרון תוכנה של סטורג', הם ישמחו למכור לכם את התוכנה, עם או בלי שרת שלהם. היתרון הגדול בשיטה זו הוא שאם ציוד כלשהו בשרת נדפק, אתה נמצא תחת אחריות מלאה וטכנאי יגיע אליך תוך 4 שעות או ביום העסקים הבא (בהתאם לחוזה שרות שחתמת), ואם יש לך שאלות או תקלות עם תוכנת הסטורג', תוכל לקבל תמיכה מהיצרן שרתים או מיצרן התוכנה, כך שאתה מכוסה מכל צד. אפשר להשוות זאת לרכישת ברזלים + רשיונות של vSphere – אני לא מכיר מקרים שלקוח נשאר ללא מענה לתקלות אם הוא תחת אחריות של יצרן השרת והתוכנה.

מבחינת ביצועים – אחת השאלות שאני תמיד מקבל מצד כל מיני חברות שמתעניינות בסטורג' זה משהו בסגנון "אני צריך פתרון סטורג' עם X טרהבייט ועם כמות Y של IOPS רציפים". עם SDS אין בכלל את העניין הזה. רוצה X טרהבייט? תכניס כך וכך דיסקים ואם נגמר המקום, חבר JBOD בחיבור SAS-HD2. רוצה IOPS? תגדיל כמות זכרון ותוודא שיש לך SSD מהירים כמו P4800X או 905P של אינטל או Z-SSD של סמסונג (זה במקרה הקיצוני שצריכים IOPS גבוה בכל מחיר) או כל SSD שהוא Mixed והוא נמכר לך ע"י יצרן השרתים שלך. סמסונג, אינטל, מיקרון, טושיבה – כולם מייצרים כאלו.

שרידות – אחת הבעיות הקשורות במחיר – היא שרידות High Availability בסטורג' קנייני, כלומר כשצריכים "2 ראשים" לקבל שרידות. המחיר של ראש שני – יקר מאוד! לעומת זאת, בסטורג' SDS, מדובר בעצם על עוד שרת, רכישת JBOD לדיסקים וחיבור ה-JBOD ל-2 השרתים והפעלת פונקציית HA בתוכנת הסטורג'.

מה עם ביצועי רשת ב-SDS? שרת חזק יחיד עם כרטיסי רשת במהירות גבוהה, יתן ביצועים גבוהים ומענה לחיבור כל התשתית שצריך. מנסיון אישי על שרתים שהקמתי, הגעתי ל-250 ג'יגהביט תוך חיבור 150 שרתים, חלקם ב-NFS, חלקם ב-iSCSI וחלקם ב-CIFS (הייתי יכול להגיע ליותר אם היתה לי מכונה יותר חזקה ויותר כרטיסי רשת), כך שפתרון SDS יכול לעמוד בעומסים בלי שום בעיה.

מחירים ו"חופש": כשרוכשים סטורג' קנייני, אתה בעצם רוכש ברזל עם כמות X של דיסקים וכמות Y של פונקציונאליות. רוצה עוד פונקציונאליות? תשלם. רוצה להכניס דיסקים אחרים? ברוב המקרים יאמרו לך ש"אי אפשר". ב-SDS לעומת זאת, אתה יכול להתחיל היום עם דיסקים של 4 טרהבייט (נניח) ולעבור מחר ל-10 טרהבייט, ובד"כ הרשיון של התוכנה כולל את כל האפשרויות במחיר, רק שהמחיר משתנה לפי כמות האחסון בפתרון (אם כי יש תוכנות שכמות האחסון לא משנה את מחיר הרשיון), כך שעם SDS יש לך יותר חופש להחליט איך להשתדרג ומה לשדרג – אתה מזמין מיצרן השרתים את החומרה שאתה צריך, מרכיבים את החומרה, מפעילים את המכונה וממשיכים לעבוד.

לסיכום: פתרון סטורג' SDS נותן לך הרבה יותר ואתה עדיין מקבל תמיכה מיצרן החומרה שאתה רוכש ממנו את הברזלים – אם זו נקודה קריטית עבורך. אפשר כמובן להקים מערכות כמו FreeNAS או ZFS על לינוקס (או על אחת מגרסאות הקוד פתוח של Solaris) אם אתה לא מעוניין לשלם על התוכנה ואתה מעדיף לסגור עם אינטגרטור חיצוני שיעשה את העבודה ויתן לך את התמיכה הרצויה. סטורג' קנייני בדרך כלל יעלה לך הרבה יותר בהשוואה לרכישת שרת כלשהו שיארח את פתרון האחסון ואתה תמיד יכול לגדול עם פתרון הסטורג' בהתאם לצרכים שלך מבלי לשלם סכומי עתק על כל שדרוג בהשוואה לסטורג' קנייני.

עוד על SDS כתבתי כאן וכאן.

ניתוח: רכישת רד-האט ע"י IBM

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

בהודעה לעיתונות של IBM ו-רד-האט, לא ממש דובר בהרחבה מדוע בוצעה הרכישה ומה היא בעצם עוזרת ל-IBM, למעט המילים "Hybrid Cloud". מה שלא הוזכר בהודעה לעיתונות הוא עניין השותפות ארוכת השנים של IBM עם SuSE. אחרי הכל, IBM מוכרת הרבה יותר מערכות עם SLE של SuSE מאשר פתרונות מבוססים של רד-האט (לפחות ממה שידוע לי). עכשיו ש-IBM רכשו את רד-האט, ל-IBM לא ממש תהיה סיבה להמשיך ולדחוף רכישת מוצרים של SuSE, הואיל והרווח ממכירת מוצרי רד-האט ע"י IBM עובר בעצם ל-IBM מהרגע ש-רד-האט היא יחידה של IBM.

אז בואו נדבר על Hybrid Cloud, נתחיל בחלק של הוירטואליזציה. בחלק הזה אין ל-רד-האט משהו לתרום ל-IBM. ל-IBM יש תוסף עבור מערכות vSphere ואני מתקשה להאמין שלקוחות IBM (שנחשבים מאוד שמרנים) יעבירו את התשתית שלהם מ-vSphere ל-RHV. אם ניקח את הפתרון האחר הקשור לוירטואליזציה של רד-האט (OpenStack), אז IBM בכלל לא צריכים את רד-האט. כמה חודשי עבודה של כמה מפתחים ו-IBM יכולים לשנות את OpenStack שיעבוד בקלות עם תשתית הענן של IBM בנוסף לתשתית מקומית. OpenStack בנוי במיוחד לתצורת "תוספים" שיצרנים שונים יכולים למכור והלקוחות יכולים להתקין בתשתית שלהם.

אם זה לא הוירטואליזציה, אז מה כן? הקונטיינרים.

ל-IBM יש נסיון עשיר בקונטיינרים (עוד משנות ה-70 של המאה הקודמת) ומערכות ה-Mainframe שלהם כבר כוללים תמיכה לקונטיינרים של Docker, RKT, ועוד. המערכות גם כוללות תמיכה ב-Kubernetes, כך שלהריץ קונטיינרים זו לא בעיה.

אבל מה שכן יש לרד-האט, זו מערכת OpenShift, מערכת שלא רק בנויה על Kubernetes, אלא היא גם מאפשרת דברים רבים נוספים הקשורים ל-CI/CD, אחסון וכו' (את רוב הדברים ניתן לעשות על Kubernetes עצמאית, ה-OpenShift מוסיף שכבת אבטחה, אותנטיקציה, Auditing ודברים נוספים שחברות נותנות) ולרד-האט יש גם ענן משלה המאפשר לאנשים וחברות לעשות מנוי ולהקים קונטיינרים בשניות בענן שלה ומה שיותר חשוב ל-IBM – יש יותר ויותר רכישות מנויים ל-OpenShift מצד חברות גדולות, ואם IBM תוותר על ה-Cloud Private שלה לטובת OpenShift ותעודד את לקוחותיה לעבור לפלטפורמה החדשה, אז IBM תרוויח מכך. מבחינת OpenShift, כמות השינויים שיהיה צריך לעשות על מנת לתמוך ב-Hybrid Cloud לא תהיה גדולה (יחסית).

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

יש, לעניות דעתי כמה דברים שעדיין תלוים באויר ואין להם תשובה. מה יהיה בגורל CentOS? חוקית אין שום בעיה ש-CentOS תמשיך להתקיים הואיל והקוד של RHEL משוחרר תחת רשיון קוד פתוח, השאלה איך IBM תסתכל על כך והאם היא תפעל נגד העניין (אני מתקשה להאמין ש-IBM תנסה לפעול נגד CentOS). מה לגבי מוצרים אחרים של רד-האט, האם IBM "תהרוג" מוצרים של רד-האט שלא ממש מכניסים הרבה כסף? שאלה טובה. מה לגבי מוצרים שמתחרים במוצרים של IBM (כמו Ceph או GlusterFS שמתחרים ב-Spectrum Scale מהצד של IBM)? מה עם שיתופי הפעולה של רד-האט עם Azure או AWS או GCE? אחרי הכל – ל-IBM יש ענן משלה שמתחרה בעננים הציבוריים.

לסיכום: הרכישה הזו, לעניות דעתי, מרימה לא מעט גבות. אלו 2 חברות שונות לחלוטין מבחינה תרבותית, מבחינת מוצרים וקוד פתוח, ומבחינת פתרונות. זה ש-IBM מבטיחה ש-רד-האט תישאר עצמאית זה נחמד, אבל בסופו של דבר, אם נלמד משהו מהיסטוריית רכישות של חברות שונות שהבטיחו שהחברה הנרכשת "תישאר עצמאית" – בעל המאה הוא בעל הדעה ובלא מעט מקרים יש "דחיפה" מצד ההנהלה של החברה הרוכשת לשנות דברים אצל החברה הנרכשת.
אני מתקשה להאמין שנראה שינויים מהותיים במהלך החצי שנה הקרובה (יקח זמן שהרכישה תאושר על ידי גורמים שונים במדינות שונות) ורד-האט היא האחרונה שלא תעמוד בהתחייבויות שלה, כך שלעניות דעתי, חברות שחושבות לרכוש מוצרים של רד-האט, יכולים לרכוש אותם – ההתחייבויות יכובדו. מצד שני, יהיה כדאי כבר עכשיו לחברות כמו SuSE לפתח אפיקים חדשים, הואיל ואי אפשר לדעת איך השת"פ בין IBM ל-SuSE ימשיך, עכשיו ש-IBM רכשה את רד-האט ולרד-האט יש מוצרים מתחרים ל-SuSE.

אחסון נתונים – לאן אנחנו מתקדמים?

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

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

נפתח בכותרת ראשית: מלחמה. יצרני פתרונות SSD כמו אינטל, טושיבה, סמסונג, מיקרון ואחרים מתחילים להוציא דיסקים SSD מבוססי QLC NAND Flash (כלומר בכל תא ניתן יהיה לאחסן 4 בייטים של מידע) בכדי להתחרות ביצרני הדיסקים הקשיחים המכניים. היתרונות של SSD QLC על פני דיסקים מכניים:

  • ניתן יהיה לרכוש SSD בגדלים של עד 32 טרהבייט (פר דיסק) – בהשוואה לעד 14 טרהבייט דיסק מכני.
  • מהירות הכתיבה תהיה יותר מהירה ממהירות הכתיבה לדיסק מכני, אם כי לא בהבדל כה משמעותי כמו SSD MLC – זה יהיה בסביבות ה-800-1000 מגהבייט לשניה. מהירות הקריאה לעומת זאת תהיה בערך כמו SSD MLC – בערך 2 ג'יגהבייט לשניה.
  • טיפול בשגיאות יהיה הרבה יותר חכם בהשוואה לדיסקים קשיחים מכניים – והטיפול יהיה פנימי (עם Garbage Collection ו-TRIM).
  • הקץ לחיבורי SATA ו-SAS2/SAS3 – כל החברות מעוניינות להעיף זאת (אוקיי, חוץ מטושיבה) לטובת NVME.

הדיסקים הללו יצאו במהלך השנה הקרובה. שימו לב: במקרים מסויימים, גם אם יש לכם תמיכת NVME בשרת, לא בטוח שדיסקים כאלו יהיה ניתן להכניס אותם הואיל והעובי שלהם הוא 15 מ"מ (בניגוד לרוב הדיסקים SSD שהם בין 5 ל-7 מ"מ).

רוב האנשים שאומר להם את המילים "SSD עם QLC Flash" לא ממש יבינו את ההבדלים בין SSD רגיל ל-SSD QLC ולכן אני מציע להציץ בלינק הבא. כפי שתוכלו להבין מקריאת המאמר שם – אלו דיסקים שלא מיועדים להירכש במקום דיסקים SSD שנמכרים כיום, אלא מיועדים להחליף את רכישת הדיסקים המכניים.

מ-QLC נעבור לטכנולוגיה שאינטל כה גאה בה – ה-3D Xpoint. טכנולוגיה זו, למי שאינו מכיר – היא טכנולוגיית אכסון על שבבים, אך לא מדובר ב-NAND Flash אלא על פתרון קנייני של אינטל ומיקרון. SSD בטכנולוגיות כאלו יחזיק הרבה יותר זמן, מהירות הכתיבה והקריאה שלו שווה פחות או יותר למתחרים, אולם הטכנולוגיה "עוקפת" את המתחרים בכל מה שקשור ל-Latency או בשימוש בחלק מה-SSD כ-SWAP והוא מאוד מתאים לדברים כמו SQL אם אנחנו מעוניינים להצמיד SSD כזה למכונת VM (או להריץ על "הברזל").

למרות שאינטל מהללת את הטכנולוגיה – ברוב המקרים אצל רוב החברות, לא יהיה לה ממש שימוש, הואיל ושימוש ב-SSD כזה על פתרון וירטואליזציה כמו vSphere לא יתן יתרון גדול על מתחרים אחרים כמו סמסונג, מיקרון ואחרים (ב-SSD ל-Enterprise). בנוסף, אינטל מייצרת אותם בגודל די קטן: 280, 375, ו-750 ג'יגהבייט (שוב, בגרסאות Enterprise) במחיר הרבה יותר גבוה מהמתחרים, כך שאם רוצים להשתמש ב-SSD כאלו – מומלץ לחשוב ולקחת יעוץ. מצד שני, אם אתם בונים פתרון NAS, דגם 905P לדוגמא יכול לתת פתרון Cache הרבה יותר טוב מאחרים (שימו לב, שבשביל להשתמש ב-SSD כזה, צריך מכונה די חדשה, מהשנתיים האחרונות).

טכנולוגיה נוספת שתעניין חברות שמשתמשות ב-SQL ושצריכים ביצועי Read רצחניים, היא טכנולוגיית ה-Z-SSD של סמסונג. ה-Z-SSD עוקף בביצועים את ה-3D Xpoint של אינטל, אבל הוא הרבה יותר איטי בכתיבה.

מכאן נעבור לפתרונות אחסון קנייניים. ברוב המקרים בקצה הנמוך עד בינוני (תקציב של 5-6 ספרות בדולרים) הטכנולוגיות הם פחות או יותר אותן טכנולוגיות, רק שכל חברה נותנת שמות אחרים (די מזכיר מה שקורה בתחום השרתים) ואחת השגיאות שרבים נופלים אליה – היא המושג "AFA" (או All Flash Array). אפשר להשוות את זה למושג שיגיע מאיש שיווק של רכבים – "מכונית מפוארת". זה שפתרון Storage הוא All Flash יכול להטעות, בגלל שכל SSD יש לו מגבלות – בכמות כתיבה רנדומלית או Sequencial, חלקם הוא Mixed Intense אבל ברוב המקרים בהצעה הראשונה שתקבל ה-SSD הוא Read Intense, מה שיאיט את הביצועים בצורה ניכרת בעבודות דיסק כבדות.

בשנה הקרובה יהיו יותר ויותר הצעות AFA שמבוססים על דיסקים SSD TLC (ולא MLC שהוא הרבה יותר מהיר. ה-TLC יושב "באמצע" בין ה-MLC ל-QLC) ושיהיו Read Intense. בהצעות היותר גבוהות, סביר להניח שנראה לקראת סוף שנה הבאה פתרונות Storage גדולים יותר מבוססי SSD QLC – כאשר חלק מה-SSD יהיו TLC כדי "להחביא" ביצועי כתיבה איטיים. אלו שרוצים להקים פתרונות VDI גדולים – פתרונות Storage כאלו יאיטו ביצועים במקרים מסויימים (במיוחד אם מרימים כל דסקטופ כ-VM ולא כ-Session RDP לדוגמא).

עוד תחום שיקבל תאוצה בשנה הקרובה הוא ה-NVMEoF שעליו כתבתי בעבר. הפתרונות הללו יקרים (7 ספרות בדולרים) והם הרבה יותר מורכבים מפתרונות Storage קודמים. תחום נוסף שיקבל דחיפה ויכול לעניין את אלו שמחפשים פתרון Storage עם Scale Out – הם פתרונות קנייניים של Scale Out מ-EMC, NetApp, ואחרים אך לעניות דעתי אין להם הצדקת רכישה – יש מספר פתרונות Scale Out Storage שיכולים לרוץ על ה-Nodes עצמם מבלי לרכוש עוד Storage.

עוד פתרונות מעניינים שיגיעו לשוק (אבל אני מאמין שלא יכנסו לשוק הישראלי האולטרא-שמרן) הם פתרונות JBOF – מכונות שמזכירות JBOD אך עם SSD במקום דיסקים מכניים, שמחברים כל מכונה למספר שרתים עם כרטיס HBA וב-JBOF מגדירים כמות דיסקים שיוקצו פר שרת. יש גם פתרונות של מכונות שיכולות לקבל 45-60 דיסקים מכניים בגודל 3.5 אינטש וכוללות מעבד, זכרון וכו' ויכולות לשמש כפתרון Storage (אולם יש צורך בשדרוג תשתית הרשת ל-40-50 ג'יגהביט).

מצד הדיסקים המכניים אנחנו נראה בשנה הבאה דיסקים שעובדים עם מנועים כפולים (ומהירות גישה כפולה – בסביבות ה-450 מגהבייט לשניה) בחיבורי NVME והיצרניות כבר יציעו דיסקים שמגיעים לגדלים של עד 20 טרהבייט. יהיה מעניין לראות את התחרות מבחינת מחירים – בהשוואה ל-SSD QLC.

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