על עסקים קטנים ומעבר לעננים. כדאי?

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

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

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

אתן דוגמא: אתם קוראים את הבלוג הזה, שהוא חלק ממספר בלוגים שעבדכם הנאמן כותב. כל הבלוגים רוצים בשרת וירטואלי עצמאי שהיה נמצא בחברת Digital Ocean ועתה הוא נמצא באמזון תחת Amazon Lightsail. האתר עצמו, וה-Database שלו ושרת ה-Web – כולם מותקנים על שרת וירטואלי יחיד שעולה לי בחודש 40$. זה מה שאני משלם בכל חודש, בין אם נכנסו 3 גולשים או 2000 גולשים ביום, מכיוון שכמות ה-DATA היוצאת מהשרת אינה עוברת את כמות ה-DATA המוקצית עבורי בחבילה. יש חבילות כמובן יקרות יותר ויש זולות יותר, בהתאם לצרכי הלקוח והחברות המציעות שרותים אלו ושאני יכול להמליץ עליהן (כולל Amazon Lightsail שהזכרתי לעיל) הן Digital Ocean ו-Linode ויש כמובן חברות נוספות בהתאם להמלצות שאתם יכולים לקבל מאחרים אולם אלו ההצעות הפופולריות ורציניות.

כמובן שגם ספקי הענן הציבורי מציעים מוצרים כמו קונטיינרים, מכונות וירטואליות וכו', אולם שם התעריפים שונים מההצעות לעיל. לדוגמא: אם באמזון ניקח מכונה ב-EC2 (לא בחבילת ה-Lightsail) כמו המכונה שיש לי, המחיר יהיה $43.63 עד לתעבורה של 100 ג'יגהבייט, אולם אם מחר אפרסם פוסט שיהפך לויראלי, אני אגיע בקלות גם לתשלום של 50-100$ לחודש. אם נבנה ב-Google Cloud את אותו מפרט של מכונה (מכונה מבוססת לינוקס, 2 ליבות, 4 ג'יגהביייט זכרון, 40 ג'יגה דיסק SSD ו-100 ג'יגהבייט תעבורה החוצה) נגיע ל-$61.22. ב-Azure אותה חבילה תעלה לנו $48.42. כך יוצא שהלקוח משלם יותר על פחות. (אגב, ב-Azure תצטרכו לשלם יותר כי הדיסק מוגדר "זמני", ודיסק מבוסס רשת עולה יותר). הערה: המחירים יכולים להיות אצל חלק מהספקים זולים יותר – אם אתם משלמים מראש שנה או שנתיים.

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

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

שלח לחמך על פני המים

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

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

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

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

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

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

תודה,
חץ בן חמו
[email protected]

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

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

הבעיה בד"כ היא במחשבה או בתכנון מעבר. אם לדוגמא יש לכם פתרון וירטואליזציה של VMWare ותרצו ליישם את VSAN, ההשקעה תהיה גבוהה. על כל שרת ממוצע תצטרכו לשלם 5000$ וזה עוד לפני הדיסקים והתצורה היחודית שיש צורך ב-VSAN (על כל 2 דיסקים מכניים או SSD בינוניים, דיסק SSD מהיר או Mixed Intense או ביחד). במקרים אחרים יש פתרונות HyperConverged כמו Nutanix, Simplivity וכו' שבסופו של דבר מחייבות אותך לרכוש כמעט הכל מחדש (אם כי כמובן אפשר במקרים מסויימים להשמיש שרתים שונים, תלוי מה ה"גיל" שלהם).

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

גם במקרים של פתרון קוד סגור או קוד פתוח, נצטרך דבר ראשון להעיף מבט על השרתים שיש לנו. רוב השרתים שמריצים פתרון וירטואליזציה כלשהי, אנחנו נראה שרוב התושבות בשרתים – פנויים (וכמובן שיצרני השרתים מנצלים זאת על מנת לתת פתרון Backplane חלקי, כך שגם אם תרצה למלא 24 דיסקים 2.5" בשרת, לא תוכל אלא אם תרכוש עוד 2 backplanes עם החיבורים. בד"כ ה-backplane שאתה מקבל בשרת יכול לחבר מקסימום 8 דיסקים), כלומר שמבחינת השקעה בברזלים אם נרצה פתרון סטורג' מבוזר, נצטרך לרכוש פתרונות backplane לשרתים, וכמובן דיסקים מכניים, SSD (מסוגים שונים – read intense או mixed Intese – תלוי בתקציב ובמה שאתם רוצים לעשות). נקודה נוספת שנצטרך לקחת בחשבון זו הרחבת זכרון. אין צורך "להשתולל", בד"כ לפתרון SDS נצטרך 16 או 32 ג'יגהבייט זכרון. הנקודה האחרונה שיכולה להיות קצת יקרה היא רשת – אנחנו נצטרך בכל מכונה חיבור של 10 ג'יגהביט לתקשורת פנימית בין ה-VM שמריצים את פתרון ה-SDS.

את פתרון ה-SDS נריץ כ-VM בתוך כל מכונה, אולם אנחנו צריכים קודם כל להחליט איפה בעצם לאכסן את הנתונים, באלו דיסקים. דיסקים בגודל 2.5" לדוגמא יהיו קצת בעייתיים כי כמות ה-DATA שאפשר לאכסן בהם היא לא גדולה אך המחיר הוא די גבוה. אם לדוגמא נדמיין שאנחנו מכניסים 20 דיסקים של 1 טרה בגודל 2.5", ועוד 2 דיסקים SSD שישמשו כ-Cache, אז נקבל "ברוטו" 20 ג'יגהבייט. אולם אם נחליף את הפאנל הקדמי (כולל הלוח המוצמד) לגירסת LFF (כלומר Large Form Factor), אז נוכל להכניס 12 דיסקים של 4 טרהבייט, אז נקבל "ברוטו" 48 טרהבייט ומחירי הדיסקים הללו יהיו יותר זולים מ-20 דיסקים של 2.5" (בד"כ נוכל להכניס 2 דיסקים SSD ל-Cache מאחורי השרת). מבחינת הוירטואליזיציה, אין לנו צורך להתקין אותה (בגירסת vSphere) על הדיסקים המקומיים, 2 כרטיסוני מיקרו SD יוכלו לעשות את העבודה. (בין כה כמות הכתיבה אליהן מאוד קטנה ואם כרטיס נופל, כרטיס שני "לוקח פיקוד") כך שאנחנו יכולים בסופו של דבר להצמיד את כרטיס ה-RAID ל-VM עצמו ולקבל מקסימום ביצועים.

מבחינת תוכנות SDS בקוד פתוח, ישנו Ceph וישנו GlusterFS. התוכנות הנ"ל זמינות הן כקוד פתוח והן כמוצר מסחרי עם תמיכה מסביב לשעון. במקרים כמו שאני מתאר, אני ממליץ דווקא ללכת על GlusterFS. הסיבה לכך היא פשוטה: Ceph היא מערכת SDS מעולה, אבל היא פשוט לא בנויה לעבוד עם משאבים מצומצמים שאותם נקדיש ל-SDS ב-VM. כעקרון, Ceph דורשת שרתים יעודיים שיריצו רק את Ceph ולכן היא לא מתאימה למשימה.

כעת, כל מה שנותן לעשות זה לחבר את הדברים. בכל מכונה נקים VM עם הפצת לינוקס כלשהי (GlusterFS קיים לכל הפצת לינוקס שתרצו), להגדיר אם אנחנו מעוניינים בשכפול והפצת קבצים (אפשר לראות את האפשרויות כאן, פוסט מורחב על הנושא יהיה בקרוב) ומאותו פתרון SDS נוכל להגדיר שיתופים איך שנרצה: CIFS, NFS, iSCSI ועוד. כך נוכל להנות גם מפתרון SDS יציב, שיכול לעמוד במצב ששרת או 2 נופלים (תלוי איך הוגדר GlusterFS, בד"כ הגדרות ברירת מחדל יתנו HA כך שאם מכונה נופלת, השניה לוקחת פיקוד), גם נוכל להרחיב את הפתרון בהמשך (הוספת דיסקים, JBOD, מכונות נוספות) והכי חשוב – נוכל להנות מפתרון שנותן גם ביצועים מהירים וגם התחזוקה עצמה תהיה די מינימלית.

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

על עלויות תמיכה של מוצרי קוד פתוח

עולם הקוד פתוח כיום נותן מגוון מוצרים הקשורים לתשתיות שונות, Software Defined, וירטואליזציה ועוד, ובמקרים רבים חברות רבות מעוניינות באותם מוצרי פרויקטים בקוד פתוח, ומדוע לא? לבצע Download, להתקין ולעבוד עם זה, בלי עלויות של רשיונות פר שנה, פר שרת, פר חיבור ופר השד-יודע-מה…

להלן מס' דוגמאות של מוצרים:

  • GlusterFS
  • Ceph
  • oVirt
  • OpenStack
  • ManageIQ
  • Kubernetes
  • OpenShift Origin

2 המוצרים הראשונים הם Software Defined Storage, השלישי והרביעי הם מוצרי וירטואליזציה, והמוצר החמישי הוא מוצר לניהול מקיף של תשתיות וירטואליזציה ועוד – מקומית ובענן ו-2 האחרונים הם לניהול קונטיינרים לכל המוצרים הללו נלווית עלות של 0 שקלים כלומר אתה יכול להיכנס לאתרים, להוריד ולהשתמש.

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

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

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

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

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

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

דעה: הפרויקט בוטל/נפל/מעוכב/סטטוס-לא-ידוע

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

הסיטואציה די ידועה: טכנולוגיה חדשה נכנסה לשוק בשנה שנתיים האחרונות (זה לא משנה אם מדובר בקונטיינרים, Application Servers חדשים, Hyper Converge, SDN ושלל פתרונות חדשים אחרים) והנהלות חברות בינוניות וגדולות מעוניינות להכניס את אחת מהטכנולוגיות לחברה. הם פונים לחברת אינטגרציה שהם מכירים ומתחילים לדון בנושא ומבקשים לקבל מידע גם על פתרונות מתחרים (לפעמים ישירות מחברות משווקות או מחברות אינטגרציה אחרות), מידע כמה הפתרון יציב, עלויות רשיון, עלויות הטמעה, TCO, ROI ושלל מספרים ונתונים אחרים. לאחר זמן מה, ההנהלה ואנשים טכניים של החברה מתכנסים לחדר ישיבות והם מקבלים מנציגים חיצוניים שונים הדגמות והסברים על הפתרונות. בד"כ לאחר זמן מה החברה מחליטה ללכת על פתרון מסוים ואותה חברת אינטגרציה שנבחרת מתבקשת להקים PoC (כלומר Proof of Concept) בתשתיות הפנימיות של החברה על מנת להתרשם ו"לשחק" עם הפתרון.

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

להלן מס' דוגמאות מדוע מתרחשת הנפילה:

  • אי תאימות: לפני ה-PoC (או ה-Pilot) אף אחד לא טרח להציג מה הולך לעבור ל-Pilot ועצם ההמרה עצמה מצריכה כמות שעות גדולה כדי להמיר את האפליקציה לעבוד בסביבה החדשה. אני מכיר לדוגמא מקרה שבו חברה מסויימת רצתה להריץ אפליקציה ב-JAVA בקונטיינר. אין שום בעיה לבצע זאת, רק שהאפליקציה בכלל כתובה ב-++C והלקוח מתעקש שהאפליקציה תהיה אפליקציית JAVA, כלומר מישהו צריך לבצע porting של הקוד מ-++C ל-JAVA, וכל מי שמכיר את השפות יודע שמדובר ברוב המקרים במאות אם לא אלפי שעות עבודה שכלל לא סוכמו מבחינת מי ימיר והעלויות הנלוות. מקרה אחר שאני מכיר הוא שאפליקציה רצה בכלל תחת DOS ומה לעשות.. קונטיינרים לא מריצים DOS (זה אפשרי אבל די מורכב, במיוחד אם האפליקציה מעוניינת ליצור קשר עם .. מודם חיצוני עבור קופות רושמות בודדות. כן, שמעתי על בקשה כזו)
  • התנגדות לא רשמית מהצוותים: ההנהלה מעוניינת בפרויקט כולל מחלקת IT, אבל כשזה מגיע למפתחים ולשאר צוותים שצריכים להשתתף בפרויקט, אז פתאום זה-לא-דחוף, "אין זמן", יש דברים אחרים בראש למנהלי צוותים ובקיצור – יורדים מכל העניין, רק לא רשמית. (כן, אני מכיר 2 חברות ששילמו מקדמה ועד היום לא בוצע מאומה).
  • עוד דבר שקשור הוא הקפאה של הדברים, לעיתים עוד ברמת ה-PoC. התקבלה החלטה לצאת ל-PoC ואז התקבלה החלטה הפוכה. מדוע? אף אחד לא אומר. את זה אפשר לראות במיוחד במוסדות גדולים כמו חברות ממשלתיות. הדבר הכי לא נעים זה לחברות האינטגרציה הגדולות ששכרו אנשים חיצוניים כדי לעמוד ב-PoC ובפרויקט ועכשיו הפרויקט קפוא.

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

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

לכן, אם רוצים לבצע PoC או פיילוט, כדאי, לעניות דעתי, לוודא את הדברים הבאים:

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

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

מוגש כחומר למחשבה.

חושבים לשדרג ציוד? תתכוננו לעליית מחירים

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

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

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

ונחזור לטכנולוגיה.

כיום כל שרת, סוויצ', סטורג' מורכב (וחלקית מיוצר) בסין. בכל ציוד כזה יש עשרות, מאות ולפעמים אלפי רכיבים שנוצרים במדינות אחרות שאינן סין, אך אותם שבבים, לוחות, קבלים וכו' וכו' מגיעים אל סין אל אחת מהיצרניות המחשבים/שרתים/חומרה הגדולות (כמו Quanta, Pegasus, FoxConn, Lotes ואחרים) ושם הדברים מורכבים ברמות שונות (רוב ה-PCB באותם ציודים לדוגמא מודפס בסין ועליו מורכבים השבבים וכו'), נארז ונשלח לארה"ב או למדינות אחרות בהתאם לבקשת הלקוח.

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

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

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

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

חג שמח 🙂

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

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

בד"כ ארגונים מעוניינים בהחלפת מערכת ניטור בגלל אחת הנסיבות הבאות:

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

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

  • פתרון SAAS – אתה נרשם לחברה המציעה את השרות, מתקין Agents בשרתים שלך ובד"כ בתוך יום יומיים המערכת שלך מנוטרת מבפנים החוצה (ה-Agents שולחים מידע החוצה), יש לך תמיכה, והתשלום הוא פר חבילות סנסורים ("חיישבנים"), SLA של תמיכה וכו'.
  • פתרון קנייני – אתה מתקין שרת כ-VM, מתקין Agents וגם כאן תוך יום יומיים המערכת פחות או יותר חיה, רצה ומציגה את הגרפים וההתראות שאתה צריך. גם כאן התשלום הוא פר חבילות סנסורים, סוג SLA וכו'. הפתרון הוא פתרון קוד סגור.
  • פתרון קוד פתוח – אתה מקים VM עם SQL כלשהו (MySQL) ואפליקציית הניטור, מתקין Agents ותוך יום יומיים של הגדרות וכו' – תקבל התראות. התשלום הוא אפסי למעט אם מישהו מבחוץ מקים לך את המערכת (ואז התשלום הוא על העבודת הקמה), או שאם אתה מעוניין – רוב החברות שמציעות פתרון קוד פתוח מציעות או פתרון משלים כקוד סגור עם תמיכה או פתרון תמיכה SLA למוצר הקוד פתוח.

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

  • פתרון SAAS. נשמע מעולה, השאלה האם אתה מעוניין לתת לגורם כלשהו לדעת כל דבר מה שעובר אצלך במערכת? (כמות מכונות, מצב מכונות, לאן נכנס ויוצא טראפיק וכו'). הבעיה השניה עם SAAS זה שאתה לא יודע מה הם נוהלי האבטחה (אם יש, מעבר להודעת ה-PR שמופיעה באתר), מה קורה אם פורצים אל תשתית ה-SAAS של אותה חברה שמציעה את השרות, או מה קורה אם שרות ה-SAAS נופל כי התכנון היה גרוע.
    חסרון נוסף: האנשים הנוכחיים שלך אולי יכירו איך לכתוב לזה סקריפטים כדי להוסיף תמיכה בדברים, אבל ברוב המקרים לא תמצא אנשים שכירים חדשים שמכירים את הפתרונות הללו.
  • פתרון קנייני – קצת פחות חמור מ-SAAS, אולם רוב החברות דווקא מעדיפות שלא לרכוש פתרון קנייני בקוד סגור. גם כאן, עקומת הלמידה תחזור בכל פעם שיש לך מישהו חדש מכיוון שרוב האנשים לא מכירים כתיבות סקריפטים וכו' לתוכנות קנייניות.
  • פתרון קוד פתוח הוא דבר מעולה בכך שיש לך את הקוד ואתה יכול לעשות עם הדברים כרצונך. בנוסף, בתוכנות כמו Zabbix, Cacti, Icinga וכו' תוכל למצוא פורומים וגם פרילאנסרים בארץ שנותנים שרות על כלים אלו.
    יחד עם זאת – חשוב לשים לב לאותיות הקטנות. תוכנות ניטור כמו OpenNMS זמינות כקוד פתוח, אולם הגירסה הפתוחה אינה יציבה ואין לה תמיכה מסחרית והגירסה המסחרים שבקוד פתוח כן זמינה עם תמיכה, אך המחיר הוא שנתי כפי שניתן לראות בלינק לעיל.

מתוך האפשרויות לעיל, אני ממליץ ללכת על פתרון מבוסס קוד פתוח. כאן, וכאן תוכלו למצוא מספר תוכנות בקוד פתוח. תוכנה כמו Cacti טובה לגרפים, אבל פחות טובה להתראות. תוכנה כמו Zabbix טובה לגרפים והתראות ויש לה תמיכה מעולה ב-Windows. תוכנה כמו Icinga (שהיא בעצם Fork של Nagios) היא תוכנה מעולה אך מורכבת מאוד ומתאימה לאלו שנטשו את Nagios אבל רוצים עדיין משהו מוכר. לאלו שמחפשים לעומת זאת מערכת ניטור אבל שנותנת הרבה הרבה יותר מידע מאחרים ולהשקיע המון במערכת (ובתמורה תקבל אפשרויות שאילתות מאוד עמוקות עם התממשקות לכל ממשק קיים כמעט) – אז Prometheus של חברת Sound Cloud יכולה להיות הכלי בשבילכם (אם כי אני לא רואה לזה חבילה מסחרית).

יהיה הפתרון אשר יהיה, אני ממליץ לחלק את העבודה ל-3 חלקים (זאת כמובן לאחר שבחרתם תוכנת ניטור):

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

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

בהצלחה

ההבדל בין קוד פתוח למוצר מסחרי מבוסס קוד פתוח

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

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

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

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

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

הנקודה השניה החשובה היא כמאמר הפתגם "יותר משהעגל רוצה לינוק, הפרה רוצה להניק". כל יצרני השרתים מוכרים את המוצרים המסחריים מבוססי הקוד הפתוח כולל תמיכה מלאה 24/7, כלומר אם מחר תרצה לרכוש שרתים מ-HPE או DELL או LENOVO ותרצה לרכוש פתרון אחסון SDS, פתרון קונטיינרים כמו OpenShift המסחרי, פתרון סטורג' Scale Out כמו Ceph או Gluster או מוצר ענק כמו SAP HANA – הם ימכרו ויתמכו בך כולל SLA מלא ואז אינך תלוי באם חץ בן חמו זמין או אם יש מישהו אחר שיתן לך תמיכה. אתה מקבל תמיכה מלאה בדיוק כמו שאתה מקבל תמיכה לברזלים שלך. ליצרן יש תמיכת "גב אל גב" עם יצרן התוכנה. דוגמא פשוטה לחובבי מיקרוסופט ו-Azure – אם יש לך הפצת לינוקס מותקנת על VM ב-Azure ויש לך בעיה, אתה פונה לתמיכת Azure והם מנסים לפתור. לא מצליחים? יש להם קו ישיר ליצרן ההפצה שיעזור להם ולך לפתור את הבעיה.

לסיכום: כמו שאתה קונה מתגי תקשורת של Cisco, כמו שאתה קונה מערכת מורכבת כמו JIRA, כך גם עם מוצרים מסחריים מבוססי קוד פתוח. החברה שמוכרת לך את זה, בין אם יצרן התוכנה או יצרן הברזלים – אתה מקבל שרות מלא הכולל התקנה, הטמעה, תמיכה וכו' לפי SLA שנקבע בין הצדדים. זה ש-HP מעדיפים למכור סטורג' 3PAR שלהם או DELL מוכרים סטורג' כמו UNITY, לא אומר שזה הדבר היחיד שהם מוכרים. יש להם עוד מוצרים, אתה פשוט צריך לבקש את זה במסגרת ההזמנה ואין שום הבדל בתמיכה/התקנה/הטמעה בין אם קנית לדוגמא סטורג' קנייני או פתרון סטורג' SDS, בין אם קנית פתרון מבוסס קוד פתוח או פתרון סגור לחלוטין. יש כמובן את הפרויקטים בקוד פתוח שהם אינם מוצר מסחרי ואתה חוסך את הקניה איתם, אבל שם המסלול הוא שונה והוא יותר קשור בחברות ועצמאים פה בארץ שיכולים לתת לך שרות על כך, ולכן כדאי להבדיל בין הדברים.

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

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

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

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

נעבור חלק חלק, נתחיל בסטורג':

  • במכרז מבקשים הצעת מחיר ל-Unity של Dell/EMC, עם שילוב של דיסקים מכניים (16), דיסקים SSD בגודל 400 ג'יגה (10), ו-3 דיסקים (Fast Cache) ושאר הציודים שצריך. זה טוב ויפה אולם יש כאן לעניות דעתי מספר נקודות שכדאי לחשוב עליהן:
    • פתרון כזה אינו עונה לצרכי מכונות VM שמייצרים כתיבה מרובה. נכון, הסטורג' "יחביא" את האיטיות בעזרת ה-Fast Cache (פלוס עוד כמה טריקים) אבל בשלב מסוים האיטיות תחל לצוץ.
    • הדיסקים SSD  הם איטיים (ולא חשוב אם בפנים הם MLC או eMLC) ובמקרים של Enterprise, דווקא ה-SATA SSD מבצעים עבודה הרבה יותר טובה (תסתכלו בהצעות של כל היצרני SSD, תראו שבד"כ מציעים SATA או U.2/PCIe/NVME, בקושי SAS) ולכן חשוב לזכור – זה לא משנה אם הדיסקים נמצאים בתוך סטורג' קנייני או בשרת: SSD קטנים יותר איטיים מהגדולים ולפעמים בפערים מאוד משמעותיים. לדוגמא: אם רוצים לרכוש 4 דיסקים של 400 ג'יגה, עדיף 2 דיסקים של 800 ג'יגה.
    • במקום להיצמד למותג קנייני, מוציא המכרז יכול לבקש פתרון חומרה ותוכנה שהם Software Defined Storage עם כל הפונקציות שהוא מצפה לקבל בסטורג' קנייני וגם להכתיב כמות מינימום ומקסימום IOPS שפתרון ה-SDS יצטרך לעמוד בו. חשוב לזכור: אם לשם הדוגמא אתה מוציא מכרז ואני זה שצריך לעמוד בו, ואני הסכמתי למפרט שלך, אני צריך לעמוד בביצועים במפרט, ואם זה עולה לי יותר, אותך זה לא מעניין, אני צריך לתת את מה שמובטח וזהו, ולכן במכרזים כאלו כדאי לנצל את הסיטואציה ולקחת SDS, מה עוד שתמיד ניתן להשתמש ב-SDS בעתיד לצרכי פתרונות אחרים בתחום הסטורג', כך שההשקעה משתלמת יותר מאשר סטורג' קנייני (אם לדוגמא עברתם לסטורג' אחר, אתה לא יכול להעביר את הדיסקים הישנים יותר).

מכאן נמשיך לשרתים:

מוציא המכרז מבקש 2 שרתי Dell R730:

  • ראשית, כדאי לבקש את דגם ה-XD, ההבדל במחיר הוא קטן (100-200 דולר, תלוי אצל מי קונים), ודגם ה-XD ניתן בהמשך להרחבות שונות שלא כל כך קיימים ב-R730 הרגיל.
  • לא מומלץ לקחת 32 ג'יגהבייט זכרון במקלות של 2 ג'יגהבייט (כלומר 16 מקלות) הואיל וכל נסיון הרחבת זכרון בעתיד מחייבת החלפת כל מקלות הזכרון ובמקרים רבים הזכרונות הללו ישארו "מיותמים", לכן מומלץ לרכוש את הזכרון עם מקלות של 4 או 8 ג'יגהבייט, בהתאם לגודל הסופי שרוצים.
  • 2 דיסקים של 300 ג'יגהבייט – חבל אפילו לרכוש אותם. אם (כפי שבמקרה זה) רוצים להריץ VMWare, עדיף לרכוש 2 מיקרו SD עם ה-Image מוטמע בהם ולהכניסם לתוך השרת, הואיל ו-ESXI כותב אליהם מעט מאוד והמודול מיקרו SD כולל שרידות (RAID-1). במקום ה-300 ג'יגה, אפשר לרכוש 2 דיסקים SSD בגודל של 500 ג'יגהבייט (מספיק Read Intense רגיל, לא צריך Mixed Intense) ואז להשתמש בהם כ-Read Cache בתוך vSphere, כך תוכנות רבות שרצות שוב ושוב ישתמשו ב-SSD המקומי כ-Cache לקריאה והדברים ירוצו החל מהפעם השניה יותר מהר מבלי להשקיע תקציב רציני.
  • כרטיסי רשתות: במקום לרכוש כרטיס Qlogic 57800 שנותן 2 כניסות 10 ג'יגהביט ו-2 כניסות 1 ג'יגהביט, כדאי לרכוש כרטיס אחד נוסף Intel X710 Quad Port – יוצא יותר זול עם אותה כמות פורטים (4 של 10, 4 של 1).

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

לסיכום: חברה גדולה או קטנה, רשות מקומית או אזורית או עיריה או משרד ממשלתי – כולם צריכים בסופו של דבר לעמוד במסגרת תקציב ואף חברה לא רוצה להרגיש פראיירית ולשלם יותר ממה שמקובל בשוק ובגלל זה כולם מוציאים מכרזים, על מנת לקבל את ההצעה הטובה ביותר. יחד עם זאת, אפשר לנצל את כל עניין המכרז כדי לקבל יותר מבלי לפרוץ מסגרות תקציב פנימיות. אחרי הכל – אתם לא קונים ברזלים ומחפשים אחר כך מי יתמוך בכם, אתם רוצים חבילה שכוללת הכל עם 24/7 ועם 4 שעות SLA, ואתם מקבלים זאת גם אם מדובר בטכנולוגיות חדשות שנותנות לכם יותר מסתם עוד הצעה שהיא Copy/Paste ממקום אחר.

קצת על עולם ה-NVMEoF וסטורג' חזקים

אם נסתכל היום בכל חברה בינונית וגדולה שיש לה כמה עשרות שרתים פיזיים ומעלה – בד"כ נמצא סטורג' קנייני כלשהו, בין אם זה NetApp, HPE, Dell/EMC, IBM. Hitachi ואחרים. הסיבה לכך היא די פשוטה: הפתרונות הללו נותנים ביצועים גבוהים וגם נותנים פתרונות לצרכים השונים, החל ב-LUN ש"מפורמט" ל-iSCSI (כשצריך),iSCSI, NFS, CIFS, Snapshots ועוד ועוד. הפתרונות הללו במקרים רבים היו יותר טובים מפתרונות Software defined storage בעבר בגלל מה שהיה מבחינת חומרה בתוך הסטורג' הקנייני, בין אם זה שימוש ב-NVRAM, בכרטיסי האצה, ב-SSD (שלא חושבו כחלק מכמות המקום הפנויה בסטורג', מה שנקרא גם Vault) – ובקיצור, שורת טכנולוגיות שמובנים בתוך הסטורג' שנותנים ביצועים נאותים שמתאימים לאותן חברות.

בשנים האחרונות ישנם פתרונות אחרים המבוססים על Software Defined Storage (בקיצור: SDS) המוטמעים כחלק מפתרון וירטואליזציה, פתרונות כמו VSAN של VMware, או Nutanix או Simplivity ואחרים. בפתרונות כאלו בכל שרת יש דיסקים שמשמשים לאותן מכונות VM שרצים בשרת והדיסקים גם משמשים לאחסון ושרידות של VM אחרים, כך שאם שרת פיזי נופל, ה-VM יופעל מחדש במכונה פיזית אחרת (מה שנקרא: HA) או שה-VM ממשיך לפעול מהעתק רצוף שרץ על מכונה אחרת (מה שנקרא Fault Tolerance או FT בקיצור). במקרים כמו של VSAN ניתן כמובן להגדיל את האחסון בכך שמוסיפים עוד שלישיית דיסקים (2 איטיים ואחד SSD מהיר) בכל פעם שמגדילים את האחסון, אם כי ההמלצה "בין השורות" היא שעדיף להוסיף שרת פיזי נוסף ולפזר את המכונות VM ביניהם כדי לקבל יותר IOPS. השיטה הזו טובה (וב-VMware ישראל נותנים לדוגמא את ערוץ 10 שעבר לעבוד כך), אך החסרון המשמעותי של השיטה הזו היא שזה לא תמיד עובד טוב. כך לדוגמא, אם מכונות VM צריכים SSD שהוא Mixed Intense, ה-VSAN לא תמיד ידע להעביר אותו למכונה אחרת שגם שם יש SSD שהוא Mixed Intense ובכך אנחנו עלולים לקבל ביצועים מופחתים, רק בגלל שה-DRS החליט להעביר את ה-VM בגלל עומסים (אני מכיר את זה אישית מה-LAB שלי).

כיום פתרונות ה-SDS תופסים יותר ויותר מקום של כבוד (לפחות בחו"ל), כאשר הלקוח בעצם צריך לרכוש את התוכנת SDS והוא מריץ את התוכנה על הברזלים שיש לו, כאשר אותם ברזלים הם שרתים מהיצרנים המובילים (Dell, Lenovo, HPE, SuperMicro, Cisco) ואותו הלקוח מקבל בעצם בחבילה את כל הפונקציות שהוא רגיל לקבל מיצרן סטורג' קנייני, כולל כל החיבורים שהוא צריך (FC, FCOE, Ethernet, Infiniband) ויש ל-SDS תמיכה והתממשקות לכל הפלטפורמות המובילות וגם לתוכנות גיבוי המובילות.

גם בפתרונות SDS וגם בפתרונות קנייניים, בד"כ הפתרונות מבוססים על דיסקים SSD בחיבורי SAS/SAS2/SATA או על דיסקים מכניים או שילוב שלהם (כאשר פתרון האחסון יודע להעביר נתונים שאינם נקראים תדיר לדיסקים המכניים ונתונים שנקראים/נכתבים תדיר ל-SSD, או במקרים אחרים שהמערכת מאפשרת ללקוח לבנות LUN או Share מ-SSD או מכני לפי צרכי הלקוח). אלו פתרונות טובים כאשר יש לנו עשרות שרתים עד מאות בודדות של שרתים פיזיים, כשהדרישה מבחינת ביצועי דיסק/סטורג' אינה כה גבוהה (כלומר שאפשר להסתדר עם IOPS של 5 ספרות נניח).

אבל מה קורה אם יש לנו מאות (ואולי יותר) של שרתים ואנחנו רוצים ביצועי דיסק מאוד גבוהים, בדיוק כמו ביצועים של דיסקים מקומיים? נסו לחשוב על בנקים ומוסדות פיננסיים גדולים שבשבילם כל מילישניה זה רווח או הפסד כספי? כאן נצטרך דברים הרבה יותר חזקים. יש כמובן פתרונות AFA (שזה All Flash Array) אבל הפתרונות האלו ו-Scale Out הם לצערי .. לא משהו.

בואו ננסה לדמיין משהו. דמיינו שצריך להקים פתרון מבוסס Flash בגודל 1 פטהבייט. סביר להניח שאתם מדמיינים ארון מלא בדיסקים, עם סוויצ' רציני מלמעלה (TOR או Top Of Rack).

מהדמיון נעבור למציאות, הביטו בתמונה הבאה (לחצו להגדלה):

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

בשרת ה-1U יש 36 מקומות למלבנים הללו, כך שבשרת 1U צנוע ניתן להכניס 576 טרהבייט, ובשרת 2U – כ-1152 טרהבייט, כלומר יותר מפטהבייט על שרת פיזי אחד!. הפתרון הזה שאתם רואים לעיל הוא הפתרון של סמסונג, לאינטל יש פתרון דומה (אם כי הקוביות קצת יותר מוארכות והם נקראים "סרגלים" – בתמונה משמאל ואינטל קוראת להם NGSFF). בפתרונות הללו אין שום בקרי RAID כלשהם (הכל מחובר דרך PCIe ומתגי PLX ישירות למעבד, כך שהביצועים מאוד גבוהים, בסביבות ה-3-4 ג'יגהבייט קריאה וכמעט 2 ג'יגהבייט כתיבה לשניה פר מקל).

וכאן אנחנו מתחילים להכיר את פתרון עם השם המפוצץ NVMEoF (ר"ת של NVME over Fiber, אם כי לא מדובר על Fiber Channel רגיל).

בוא נחשוב על חיבורים לשרת כזה. חיבור של 1 ג'יגהביט לא בא בחשבון וחיבור 10 ג'יגהביט "יחנק" עוד בפעילות של מקל יחיד! אנחנו צריכים פעילות של מס' מקלות NVME כדי לתת ביצועים סופר חזקים וסופר מהירים כדי שהמכונות שיחוברו לשרת כזה ירגישו כאילו הדיסק שהם מקבלים – הוא ממש מקומי, כלומר אנחנו צריכים חיבורים של 25,50,56 או 100 ג'יגהביט, כלומר או Ethernet או Infiniband.

מבחינת תעבורה מהירה, אנחנו צריכים לוותר על TCP/IP במהלך העברה של הנתונים (אך לא בזמן ה-Handshake הראשוני, בשביל זה עדיין אנחנו צריכים IPv4 או IPv6 ב-TCP/IP) ואז אנחנו עוברים לשימוש בטכנולוגיה שרבים מאיתנו מכירים… RDMA, זוכרים? היתרון הגדול עם RDMA הוא שהמעבד באותו שרת "מקור" לא צריך כמעט לעשות כלום, ומכיוון שאנחנו מעבירים בעצם "בלוקים", אז אנחנו מוותרים בדרך גם על שכבת ה-File System. מישהו שהסברתי לו על הנושא אמר לי "אה, זה בעצם מעין iSCSI על סטרואידים".. אפשר לאמר 🙂

ל-NVMEoF יש מספר יתרונות גדולים:

  • אפשר להכניס איזה גדלים שרוצים וכמה שרוצים. אפשר להתחיל ב-2 מלבנים של 8 טרה ואחר כך להוסיף עוד 4 של 16 ואחר כך עוד 4 של 8 טרהבייט. למערכת זה לא ישנה כלום. מבחינתה – יש עוד מקום לאחסן.
  • אין צורך לבנות מערכי RAID (כי .. אין RAID). במערכת שתרוץ על השרת נוכל לקבוע איך הנתונים ישמרו, מה הדחיסה שתהיה והיכן ישמר עותק נוסף של הנתונים.
  • ההשקעה למוסדות גדולים אינה כה גבוהה (לא ניכנס לחישובי ה-ROI, אפשר לכתוב ספר שלם על זה!). כן, יהיה צורך בהחלפת מתגים וכרטיסים בשרתים, והמוסדות יצטרכו להחליט עם מה הם עובדים – Infiniband או Ethernet (כבלי CAT 7 עם תיוג Class F יכולים להעביר 100 ג'יגה עד 15 מטר אורך, CAT 8 יתן עד 100 מטר 100 ג'יגהביט אך הוא עדיין לא אושר רשמית. כאן יש עוד פרטים לגבי 100 ג'יגה)
  • ישנן תוכנות שונות שנותנות את שרות ה-NVMEoF, חלקן כחול לבן כמו Kaminario, E8, Pure וכו'. כמו שכתבתי לעיל, אני ממליץ לרכוש תוכנה ולא פתרון חומרתי סגור מכיוון שעם תוכנה אפשר לעבור לפתרונות מתקדמים יותר בעתיד תוך שימור ההשקעה בברזלים, לא צריך לרכוש פתרון חומרתי סגור אחר ולהיפתר מהקודם.
  • מבחינת תמיכת חומרה – גם כאן, החבר'ה מיוקנעם ישמחו לסייע לכם (Mellanox), סמסונג, אינטל, Chelsio, Qlogic ואחרים, וכל יצרני המתגים המוכרים כבר תומכים בפתרונות NVMEoF.
  • מה עם פתרונות קוד פתוח? גירסת RHEL 8 שתצא (כנראה, כנראה..) עד סוף השנה תתן פתרון NVMEoF עד סוף השנה, וכל מערכות ההפעלה והוירטואליזציה יתמכו בפתרון.
  • כל הפתרונות (שאני מכיר) תומכים ב-Scale Out.

לסיכום: NVMEoF הוא בהחלט פתרון מעולה לעתיד. לפני שבועיים הרצתי אותו בבית (כפתרון וירטואלי, אין לי ממש כספים לדיסקים NVME ל-Enterprise) על Fedora 27. ובהחלט ה-Latency נמוך מאוד והביצועים מרשימים. אני תיארתי את הפתרון לעסקים גדולים כמו בנקים וכו' אולם כל חברה בינונית ומעלה יכולה להתחיל ב-PoC על מנת לבדוק בהמשך מימוש פרודקשן של פתרון כזה. לא צריך השקעה של מאות אלפי שקלים – מספיק 2-4 דיסקים NVME, כמה כרטיסי רשת במהירות של 25 ג'יגה ומעלה (ללא סוויצ') ושרת שיכול לקבל דיסקים כאלו, מערכת לינוקס עדכנית ואפשר לנסות ולשחק עם זה.
אפשר לאמר שאנחנו "חוזרים לאחור" הן מבחינת שיטת העברת הנתונים (RDMA) והן מבחינת מקום אחסון הנתונים (מחוץ לשרתי הוירטואליזציה/קונטיינרים) ובכך יש מעין "מלחמה" בין השיטות, רק שהפעם השיטה ה"ישנה" קיבלה זריקת חיזוק רצינית בכך ש-NVMEoF נותנת לנו ביצועים הרבה יותר גבוהים מבחינת דיסק בהשוואה לכל פתרון Hyper Converge.

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