על עננים ציבוריים ותקציבים

בשנים האחרונות חברות רבות עברו להשתמש בשרותי ענן ציבוריים, החל בשרותים של מיקרוסופט שהחליפו שרתי Exchange מקומיים (אופיס 365), העברת מכונות VM לענן, שימוש היברידי בתשתית מקומית ובעננים ציבוריים וכלה בשימוש בשרתים כפלטפורמות ושירותים (PAAS/SAAS). גם הבנקים, אחד הסקטורים הכי שמרניים שהשתמש בשרותי ענן יותר לצרכים שיווקיים – קיבל אישור מהרגולטור להשתמש ביותר שרותי ומשאבי ענן ציבורי.

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

יש לעומת זאת לא מעט חברות שאינן זכאיות לקרדיטים באלפי/עשרות אלפי דולרים ויש כמובן את המצב שהקרדיטים נגמרו ויש צורך לשלם. במצבים כאלו, ספק הענן מוציא חשבונית חודשית שנגבית מיידית מכרטיס האשראי של החברה (מתגעגעים ל-ש+60?) והחשבונית עוברת למנמ"ר/מנהל צוות ה-IT. אצל לא מעט חברות, כמעט כל חשבונית כזו גורמת לכינוס ישיבה של צוות IT (ושאר גורמים) עם שלל ביקורות ופקודות: מדוע הרמתם שרות X שעולה הרבה? מדוע הורם שרות בלי לקבל אישור, וכמובן הוראות להעיף דברים החוצה ולחסוך. לגטימי לחלוטין.

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

כאן קיים איזה ניתוק בחלק מהחברות בין ההנהלה הבכירה לצוותי IT/פיתוח, והניתוק נובע מהרגל לשימוש ב-On Prem. אסביר:

נניח ואני חברה בשם X ויש לי חדר שרתים נחמד עם 5 ארונות, ו-100 שרתים פיזיים, תקשורת, סטורג', מיזוג וכו'. השרתים מריצים כ-1500 מכונות VM. נניח ועכשיו יש צורך להוסיף עוד 500 מכונות VM ויש לי משאבים פנויים בשרתים ובסטורג', אז תוספת העלות לחברה תהיה יחסית זניחה (אני לא מדבר כרגע על רשיונות פר OS כמו ב-Windows): עלות החשמל תהיה קצת יותר גבוהה. אם אצטרך לרכוש ברזלים כדי להקים את אותן מכונות VM, אז העלות שלהם תהיה עלות חד פעמית ואני יכול להשתמש בציוד הזה במשך 3-5 שנים בלי בעיה, אך בשורה התחתונה – ההוצאות הכספיות לגבי תוספת אותן מכונות VM הן צפויות.

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

ההבדל בין On Prem לשימוש בענן בלא מעט מקרים גורם לכך שחברות, לאחר ישיבות תקציביות שנתיות – מתחילות להתעניין באחת מ-3 האפשרויות הבאות:

  • "לחזור הביתה" – לתשתיות On prem
  • להתחיל לשוחח עם נציגי ענן מתחרה על שרותים זהים כמו שמשתמשים עכשיו אך במחיר יותר נמוך
  • קיצוץ מאסיבי בשימוש שרותי הענן, ואם משתמשים ב-Hybrid (כלומר On Prem ועננים) – לקצץ את השימוש בענן לצרכים הכרחיים בלבד.

החלטתי לשאול חברים מקצועיים בפורום Operation Israel בפייסבוק את דעתם. מי שמעוניין לקרוא, להלן הלינק (לצערי לא ניתן לעשות Embed לפוסט ספציפי מקבוצה אל וורדפרס)

מי שהסתכל בלינק יכל לראות שישנן תשובות שונות. אני אפרסם כאן את התשובות שלי:

  • בנוגע למעבר ל-On Prem ("חזרה הביתה") – אם מדובר על מכונות VM, אז זה אפשרי כמובן, אם כי סביר להניח שתקבלו אולי ירידה כלשהי בביצועים הואיל וספקי הענן בד"כ משתמשים במעבדים מהדור האחרון או זה שלפניו, בהשוואה ל-2-3 דורות אחורה שחברות משתמשות. בנוסף, תלוי בסיטואציה, יכול להיות שתצטרכו לרכוש ציוד נוסף כדי לארח את המכונות שמוחזרות מהענן.
    לעומת זאת – אם אתם משתמשים בשרותים שספקית הענן מציעה (RDS, S3, ELB ועוד שרותים רבים) – חלק מהם ניתן להקים מקומית בקלות (אם כי לא באותה שרידות – לדוגמא במקרה של S3) וחלקם מצריך משאבים ניכרים בכדי להקים משהו זהה רק ב-Scale קטן בהרבה (כמו Aurora), כך שבכל מקרה מדובר על הקצאת משאבים ניכרים שהולכים וגודלים ככל שהעברתם/הקמתם תשתיות וירטואליות בענן או שאתם משתמשים בשרותים המוצעים ע"י ספק הענן.
  • מעבר לענן מתחרה: "על הנייר" זה נשמע קל – מביאים את נציגי המתחרים, מבקשים מחיר נמוך וקרדיטים ואפשר לסגור חוזה. הבעיה בדרך כלל היא במימוש: אם אתם בנק ואתם משלמים מאות אלפי דולרים ומעלה פר חודש לספק הענן הנוכחי, אז ספק הענן המתחרה יקח על עצמו את כל ההקמה והעברת המכונות והנתונים אליו. אם אתם יותר קטנים – הספק המתחרה ישמח לתת לכם שרותי יעוץ (תרגום: אתם עושים את העבודה השחורה, הספק רק מייעץ תיאורתית ושולח לכם לינקים לתיעוד).
    משהו שחשוב לזכור: אין הבדלים רציניים במחירים בין ספקי הענן. הוא יכול נניח לתת לכם מחיר יותר זול על הקמת VM, אבל הוא יקח יותר על ה"דיסק" הוירטואלי, על רשתות תקשורת וירטואליות או על דברים אחרים, כך שלדעתי הסיבות היחידות לעזוב ספק ענן זה שרות גרוע, בעיות Downtime או שאין שרותים שאתם צריכים.
  • קיצוץ בשימוש שירותי הענן: אני יכול להבין בהחלט את אלו שרוצים את האופציה הזו, אבל חשוב לזכור (וזה רלוונטי אצל רוב ספקי הענן!) – אפשר להוציא לדוגמא 1000$ לחודש על פרויקט שרץ על הענן ואפשר במקרים רבים לעשות את זה אצל אותו ספק ענן ב-500$. הכל תלוי בידע של אותו אדם לגבי השרותים המוצעים על ידי אותו ספק ענן.
    סתם דוגמא מציאותית: התשתית שמציגה את הבלוג הזה (ובלוגים אחרים שלי ועוד כמה אפליקציות וניסויים שאני מריץ) לפני כשנה עלתה בסביבות ה-85$ לחודש. כיום אני משלם בחודש 26$. איך? צריך לדעת לבחור את השרותים, לראות מה השרותים החדשים שמוצעים, היכן ספק הענן הוריד מחירים, איך ניתן לבזר את הדברים, היכן כדאי לשלם מראש על משאבים מסויימים לתקופה ארוכה ולחסוך הרבה כסף, היכן ניתן להשתמש במשאבים זמניים כדי להריץ דברים שלא לוקחים זמן רב וזולים בהרבה ועוד ועוד. יש מספר חברות (כולל הח"מ) שמציעים שרות כזה, כך שלפני שמניפים את הגרזן – כדאי להתייעץ.

לסיכום: בלא מעט חברות שיש להם תשתיות בענן ציבורי מגיעים לפעמים סיטואציות שההנהלה דורשת חיתוך רציני בתקציב התשלומים לספק הענן. לא צריך להיכנס לפאניקה, תמיד אפשר למצוא פתרונות איך לקבל ביצועים נאותים תוך ביצוע שינויים שחוסכים מחיר ללא צורך ירידה לשימוש במשאבים בלתי מספקים (תמיד אזכור את אותו עסק שפנה אליי אחרי שקיבל חשבונית היסטרית על שרת SQL שהריץ באמזון ושבקושי נותן שרותים למישהו, אבל האינטגרטור הקודם החליט שזה רעיון מעולה להגדיר שה-SQL ירוץ על m5.4xlarge [כלומר 16 ליבות, 64 ג'יגהבייט זכרון!]).

תודה למשתתפי פורום Operation Israel על תשובותיהם.

כמה מילים על רד-האט 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

ניתוח: רכישת רד-האט ע"י 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.

חושבים להקים HPC?

עם כניסת העננים הציבוריים לחיינו ול"חיים" של חברות, תחום ה-HPC (כלומר High Performance Computing – כשמקימים פרויקט ובו תשתית עם כמות שרתים גדולה כדי להריץ דברים שונים כמו חישובים בצורה מרוכזת) ירד מעט מסולם הפופולריות. אחרי הכל, אם אני יכול לשכור 50 שרתים (פיזיים/וירטואליים) מאמזון בכמה קליקים, אז בשביל מה לרכוש ברזלים?

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

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

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

הדבר הראשון החשוב ביותר בכל מערכת ה-HPC הוא כח החישוב (בגלל זה צריך את השרתים) ולכן יש צורך בתצורה מסויימת. התצורה המומלצת היא שרתים עם 2 מעבדים או מעבד אחד מרובה ליבות. בד"כ זה יהיה שרת 1U או 2U.

מבחינת מעבדים – אני ממליץ על AMD EPYC ולא על Xeon מהסיבה הפשוטה שעל כל כמות X ליבות שאתם קונים במעבד Xeon, אתם מקבלים כפול עם EPYC וכבונוס אתם מקבלים גם יותר נתיבי PCIe (אם צריך להכניס יותר GPU או כרטיסים נוספים) ויותר L3 Cache במעבד ובנוסף חסכון של אלפי דולרים פר מכונה. אם הולכים על מעבדי EPYC, אז השרתים שאני ממליץ:

  • Dell – שרת 1U R6415 (עם מעבד 1 עד 32 ליבות) או שרת R7425 עם 2 מעבדים (עד 64 ליבות)
  • HPE (דור 10): שרת DL325 (מעבד 1, עד 32 ליבות), DL385 (כ-2 מעבדים, עד 64 ליבות). אם אתם חושבים על הקמת HPC בסוף השנה/התחלת שנה הבאה, אולי תתעניינו גם בשרת ה-CL3150 של HPE.

חברות כמו Cisco מציעות פתרונות מבוססי Nodes שבהם ניתן להכניס 4 שרתים בתצורת 2U. זה נראה כך:

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

מבחינת וירטואליזציה: סביר להניח שלא תריצו וירטואליזציה או שאולי תריצו וירטואליזציה לצרכי Storage שהוא Scale Out (לא ממש צריך וירטואליזציה בשביל זה, יש cgroups בלינוקס). אם אתם חייבים וירטואליזציה, חפשו פתרון זול ועדיף מבוסס קוד פתוח, אחרת כל פתרון מסחרי "ינפח" את המחיר הכללי בעשרות אחוזים.

מבחינת סטורג': ברוב המקומות שתראו HPC, לא תראו סטורג' מרכזי כמו NetApp או EMC. הפתרון לסטורג' בדרך כלל הוא פתרון Scale Out מבוסס קוד פתוח, כמו Ceph או Gluster, ואם אתם רוצים את הפתרון קוד פתוח בגירסה מסחרית, אתם יכולים לרכוש מ-SuSE ישראל או מ-Red Hat בארץ.

מכיוון שסטורג' Scale Out נסמך על דיסקים, תצטרכו דיסקים מקומיים על כל מכונה. כאן אני ממליץ להשקיע ב-SSD NVME בתצורת Mixed Intense. ישנם כאלו שמעדיפים להשתמש ב-SSD ובדיסקים מכניים, אבל כפי שניתן לקרוא בפתרונות Storage כמו Ceph – זה לא מומלץ.

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

תקשורת – 10/25/40/50 ג'יגה – זו צריכה להיות החלטה שלכם. יש מספר יצרנים שמוכרים סוויצ'ים – HPE, DELL, JUNIPER, CISCO – מה שחשוב הוא חיבור מהיר (לא 1 ג'יגה ולא 1 ג'יגה ב-Bond) ולפחות חיבור כפול ומתגים כפולים על מנת לקבל שרידות גבוהה. אפשר לחבר את השרתים למתגים בחיבור אופטי או DAC/TwinAx נחושת, החלטה שלכם, אין ממש הבדלים בין השתיים.

אוטומציה: קניתם עשרות שרתים לפרויקט HPC, אתם צריכים אוטומציה, אין דרך להתחמק מכך. בד"כ ההמלצה שלי היא על Ansible, אבל יש כמובן גם SALT, Puppet, Chef. צוות הלינוקס בחברה יכול לאמר מה העדפותיו.

הפצת לינוקס: נדיר מאוד שתמצאו HPC שמריץ Windows, כי כולם מריצים לינוקס, ולכן יש צורך בהפצת לינוקס שתהיה על כולם. בהתאם למדיניות בחברה זה יכול להיות RHEL של רד האט או CentOS 7 החינמי, או SLE של SuSE (ואם אתם מתעקשים על אובונטו, רק גירסת שרת LTS). כפי שציינתי לעיל – גם לרד-האט וגם ל-SuSE יש נציגות בארץ.

שימוש ב-GPU בכל שרת: כאן זה מאוד תלוי מה אתם הולכים להריץ. מכיוון שאין וירטואליזציה בשרתים, אפשר להשתמש בכל GPU (הערה: רשמית, nVidia אוסרת שימוש בכרטיסי GTX בשרתים, אחרת נו נו נו לכם), אך מצד שני, כרטיסי Tesla לאו דווקא יתנו ביצועים יותר גבוהים, אלא אם אתם צריכים הרבה יותר VRAM בכרטיס ה-GPU.

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

תאימות קדימה: במקום לזרוק את המכונות בעוד 3-4 שנים, אפשר לשדרג אותם מבחינת מעבדים, אבל חשוב לשים לב עם אלו מעבדים רוכשים: שרתים מבוססי EPYC של AMD – מובטחת תאימות קדימה לדור מעבד הבא ואחריו, כנ"ל לגבי מעבדי Xeon SP של אינטל אך זה לא קיים במעבדי Xeon V4, שם אתם יכולים אולי לשדרג למעבד מאותה משפחה, אבל סביר להניח שתצטרכו גם להחליף ספקי כח ולא תקבלו ביצועי RAM יותר גבוהים.

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

פוסט עדכני על קורסים בחברות

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

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

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

  • קורסים מסויימים מלמדים על כמה הפצות לינוקס במהלך הקורס. זו, לעניות דעתי, טעות. לי, אישית, כשאני לומד עדכון של הפצה שאני כבר מכיר, לוקח לי כמה שעות במשך כמה ימים ואילו הפצה חדשה לוקח לי יותר זמן ללמוד (מה לעשות, צריך גם להתפרנס, לא? 🙂 ). לעומת זאת, מישהו שהוא חדש בתחום  הלינוקס, יקח לו הרבה יותר זמן ללמוד, ולימוד הפצות שונות באמצע די מבטיח בלבול רציני. כבר ראיתי מישהו שדי חדש בלינוקס מתעקש במשך שעה לנסות להתקין חבילות תוכנה עם פקודת zypper (שקיימת להפצת SuSE) בשעה שהוא היה צריך להשתמש בפקודת yum (שקיימת בהפצות Red Hat ו-CentOS) ולכן קורס טוב לדעתי צריך להתמקד בהפצה עיקרית אחת.
  • שיטת לימוד של "נזמין את המדריך ליומיים שלוש" להדרכה, היא שיטה די בטוחה שהכסף שיושקע ילך לטמיון. לינוקס זה לא לימוד MCITP ורוב מוחלט של החומר הנלמד הם פקודות טקסטואליות שצריך לשנן, ולנסות. קורס יומיים? תהיה בטוח ש-90% מהחומר ישכח ע"י רוב התלמידים, ועל כך יכול להעיד המייל אצלי. יש צורך לפרוס את זה ליום או יומיים בשבוע לשעות ספורות.
  • רלוונטיות: מכיוון שהשוק פתוח וכל אחד יכול להציע קורסים כאוות נפשו, מגיעים אליי כל מיני שאלות אם אני יכול להעביר קורס על טכנולוגיה זו או אחרת. טכנית, אין לי בעיה להעביר, אבל התועלת לחברה חשובה לי לא פחות מכך וצריך לבדוק (כן, תחת NDA) היכן זה משתלב. כך לדוגמא פנו אליי בעבר להעביר קורס מעמיק ב-Docker. זה, לדוגמא, קורס שהתוכן שרלוונטי הוא אולי 10% כי בסופו של יום אם מתחילים לבנות בחברה קונטיינרים, משתמשים במערכת ניהול והרצת קונטיינרים כמו OpenShift או Kubernetes – כך שללמד איך לבנות קונטיינרים – כן, איך להריץ ואת החלקים הפנימיים ב-Docker – לא ממש, תשאירו את זה להדרכות על כלי הניהול.

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

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

במקרה חרום

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

נתחיל בעניין ה-DR/DRP. כן, אני מודע לכך שהנושא היה "שוס" ב-3 השנים האחרונות, ערימות של מסמכים נכתבו על הנושא פנימית וחיצונית בחברות שונות בארץ ובעולם וכמובן שחברות רבות רכשו חבילות תוכנה/שרותים ורכשו ציוד שיושב באיזו שהיא חווה (או באחד מהעננים הציבוריים) והמערכת מסתנכרנת תדיר בין ישראל לבין המיקום השני. הפתרון הזה הוא פתרון מעולה כאשר חברה נותנת שרותים לקהל לקוחותיה שנמצאים מחוץ לחברה. במקרים כאלו, התשתית המרוחקת (לאחר שינוי DNS) תתן שרותים וכשהתשתית הישראלית תחזור לפעילות, הנתונים יסתנכרנו ארצה.

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

אין תקשורת. החוצה.

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

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

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

  • שימוש ב-DNS פנימי, 2 שרתי DNS שמסונכרנים ביניהם תדיר עם AD ו-DHCP. (סביר להניח שזה מצב קיים אצל הרוב, אבל יש כאלו שהעבירו את זה לענן. תתפלאו).
  • שרת מייל פנימי – נכון, אין אפשרות לקבל/לשלוח מיילים מחוץ לחברה אך במקרים רבים המיילים/יומנים הם פנימיים ולכן שרת מייל פנימי יוכל לבצע זאת. (מכיוון שאינני מומחה Exchange, כדאי לשאול את מיקרוסופט איך מסנכרנים שרת כזה ל-365 אחרי שהתקשורת חוזרת).
  • שרתים (VM) שעברו לענן – כדאי להקים אותם פנימית בחברה עם DB ו-Snapshot שמתעדכן תדיר, עם כתובות FQDN זהות פנימית לשרתי DNS שציינתי בנקודה הראשונה, כך ששירותים חיוניים יופעלו מהתשתית המקומית בהיעדר תקשורת החוצה.
  • גיבוי – לוודא היטב שיש גיבוי מקומי והוא תקין (כן, מומלץ להריץ Verify על הקלטות). תזכרו – אין תקשורת, אין DR מרוחק.

אני בטוח שבכל חברה נוספת יהיו נקודות נוספות ולכן מומלץ שהמנמ"ר/מנהל צוות IT ישב על הנושא מחר.

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

אנשי שיווק מול אנשי מקצוע

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

ואז שאלתי: איזה פתרון וירטואליזציה אתם הולכים להריץ? הם נקבו בשם מוצר. תשובתי: זה לא ירוץ.

זה כמובן שינה את מצב השיחה למטר שאלות: "מה פתאום שזה לא ירוץ?" "היו פה אנשי השיווק ואנשי מקצוע של אותו מוצר והתחייבו שזה ירוץ".

תשובתי: אם אדוני מעוניין, אשמח לחבר אותו ל-LAB אצלי, שם המוצר שבחרתם רץ, ואשמח להראות לאדוני שהמוצר שבחרו אינו עושה את אותם דברים עם הברזלים שיש לכם.

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

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

עוד דוגמא: חברה מסויימת פנתה אליי בקשר למוצר שהם משתמשים וכבדרך אגב אותו אדם שפנה אליי סיפר לי שגם להם יש שרתים כמו שרכשתי (X3550 M3 של IBM) והם בדיוק הולכים  לרכוש הרחבת זכרון ל-256 ג'יגהבייט. הסברתי לבחור משהו פשוט: אתה תרחיב זכרון, ותראה נחיתה של 40% בביצועים. הוא לא האמין, הנציג שמוכר לו את הזכרון לא סיפר לו כלום על כך, אז שלחתי לו מסמך של לנובו שמראה שבשרתים עם מעבדים המבוססים על פלטפורמה של Westmere או Sandy Bridge, ברגע שממלאים את הזכרון, מהירות הזכרון יורדת מ-1333 מגהרץ ל-800 מגהרץ. אז יהיה יותר RAM, אבל הגישה תהיה יותר איטית. עדיף להוסיף שרתים – וזה ההבדל בין מישהו מקצועי לאיש שיווק.

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

  1. הפתרון שלהם מתאים אולי לשנת 2000, לא לשנת 2018.
  2. אין שום גדילה אופקית בפתרונות שהציעו
  3. אין שום שרידות רצינית בפתרונות שהציעו
  4. אין שום עדכוני אבטחה בפתרונות שהציעו.
  5. ההשקעה הכספית הראשונית גבוהה.
  6. הפתרון שהצעתי לאותה חברה הוא פתרון מבוסס קונטיינרים בענן. לאותה חברה יש ספק ענן מועדף ובכל הקשור לתמחור – יש לפנות לאיש השיווק של אותו ספק ענן.

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

וכאן בעצם טמונה הבעיה עבור הלקוח המתעניין בפתרון: הוא לא יקבל את התמונה המלאה מפריסייל או מאלו שעושים Resell עבור פתרון (או מאלו שמכירים פתרון ישן ולא רלוונטי). האם יש פתרון חלופי שהוא זול יותר ונותן את אותה פונקציונאליות? מהן האלטרנטיבות?

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

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

מעבר ל-CI/CD בחברות גדולות

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

מנסיון אחר שלי עם חברה בינונית באותו נושא, דברים התקדמו בצורה מאוד יפה. בפגישה הראשונה הסברתי את נושא ה-CI/CD, בפגישה השניה דיברנו על טכנולוגיות שאתקין להם ועל מה שיש להם כרגע ואיך להעביר את הדברים, פגישה הבאה היתה תכנון ההתקנה ובמשך כמה ימים לאחר מכן ההתקנה בוצעה, לאחר מכן בוצעה המרה והטמעה של מס' טכנולוגיות שהם משתמשים ולאחר מכן היתה הדגמה של איך הדברים יעבדו. בפגישות הבאות היתה הדרכה כיצד לעבוד עם הכלים החדשים, כיצד הדברים רצים "מאחורי הקלעים" ומה ניתן לקבל מהכלים ולבסוף הדרכות כיצד כל מפתח יכול וצריך לעבוד מעתה. סה"כ זמן הפרויקט: חודשיים (2-3 פעמים בשבוע). טיפ לחבריי הפרילאנסרים – מומלץ לחשוב על מחיר שעה במקום מחיר פרויקט. זה היה הרבה יותר ממה שקבענו.

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

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

  1. לבחור צוות שיעבור ל-CI/CD מתוך כל הצוותים שיש בחברה. כדאי שבצוות יהיו אנשים עם מוטביציה ועם ראש פתוח. בלי זה – המעבר יכשל, מבטיח לכם.
  2. להעדיף כלים מבוססי קוד פתוח או פתרונות מסחריים מבוססי קוד פתוח. כלים קנייניים הם מקור לצרות בעולם ה-CI/CD שמתפתח בקצב מהיר. לעומת זאת, כלים בקוד פתוח צריכים בד"כ הרצה של פקודת YUM או APT כדי לעדכן.
  3. האם בהזדמנות זו מכניסים פתרון קונטיינרים? (אפשר לבצע CI/CD ללא קונטיינרים) – אם כן, כדאי להחליט אם הולכים על פתרון מסחרי של Kubernetes (כמו CAAS של SuSE) או על OpenShift של רד-האט שהוא גם מבוסס Kubernetes אבל נותן הרבה הרבה יותר יכולות. (ישנם כמובן גם פתרונות אחרים אבל הם לא עונים לצרכים של Enterprise).
  4. פיתוח כ-Multi Platform – חשוב במיוחד לבנקים, חברות ביטוח וחברות פיננסיות. זה נחמד וטוב לפתח ל-Windows אבל אפשר בעזרת עבודה די קצרה לעבור ל-Multi Platform. עובדים ב-JAVA? מצוין, אפשר גם עם לינוקס, צריך בסה"כ לשנות מספר סקריפטים (אם כתבתם) כדי לעבוד בלינוקס. עובדים עם Dot Net? תכירו את Dot Net Core שמאפשר לכם עבודה עם Windows ולינוקס. היתרון של עבודה עם לינוקס הוא שמגוון רחב של כלים יהיה זמין לכם (במיוחד אם אתם עובדים עם קונטיינרים).
  5. טסטים טסטים טסטים … יש עדיין מקומות שמעסיקים אנשי QA. ברוב המקומות לעומת זאת, כבר אין חיה כזו מהסיבה הפשוטה שהיום פשוט כותבים טסטים שרצים במערכת כמו Jenkins המבצעים בדיקות Unit testing ועוד מספר סוגי טסטים על מנת לוודא שמה שמפותח – הוא יציב ועובד.

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

ועוד משהו אחד שרבים לא יאהבו שאני כותב זאת: החיה הזו בשם "איש Devops" זו המצאה שגויה של אנשים שלא מבינים מה זה Devops. הבה נסתכל על משהו פשוט בחברה גדולה: החברה מחליפה תוכנת גיבוי, תוכנת Code Repository, אולי כלי אוטומציה ועוד מספר דברים. האם אותה חברה צריכה פתאום שכיר נוסף? לא, כי צוות ה-IT אמור לדעת לתמוך בכלים. אפשר לקרוא למישהו מבחוץ שילמד ויתרגל את הצוות, אבל הצוות יכול בהחלט להמשיך ולתחזק את אותם כלים. אדרבא, הן אנשי ה-IT והן צוותי הפיתוח צריכים להכיר את הכלים (ברמות מסויימות כמובן, ה-IT ברמה של Sysadmin והשאר ברמה של Usage).

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

כשצריכים סטורג' סופר-מהיר (חלק ראשון)

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

קצת מאחורי הקלעים של בלוג זה: יש לא מעט פוסטים שאני כותב ולא מעלה לבלוג זה מהסיבה המקורית של "לא לעצבן". במקרים מסוימים התברר לי בדיעבד שצדקתי ובמקרים מסויימים אני מצטער שלא פרסמתי. אחד הפוסטים שכתבתי 4 פעמים ולא פרסמתי הוא "מדוע לא כדאי לרכוש סטורג' מבוסס AFA (כלומר All Flash Array)" – וזו היתה טעות מצידי, למרות שפרסום פוסט כזה היה בהחלט מעצבן אינטגרטורים, משווקים ואני סטורג' למיניהם בחברות שונות.

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

עכשיו אסביר.

רוב הסטורג'ים AFA הם פחות או יותר "גלגול" של הסטורג'ים מבוססי דיסקים מכניים. במקרים רבים עם כל היוקרה של AFA, אתם מקבלים SSD בחיבורי SAS/SAS2 או SATA Enterprise (שם נחמד ל-SATA רגיל רק עם "יוקרה"), לאו דווקא דיסקים SSD בחיבור NVME וגם אלו עם חיבור ה-NVME – יתנו בהחלט ביצועים יותר גבוהים מדיסקים מכניים, אבל ה-Latency יהיה עדיין גבוה בהשוואה לדיסקים NVME שיושבים בתוך השרת פיזית. זו לא דעה, זו עובדה – קחו 2 דיסקים NVME והגדירו אותם לדוגמא כ-RAID-0 בשרת, עשו את העבודות שאתם רוצים לבדוק ואחר כך קחו זוג דיסקים SSD NVME במכונה אחרת והגדירו שיתוף כמו iSCSI או CIFS או NFS. לא חשוב איזו רשת יש לכם (10/25/50/100 ג'יגה), Ethernet או Infiniband – הביצועים יהיו גבוהים אבל ה-Latency יהיה גבוה. פתרונות כאלו יכולים להיות מעולים לאלו שרוצים מהירות גבוהה יותר מדיסקים מכניים, אבל הם לא הביצועים הכי גבוהים שניתן להשיג, ומכיוון ש-AFA עולה מאוד יקר, ההמלצה שלי לחברים ולעסקים שמשוחחים איתי – היתה להמתין, לא לרכוש עדיין.

הביצועים הכי גבוהים שמאוד רצויים אצל חברות פיננסיות, AI/ML, HFT ולכל ארגון גודל שמוכן לשלם בתמורה לביצועים מקסימליים – הם ביצועים ששווים לדיסקים SSD NVME (כמו ה-XPoint של אינטל/מיקרון או Z-SSD של סמסונג) שיושבים מקומית בתוך השרתים. זיכרו: דיסק NVME (בקרוב יהיו גם דיסקים מכניים עם NVME, אגב) לא מצריך איזה בקר שיושב באמצע והוא מדבר ישירות ל-CPU ולזכרון המחשב ולכן דיסקים בטכנולוגיות כמו XPoint או Z-SSD מצטיינים ב-Latency נמוך וביצועים שנמוכים אך במעט מזכרון RAM שיושב במחשב. ב-AFA שנמכרים כיום, יש לנו כל מיני פרוטוקולים שמגדילים את ה-Latency, החל מ-iSCSI, המשך ב-NFS וכלה ב-CIFS, כך שהדיסקים יושבים בסטורג' היוקרתי, יש צורך באחד מהפרוטוקולים הנ"ל כדי להעביר DATA דו צדדית בין השרתים לסטורג'.

כאן נכנס לתמונה ה-NVMEoF שכתבתי עליו לפני 3 חודשים, ועם NVMEoF ה-Latency יורד לרמה של דיסקים SSD NVME מקומיים, כך שפעולות התחלת קריאה/כתיבה או כל פעילות אחרת נעשית ב-Latency מאוד נמוך.

איך זה מבוצע? כפי שציינתי באותו פוסט – עם RDMA, כלומר עם אותו פרוטוקול ותיק, ידוע ומאוד אמין ובמקרים רבים זה נעשה על מעבד יעודי שנמצא בכרטיסי הרשת (בגלל זה כרטיסי Mellanox מעולים לארכיטקטורה כזו הן בשרתים והן בסטורג') ואת עניין ה-NVMEoF לא תמצאו ברוב הסטורג'ים AFA. רק בשנה האחרונה חברות ישראליות כמו E8 וכמובן Kaminario (כן, אנחנו "מעצמה" בתחום הסטורג'… טוב, לפחות בפיתוח 🙂 ) וחברות כמו Toshiba, Pure Storage ו-Lenovo (וכמובן הגדולים) מתחילים להציע פתרונות כאלו. אלו שרכשו סטורג' AFA יוכלו (תלוי בחברה) אולי לשדרג ל-NVME-oF אבל גם אז – יהיה צורך להחליף כרטיסים בשרתים וציודים "באמצע" בחלק גדול מהמקרים.

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

רכישת/מכירת שרתים יד שניה, פוסט המשך

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

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

מס' אנשים תלו (ותולים) תקוות שחברות אחרות ירכשו את השרתים שלהם, אך האמת הדי פשוטה היא שרוב החברות בארץ פשוט לא רוכשות שרתים יד שניה (למעט כמובן חברות סוחרים כמו All Trade ואחרים) מהסיבה הפשוטה: חידוש אחריות ל-3 שנים הכוללת הגעת טכנאי בזמן SLA  של 4 שעות – יהיה יקר בהרבה ממחיר רכישת השרת. כך לדוגמא, אם רכשתם שרת יד שניה ב-1500 שקל, עלות השרות שציינתי לעיל תעלה בסביבות 6000-10000 שקל, בשעה שרכישת שרת חדש עם הוספה של תמיכת SLA ל-4 שעות תעלה הרבה פחות בהשוואה לרכישת השרות לשרת יד שניה, כך שכל חברה שאפילו תחשוב על רכישת יד שניה ותרצה SLA כזה, תרד מרכישת שרת יד שניה.

מה לגבי ציודים שבשרתים? אז כך:

  • מקלות זכרון בגודל 1,2,4 ג'יגהבייט – אין להם בד"כ דרישה בשוק, כך שמי שרוצה למכור זכרונות ECC יכול לנסות את מזלו אולי ב-eBay. הדרישה בשוק בד"כ היא למקלות זכרון בגודל 8 ג'יגה ומעלה עם תיוג PC3 10300 או PC3 12800. גם עם מקלות אלו אין הרבה "בשר" מבחינת כסף להרוויח הואיל ורוב המוכרים (שוב, למעט חברות שזה מה שהן מציעות) פשוט לא נותנים שום אחריות לזכרונות, ולכן לדוגמא מקלות זכרון של 8 ג'יגה שווים בערך 20-40 שקל פר חתיכה (בסביבות ה-50-60 לזכרון PC3 10300 בהנחה שמדובר ב-DDR3 ECC).
  • דיסקים קשיחים – לא מומלץ לשום חברה שמעוניינת למכור את הציוד, למכור או לתת את הדיסקים הקשיחים עקב עניינים של אבטחת מידע. השרת מבחינתכם "מת"? העבירו את הדיסקים לגריטה. דיסקים SSD – לא מומלץ לרכוש יד שניה מכיוון שכמות הכתיבה עליהם מוגבלת ודיסקים SSD יד שניה בד"כ אינם כוללים בקרים מורכבים כך שסביר להניח שה-SSD ימות עוד לפני שתימלא לו שנה לאחר רכישה מיד שניה.
  • מעבדים – מאוד תלוי בדגם השרת. שרתים כמו Gen9 של HP (או R730 של Dell או M5 של לנובו) יכולים לקבל מעבדי Xeon E5 v4 כשדרוג במקום E5 v3 (כל מה שצריך זה לשדרג BIOS לגירסה האחרונה לפני החלפת מעבדים), ולכן גם כאן, מי שרוצה לרכוש שרת יד שניה, עדיף שירכוש את המעבד הכי "נמוך" שאפשר וישדרג ברכישת מעבדים ב-eBay. למוכרים – זו עיסקת חבילה ובקטע הזה לא תקבלו הרבה גם על הדגמים עם הכי הרבה ליבות.

מה לגבי מחירים? הפופולריים ביותר אלו הם שרתי 1U ו-2U מה-5 שנים האחרונות (אלו שלפני כן נמכרים במחירים של 3 ספרות). כך לדוגמא שרת Gen8 של HP עם 192 ג'יגהבייט זכרון ועם מעבדים בעלי 8 או 10 ליבות נמכרים במחירים של 1000-1500 שקל (ה-1500 זה אם יש דיסקים חדשים). Gen7 של HP נמכרים בסביבות ה-600-900 שקל עם 208 ג'יגהבייט זכרון לדוגמא, כך שכמו שאתם רואים – הרבה כסף אי אפשר לעשות מזה.

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

סוויצ'ים, UPS – גם כאן, המחירים נעים סביב ה-3 ספרות. UPS לדוגמא לא שווה הרבה אחרי 6-9 שנים של שימוש מכיוון שיש צורך להחליף סוללות פנימיות (והן יקרות!). סוויצ'ים לעומת זאת, חברות רבות נפטרות מהמתגים במהירות 1 ג'יגהביט לטובת מתגים במהירות 10 ג'יגה ומטה, כך שגם כאן המוכר לא יעשה מזה הרבה כסף והרוכשים הפרטיים יכולים אולי למצוא הזדמנויות טובות לשדרג LAB או להוסיף מתג לדברים/פרוייקטים צדדיים.

אז מדוע חברות כמו All Trade מוכרת במחירים כאלו גבוהים שרתים יד שניה? הסיבה פשוטה: הם חייבים להחזיק מלאי והם מוכרים שרות, כך שאם לדוגמא הם רכשו מלאי של 10 שרתי Gen8, הם יוכלו למכור רק 5-7 כאלו כי הם חייבים להחזיק שרתים אחרים כמלאי להחלפה בעת תקלות חרום כחלק מהשרות שהם מוכרים.

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