המעבר ל-DPU

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

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

  • סיבוב ראשון – פתרונות כמו ESX/ESXI ופתרונות וירטואליזציה של מתחרים התמקדו בכך שישנם חלקים פיזיים שונים שמרכיבים את פתרון הוירטואליזציה: יש פתרון אחסון יעודי, יש מתגים ונתבים, יש חומת אש יעודית ועוד מספר "ברזלים" שנותנים שרותים משלימים – ויש את כל שרותי ה-Compute שמתקבלים מהשרתים. כל דבר – בנפרד.
  • סיבוב שני – קונסולידציה – פתרונות כמו vSAN של VMware ופתרונות מתחרים – מעבירים את השרותים המשלימים ל-Compute – אל תוך ה-Nodes עצמם. אחסון? הכנס דיסקים ונקים. רשת? יש NSX ופתרונות אחרים שייתרו פתרונות "ברזלים" יעודיים לטובת פתרון וירטואלי, כך שבסופו של יום, מערכת כזו תהיה בנויה משרתים עם דיסקים, כרטיסי רשת ומספר מתגים פשוטים ותו לא. הכל מוקם, מוגדר ומתוחזק בתוך פתרון הוירטואליזציה.

הסיבוב הנוסף הוא בעצם "חצי סיבוב". השינוי העיקרי הפעם הוא שאנחנו מוציאים החוצה מעבודת המעבד כל מה שקשור לאבטחה, תעבורת רשת, אחסון, הצפנה וכו' – ואנחנו מעבירים את הכל לדבר שנקרא SmartNIC (או כפי ש-NVIDIA ו-AMD ואחרים רוצים שתקראו לזה: DPU. אינטל רוצים שתקראו לזה: IPU).

להלן תרשים שיפשט את הדברים:

(קרדיט: The Next Platform)

כפי שאנו רואים, ה-DPU (מצד שמאל למטה בתרשים לעיל) הוא זה שיריץ את שרותי ה-ESXI וכל שרותי ה-Management (לשם כך ה-DPU מכיל מעבד ARM עם מספר ליבות וזכרון) והשרת עצמו יריץ מערכת מינימלית שמכילה Hypervisor או כל מערכת הפעלה יעודית "על הברזל" – והמערכת תתממשק  אל ה-DPU, כך שה-DPU בעצם ינהל את השרת והשרותים.

מדוע בעצם עושים זאת? הסיבה לכך די פשוטה: אין זה משנה איזה מעבד X86-64 קיים לך בשרת, בין אם מדובר ב-Xeon של אינטל או ב-EPYC של AMD, המעבדים הללו טובים בדברים מסויימים כמו Compute, אך פחות טובים בכל מה שקשור לתקשורת, הצפנות, תעבורת רשת גבוהה, אחסון ברמה ובביצועים של SAN וכו', ודברים אלו יכולים להתבצע ביעילות עם שבבים יעודיים (ASIC או FPGA, תלוי ביצרן, בפתרון וכו') ולשם גם VMWare וגם היצרניות האחרות (חוץ מ-AMD, אינטל ו-NVIDIA, גם חברות אחרות מתכוונות להציע DPU משלהן, כמו Marvell, ברודקום וכו') רוצות להיכנס, ובמילים אחרות – מה שהיה פרויקט Project Monterey בעבר, עכשיו זה חלק אינטגרלי מ-vSphere 8 שיוצא.

מאיפה בעצם הגיע הרעיון לכך? התשובה די פשוטה: ספקי ענן ציבורי, ובמיוחד AWS. רוב השרתים ב-AWS (הסתכלו לדוגמא על AWS Nitro) כוללים בעצם מערכת שמכילה KVM לינוקסי מינימלי שמריץ רק מכונות וירטואליות, וכל שאר השרותים מתקבלים דרך כרטיסי PCIe Express בעלי שבבים יעודיים (דוגמת Pensando של AMD) שנותנים שרותים יעודיים כמו אחסון, תקשורת, הצפנה ושרותים נוספים לפי הצורך, כך שבעצם המעבדים בשרת לא מריצים כמעט מאומה – זולת ה-Compute של הלקוחות וה-Hypervisor המינימלי. בשיטה זו רמת האבטחה היא הרבה יותר גבוהה, וגם אם מאן דהוא יצליח לפרוץ לשרת, אין שרות אחסון שרץ מקומית בשרת שניתן להתחבר אליו ולגנוב ממנו מידע (כל התחברות בין VM לאחסון  דרך הכרטיס היעודי מבוססת הצפנה עם מפתח יעודי פר VM ויש עוד מספר אלמנטים לאבטחה).

יש גם נקודת לינוקס בכל העניין: מכיוון ש-DPU מכיל במקרים רבים מעבדי ARM עם אחסון וזכרון עצמאיים נפרדים מהשרת, אפשר לתכנת אותם, ו-Linux Foundation, יחד עם יצרני חומרה נוספים הקימו פרויקט שנקרא Open Programmable Infrastracture Project (ובקיצור – OPI) כדי לעודד חברות תוכנה לכתוב אפליקציות ודברים נוספים עבור אותם DPU.

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

… שלא מתאים לכולם.

למען האמת – אפילו לא לרוב אלו שיש להם מספר קטן עד בינוני של שרתי ESXI.

אני חושבת שיש צורך לספר משהו אחד פשוט לגבי אותם IPU/DPU שהולכים להיות מוצעים: כל הפתרונות הללו נבנו בראש ובראשונה עבור ספקי ענן ציבורי (אז'ור, AWS, GCP, אני בספק אם אורקל משתמשת בכך), ואותן יצרניות החלו להוסיף ולשנות את הפתרונות כך שיוכלו לעבוד עם Project Monterey, כך שבסופו של יום – מדובר על פתרון שהוא מאוד חדש, ואינני בטוחה אם אפשר לקרוא לו "יציב", ובכל מקרה – מחירי כרטיסים כאלו – גבוהים מאוד, ויש צורך גם במתגים עם תמיכה במהירויות גבוהות (25 או 50 ג'יגהביט כמינימום!) – כך שגם אלו שרוצים פתרונות DPU כאלו, לא בטוח שזה יתאים להם.

לסיכום: DPU הוא פתרון מעולה, כאשר יש לארגון עשרות רבות, מאות או אלפי שרתי ESXi. לשאר הארגונים, מעבדי X86-64 כמו Xeon או EPYC – יתנו עבודה כלל לא רעה, ובמיוחד במעבדים העתידיים של שתי החברות ששואפות להכניס רכיבי האצה שונים לתוך מעבדיהן – ואת התוצאות לכך נוכל לראות בחודשים הקרובים.

רעיון קטנטן ליצרני פתרונות אחסון

במדינתנו הנחמדה, לא חסרות חברות המפתחות פתרונות אחסון כמעט לכל דבר – מגיבוי ועד Cloud Native, עם תמיכה בכל הפרוטוקולים הידועים, ועם ביצועים מאוד מרשימים. אם אינכם מכירים את שמות החברות, הנה מדגם קטן: Lightbits, Kaminario, Infinidat ויש עוד כמה וכמה, רובן חברות ישראליות או חברות בינלאומיות עם מו"פ בארץ.

אחד הדברים היותר מעניינים שיצא לי לראות בשנים האחרונות – זה המרחק הענק בין מה שחברות אלו מייצרות ומה שמוצריהם נותנים מבחינת שרידות, מהירות העברת נתונים וכו' – לבין מה שחברות רבות בארץ רוכשות לעצמן כשהן מחפשות סטורג'. כיום, ב-2022, יש עדיין לא מעט חברות שרוכשות אחסון המבוסס על דיסקים מכניים עם SSD שמשמש כ-Cache, ואלו היותר מתקדמים – רוכשים דיסקים SSD שמהירות הכתיבה שלהם איטית (Read Intensive) ועם עוד SSD או 2 הכוללים Flash מסוג SLC או MLC לצורך כתיבה מהירה. את אותם פתרונות אחסון מחברים לשרתים המריצים vSphere עם חיבורים של 10 ג'יגהביט חיבור נחושת או +SFP (עם DAC או סיב), או שעדיין משתמשים בחיבורים הישנים בסיבים במהירות עד 16 ג'יגהביט.

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

מכיוון שיצא לי להכיר את שתי ה"עולמות" של פתרונות האחסון, ניסיתי לשוחח עם אנשי IT בחברות וארגונים שונים שחושבים לשדרג את התשתית שלהם – מדוע הם לא מסתכלים על הפתרונות שמפותחים פה בארץ. אחרי הכל, כל החברות יודעות להציע פתרונות שיכולים לבצע Scaling לאורך ולרוחב, לתת ביצועים שיכולים לגדול מתי שצריך וכו'.

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

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

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

כשאני מדבר על "ברזל זמני", אני חושב שכל יצרן אחסון יכול בעצם לבנות שרת 2U פשוט, עם מעבד EPYC (בשביל כל ה-PCIe Lanes ל-SSD ולציוד הנוסף) וכמות קטנה יחסית של אחסון נטו (נאמר: 4 טרהבייט) עם הציוד המינימלי שצריך כדי לתת ביצועים די טובים (לא צריך להשקיע יותר מדי כמו הוספה של סוויצ', אפשר להשתמש בחיבורי JBOF חיצוניים לדוגמא). שרת כזה ניתן להשאלה לארגון מתעניין ל-30 יום כדי שיחברו ו"ישחקו" איתו – יאחסנו נתונים, יבדקו ביצועים, ויראו איך פתרון כזה יכול להשתלב בחברה.

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

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

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

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

השוואת Proxmox למתחרים

יוצא לי מדי פעם לקבל טלפונים מקוראי הבלוג ואחרים – שמבקשים לדעת האם פתרון Proxmox יכול להיות פתרון טוב ותחליף לפתרונות יקרים יותר (vSphere) או אם הוא יכול לעמוד בתחרות מול Xen Server, או Hyper-V ואחרים, ולפיכך החלטתי לכתוב את הפוסט הזה כדי להסביר את הדברים בצורה יותר קלה ומובנת.

קצת מידע על Proxmox – מדובר מערכת ותיקה שהחלה את חייה עוד לפני שלמעבדי X86 היו יכולות וירטואליות בחומרה כמו שיש להם כיום, ולפיכך המערכת תמכה בפתרון וירטואליזציה כמו OpenVZ – הרצת מערכת לינוקס (ומערכות אחרות, אך לא Windows) בקונטיינר (אם כי פורמט הקונטיינר שונה מפורמט כמו של Docker וכו'). מאוחר יותר, כש-KVM בלינוקס צבר עם QEMU פופולריות, הוא הוטמע בפתרונות רבים (כל ספקי הענן הציבורי משתמשים ב-KVM הלינוקסי, מיקרוסופט ב-Azure משתמשת ב-KVM ב-Instances המאפשרים Nested Virtualization) וגם ב-Proxmox וכיום כשמקימים מכונה וירטואלית ב-Proxmox, היא תרוץ עם KVM.

כשזה מגיע לוירטואליזציה, Proxmox עומד בכבוד מול המתחרים ויש לו כמעט את כל מה שיש בפתרונות Hypervisor מתחרים. אין בעיה להצמיד ב-VM חומרה מסוגים וחיבורים שונים, המערכת תקבל בשמחה כל דיסק עם כל File system כ-Storage, כולל ext3, ext4,btrfs, zfs,ceph, glusterfs, והמערכת גם כוללת תמיכה שיתופית באחסון: יש לך דיסקים במכונה אחת אך לא במכונה אחרת? אין בעיה! בהגדרת ה-Storage, בחר ב-All Nodes (ראו תמונה לעיל, לחצו להגדלה) והמערכת תייצר עבורך NBD מבלי שתצטרך להרים NFS או CIFS עם כל ההגדרות. גם כשזה מגיע לשרידות, יש ל-Proxmox מה להציע (כל עוד יש לך 3 מכונות פיזיות) – הגדר את המכונות הוירטואליות שאתה מעוניין שישרדו, והמערכת תבצע להן מיגרציית Live אם אחד השרתים יורד בצורה מסודרת, או שהיא תריץ את ה-VM מחדש במכונה אחרת (כל עוד האחסון מבוסס על NFS או CIFS. קצת בעייתי לבצע שרידות שכל הדיסקים יושבים על שרת אחד שבדיוק מכבים אותו)…

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

מה קורה אם ניקח את Proxmox ונשווה אותו לפתרונות יותר גדולים כמו oVirt/RHV או vSphere של VMware? התשובה פשוטה: אין ל-Proxmox סיכוי להתחרות, הואיל ו-Proxmox לא כולל חלקים רבים. קחו לדוגמא עניין כמו איזון עומסים של מכונות VM בשרתים (ב-VMWare זה נקרא DRS, ב-oVirt/RHV זה נקרא Scheduling Policies) – זה לא קיים ב-Proxmox. עוד דוגמא קשורה לניצול כל הדיסקים הקיימים בשרתים ליצירת מערך אחסון גדול ושורד. נכון, יש GlusterFS שנתמך ב-Proxmox, אולם ל-Proxmox אין מושג ירוק מה קורה עם ה-GlusteFS – אתה יכול לבצע Mount וזהו. ב-VMware לעומת זאת, פתרון vSAN ליצירת אחסון מדיסקים – נלקח הרבה יותר ברצינות (ב-oVirt/RHV היה פתרון Hyperconverged מבוסס GlusterFS אולם הוא היה פתרון חצי אפוי והוחלט בשקט לבעוט אותו החוצה). אם נבחן לדוגמא את עניין הרשתות ושימוש ברשתות וירטואליות, הממשק ב-Proxmox מאוד אנמי (אין לך אפשר להגדיר דברים כמו VLAN, Slaves ודברים רבים דרך הממשק, אין לך אפילו אפשרות לראות אם החיבור נפל או לא, ואם אתה מתעקש להגדיר, אתה צריך לעבוד בדרכים הישנות, כמו לפני ש-NetworkManager או Netplan היו קיימים) ואילו ב-vSphere או RHV הדברים נלקחים בצורה הרבה יותר רצינית (הנה דוגמא ב-oVirt), ועוד לא דיברנו על ההתעקשות של מפתחי Proxmox לא לשלב את libvirt – ה-API הגדול והמשמעותי ביותר לכל ענייני וירטואליזציה בלינוקס ובמערכות הפעלה אחרות.

לסיכום: Proxmox הוא פתרון מעולה, למצבים מסוימים – אם רוצים להעביר משרד קטן P2V לשימוש ב-Thin clients כשהכל רץ על שרת אחד או שניים, לסטארט אפ קטן שאין לו תקציבים כרגע להשקיע בתשתית והוא לא רוצה/לא יכול להתחיל לעבוד בענן ציבורי ועוד, אך מעבר לכך – ארגונים גדולים, חברות גדולות, מוסדות ועוד – מומלץ שימשיכו להשתמש בפתרונות של VMware (או Nutanix) ומומלץ גם להכיר מה הולך לקרות ב"גל" הבא – ועל כך אפרסם פוסט נפרד.

קצת פרטים לגבי DCPMM של אינטל

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

בשנים האחרונות אינטל הוציאה את מקלות ה-DCPMM (ר"ת DC Persistent Memory Module). אלו מקלות אחסון שאינם משתמשים ב-NAND כמו אחסון SSD אחר, אלא 3D Xpoint, שיטה חדשה שמאפשרת כתיבה וקריאה במהירות מאוד גבוהה ושרידות (מבחינת DWPD לדוגמא) גבוהה בהרבה, בהשוואה לפתרונות Flash אחרים שקיימים בשוק. אינטל הוציאה גם פתרונות אחסון קונבנציונאליים מבוססי 3D Xpoint (תחת השם Optane, למרות שתחת השם הזה הם הכניסו עוד סוגים שונים של אחסון, למה לא לבלבל את הלקוח הפוטנציאלי!) אך ה-DCPMM היה שונה בכך שהוא הרבה יותר מהיר והוא משובץ בתושבות הזכרון בשרת, וכתוצאה מכך, שימוש ב-DCPMM יחד עם זכרון RDIMM יכול לתת פתרון די טוב לזכרון בכמות גבוהה, במחיר יותר נמוך בהשוואה לכמות זהה של זכרון אם כולו היה מבוסס DRAM RDIMM.

בוידאו הבא אסביר קצת לגבי דברים כמו:

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

להלן הקליפ.

נקודות חשובות נוספות לגבי הנושא:

  • כאן יש מסמך חשוב מאוד מחברת לנובו המשווה את ביצועי המערכת אם משתמשים רק בזכרון, או שילוב של יותר זכרון ומעט DCPMM, וההיפך, וכמו כן הוא נותן דוגמאות לגבי יחסים RDIMM עם DCPMM מצוותים. מומלץ לקרוא.
  • הפתרון אינו קיים למערכות שאינן מבוססות אינטל (כמו AMD) הואיל ומדובר בפתרון סגור וקנייני של אינטל.
  • לא מומלץ להשתמש במצבי אחסון Block Storage כשמשתפים מקלות DCPMM משני מעבדים שונים (או יותר, במקרה ומשתמשים במעבדי ה-Cooper Lake) אלא אם יש לכם מעבדים מסידרה L או מעבדי GOLD, אחרת נוצר צוואר בקבוק שקשה לשחרר.
  • ולחבריי הגיקים שצופים בערוץ היוטיוב של ServeTheHome – אכן ראיתי את הקליפ של פטריק אתמול, וזה הזכיר לי שעל הנושא לא הוצאתי כמעט כלום, אז בגלל זה החלטתי לבצע "השלמות" 🙂

ההבדלים בין מעבדי אינטל שונים עבור שרתים (וידאו קליפ)

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

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

פרילאנסרים, מצלמה ושיחות וידאו

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

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

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

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

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

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

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

  1. הורידו והתקינו את אפליקציית OBS Studio מהקישור הבא (שימו לב: גירסת לינוקס אינה תומכת במצלמה הוירטואלית, נכון לגירסה 26.1, כך שזה יעבוד רק על Windows או מק).
  2. הפעילו את התוכנה והתרכזו בצד שמאל, בקוביה שכתוב עליה Sources
  3. לחצו על מקש ה- + בחרו Video Capture Device, תנו לזה שם, לחצו OK, ובחרו את המצלמה שלכם (חשוב שהיא לא תהיה בשימוש באפליקציות שיחות אחרות באותו זמן)
  4. באותו חלון של בחירה, יהיו אופציות שונות להגדרת המצלמה. אם אתם לא מבינים בתחום או לא מכירים – אל תשנו. לחצו OK
  5. אם הבחירה שלכם עבדה, אתם תראו את עצמכם בתוך חלון מוקף במסגרת אדומה. המסגרת מציינת אובייקט אקטיבי ב-OBS.
  6. אם אנחנו רוצים להוסיף לוגו, נלחץ שוב על ה- + ונבחר Image. חשוב: ה-Image אמור להיות בפורמט PNG אם רוצים רקע שקוף ללוגו (כמו אצלי בתמונה לעיל). תנו שם, לחצו על Browse ובחרו את הקובץ PNG עם הלוגו. לחצו OK לאישור. שוב אנחנו נראה ריבוע אדום מסביב לתמונה – השתמשו בריבועונים הקטנים מסביב לריבוע האדום הגדול כדי להקטין את התמונה ולמקם אותה היכן שתרצו.
  7. אם נרצה להוסיף טקסט (כמו שם, לדוגמא), נלך שוב לקוביית ה-Sources, נלחץ על + ונבחר Text +GDI – שוב, תנו לזה שם ולחצו OK. כעת יפתח חלון ובתוכו תהיה קוביה שחורה עם הכיתוב משמאל "Text" – הכניסו כאן את הפרטים שאתם רוצים (אפשר במספר שורות). שימו לב שהחלון שנפתח – נגלל, ויש אופציות שניתן לשחק איתן כמו פונט, צבע, ישור לימין, שמאל וכו'. הכניסו את הטקסט שאתם רוצים (אם אתם רוצים להכניס טקסט במספר גדלים, תצטרכו ליצור מספר אובייקטים של טקסט). אחרי שלחצתם OK, שנו את גודל ומיקום הטקסט על החלון.
  8. אפשר להוסיף אלפי דוגמאות נוספות וליצור דברים מדהימים (למי שלא ממש מרוצה מהאפקטים הוירטואליים של זום, ב-OBS יש תמיכה מלאה ב-Chroma Key, להלן קישור להוראות).

מרוצים ממה שאתם רואים? מעולה.

מצד ימין יש מספר כפתורים מוארכים (כמו Start Streaming וכו'). לחצו על הכפתור שנקרא "Start Virtual Camera")

זהו, אתם יכולים לבצע מינימליזציה של חלון ה-OBS (ב-Windows אפשר ללחוץ על אייקון ב-OBS בשורת האייקונים מימין/שמאל).

פתחו את אפליקציית הזום או סקייפ, לחצו על גלגל השיניים מצד ימין למעלה, לחצו על Video, ובחרו OBS Virtual Camera. אתם אמורים לראות מה שרואים ב-OBS. תוכלו לבחור אופציות אחרות כמו Mirror, תאורה וכו'.

ברכותיי, התצוגה המשופרת של עצמכם פעילה, תהנו מהחשיפה 🙂

מספר נקודות טכניות:

  • משתמשי מק – לא בטוח שהמצלמה הוירטואלית תעבוד (במיוחד עם Big Sur). כפי הנראה שתצטרכו להעיף חתימות, כפי שמוסבר כאן.
  • למי שרוצה – אפשר לבצע Up scaling של הוידאו. המצלמה הוירטואלית תשדר לפי הרזולוציה שמוגדרת ב-OBS. לשינוי – יש ללחוץ על Settings, על Video ולהגדר את ה-Output לרזולוציה שרוצים. שימו לב – סביר להניח שזה יאמץ את המחשב שלך במעט.

הקמת HPC – מקומית או בענן? נקודות למחשבה

חדש! אין לכם כח לקרוא? אתם יכולים ללחוץ על הקישור כאן או להסתכל בסוף הפוסט על וידאו קצרצר המסכם את הפוסט.

עולם ה-HPC הוא עולם שמתקדם בקצב איטי. עד לפני שנים מעטות, השינויים המהותיים היו יותר קשורים ל-Job management פופולרי (slurm ש"כבש" פופולריות במקום ה-Sun Grid Engine לדוגמא, שהפך לאחר מכן ל-Son of Grid Engine) וברוב המקרים כשהיה מדובר על מערכות גדולות (עשרות, מאות שרתים ומעלה) חברות כמו Dell ו-HPE החליפו שרתים של Sun (לאלו שהיתה להם מערכת HPC ישנה יותר).

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

  • מבחינת מערכת File system מרכזית – ל-Lustre עדיין יש מקום ורלוונטיות (גירסה חדשה שוחררה רק בחודש שעבר), אך במקביל, מערכות כמו Gluster ו-CEPH תפסו מקום נכבד כ-Scale Out Storage
  • יותר ויותר חברות עוברות לשימוש מאסיבי יותר בכרטיסי GPU יעודיים (V100, A100 של NVIDIA, וכרטיסים אחרים לעיבוד AI/ML/DL מחברות כמו AMD ואיננטל יכנסו בקרוב לשוק בצורה יותר רצינית).
  • חיבוריות/רשת תקשורת פנימית עוברת שדרוג רציני. במקרים רבים, חברות היו משתמשות בחיבור סיב במהירות של 10 ג'יגהביט, כיום בד"כ ההמלצה היא 50 ג'יגהביט ומעלה.

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

כיום חברות כמו NVidia מציעות שרתי DGX במחיר שווה: במחיר של 200-220K אתה מקבל שרת עם 2 טרהבייט זכרון, 8 מודולי GPU מסוג A100 (עם 80 ג'יגהבייט זכרון פר מודול), אחסון מקומי בגודל 36 טרהבייט, 128 ליבות (2 מעבדי AMD EPYC עם 64 ליבות), קישוריות רציפה בין מודולי ה-GPU (זה ה-NVSwitch) ומספר חיבורים במהירות 200 ג'יגהביט. עם קופסאות כאלו, בדרך כלל תצטרך לרכוש מתג (או מתגים, תלוי בקופסא) ותצטרך לדאוג לפתרון אחסון Scale Out (אם מדובר ברכישה של 10+ שרתים) וגם פתרון אחסון יותר איטי – והרי לך פתרון HPC בסיסי ברמה העקרונית (כמובן שברזלים זה נחמד, אבל יש המון עבודה להתקין דברים, להגדיר, אוטומציה, Job Management ועוד ועוד)

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

לרכוש ולבנות "משלנו" או ללכת עם פתרון ענן של ParallelCluster של AWS (או פתרון של Azure או GCP)?

על מנת לענות על שאלה זו, נצטרך בשלב הראשון לחלק בעצם את פתרון ה-HPC ל-2 חלקים:

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

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

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

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

  • זמינות לעבודה מיידית: בין אם אתה צריך 1000 או 10000 ליבות, בין אם אתה צריך 2 או 300 כרטיסי GPU החדשים ביותר – הם זמינים עבורך תוך דקות ספורות. אין צורך להמתין שהמערכת תתפנה, או להבין שאין ב-HPC המקומי את הציוד שאתם כלקוח צריכים.
  • התשלום הוא רק עבור שימוש: הפעלתם דרישה של 1000 ליבות לעבודה שלקחה שעתיים ו-14 דקות? על כך בדיוק תשלמו (פלוס האחסון, תעבורת אינטרנט וכו'). בסיום ה-JOB בדרך כלל (בהתאם להגדרות) המערכת "תהרוג" את כל ה-Nodes המשתתפים בעבודה (לאחר שהחומר הרלוונטי הועבר לאחסון), מה שמאפשר ביצוע עבודות רבות עם תקציב קטן יחסית, גם לסטארט-אפים.
  • מבחר ענק של ציוד: צריכים מכונות חזקות מאוד? חלשות (עם תשלום נמוך)? עם 2 כרטיסי GPU? ללא כרטיסי GPU? עם מהירות תקשורת של מאות ג'יגהביט? עם אחסון במהירות 7 ספרות IOPS? ברוב פתרונות ה-HPC, האפשרויות מצומצמות מאוד, ובענן – כל מה שצריך זה לבחור ולשנות שורה אחת בקובץ קונפיגורציה.
  • תאימות: רגילים לעבוד עם SGE, עם Slurm, עם Torque? רוב הסיכויים שפתרון ה-HPC בענן כבר תומך ב-Job Management שאתם רגילים אליו, ולכן מעבר לשימוש HPC בענן יהא יחסית קל.

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

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

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

ישנן סיטואציות בהן ההחלטה היא יותר קלה לכאן או לכאן:

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

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

למעוניינים – גירסת וידאו קצרה המסכמת את הפוסט:

נקודות למחשבה בעת בניית פתרון חומרה ללקוחות

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

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

להלן הנקודות:

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

מטריקות זה דבר מאוד חשוב
יש POC? מעולה, אבל לפני שרצים לחפש חומרה תואמת, ODM וכו', כדאי למדוד ביצועים ולהכין כלי Benchmark כלשהו שימדוד ביצועים, ואת הכלי, יחד עם קוד ה-POC – נריץ על פתרונות חומרה שונים בדרך – כדי לראות אם מקבלים את הביצועים שרוצים. ראיתי לצערי לא מעט כאלו שהזדרזו לרכוש לוחות עם מעבדי ARM שונים ולאחר שהקוד עבר קימפול והרצה – הביצועים הגיעו ל-10-20% ממה שהמערכת במקור נותנת על PC.

חשוב לעבוד עם יצרן חומרה
אם האיש או החברה החליטו ללכת על פתרון משובץ עם מעבדים מסויימים ושרותי ODM לתכנון לוח וכו' – חשוב לקחת את המלצות יצרן המעבד או הלוח ואם אפשר – את ה-SDK של יצרן החומרה. אחת הטעויות הנפוצות ביותר לאלו שמתחילים בעולם המערכות המשובצות – היא המחשבה שעולם הלינוקס במערכות משובצות הוא כמו עולם הלינוקס בדסקטופ. הוא בשום פנים ואופן לא ובמקרים רבים החלטה כמו "נלך על Yocto", "נלך על Open Embedded" וכו' מבלי שהיצרן אכן ממליץ ותומך באותה הפצת לינוקס – תיגמר בכי רע, הואיל ויש המון חלקים בעולם הלינוקס המשובץ שניתנים כקוד סגור, או קוד שנמצא Out of tree בהשוואה לגירסאות לינוקס שונות (ואם אין איש לינוקס שמבין בפיתוח דרייברים/קרנל – תהיה בעיה בלשלב את הקוד), או שפשוט לא ניתן יהיה להפעיל חלקים שונים בחומרה כי פשוט אין דרייברים זמינים באופן חופשי לציבור, ולכן – גם אם אתם בונים פתרון משובץ שימכר בכמה עשרות דולרים לצרכן ולכן כל סנט שנחסך הוא חשוב – צרו קשר עם יצרן הלוח או יצרן המעבד וסכמו על תמיכה וקבלת SDK.

נקודות לגבי AI, וידאו ומדיה
כדאי לשים לב כי בתחומים שונים כמו הסקה ב-AI (כלומר Inference), קידוד/פריסת וידאו/אודיו וטיפול בתכני מדיה שונים – יש מרחק רב ממה שהחומר השיווקי מציין לבין מה שמקבלים "ביד" בפועל. בתחום ההסקה לדוגמא, ישנם כמה יצרנים המציינים כי יש ברשותם שבבים ל-"AI" עם ביצועים מרשימים לביצוע הסקה, אבל בפועל (ואני בכוונה לא רוצה להזכיר שמות) התמיכה במודלים ובמטריצות – אינה מספקת או איטית. בתחום הוידאו – יש לא מעט כאלו שתומכים ב-H.264/H.265 – חלקם בפריסה בלבד וחלקם בפריסה וקידוד, אולם כמות וסוג הפרופילים שהם תומכים – היא קטנה מאוד, וברוב המקרים גם אין תמיכה ל-DRM שלקוחות רבים בתחום המדיה (כבלים, STB, וכו') דורשים, ולכן עוד לפני שמתחייבים לרכישות גדולות, כדאי לרכוש/לקבל Sample של לוחות שונים ולנסות אותם. נכון, יש צורך בהשקעה כדי לבצע Porting אבל בדרך כלל ההשקעה אינה גדולה ודי קל להמיר/לקמפל קוד למערכת ARM או X86 אחרת.

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

חשוב לבנות את ה"מסביב"
יש לא מעט חברות שיצרן מוצרים מעניינים לשוק ובמחירים זולים מאוד, אבל כשזה מגיע לאבטחה ועדכונים – תשכחו מזה (נסו לדוגמא לחפש עדכונים למוצרי TP-LINK או DLINK שנמכרים בארץ, אולי תמצאו עדכון אחד או 2 במשך כל חיי המדף של המוצר). כיום, כל מוצר שיוצא לשוק ונמכר במחיר זול – נפרץ די מהר, והדרך מהפריצה ועד לבעיות אבטחה שכל מיני פורצים מנצלים את המוצר כדי "לגייס" את המכשיר על מנת לתקוף מטרות שהפורצים בוחרים ב-DDoS – קצרה, ולכן חשוב עוד לפני שהמוצר בכלל יוצא – לוודא שה-Image כולל תשתית מאובטחת לקבלת עדכונים, לחתום כל עדכון, לא לאפשר לכל דכפין לנצל פלטפורמה כמו U-Boot להתקנת Images עצמאיים של הפורצים.

חושבים להשתמש בפתרון עם אנדרואיד?
אם אתם בונים פתרון המבוסס על אנדרואיד, חשוב יהיה לבנות מחדש את האנדרואיד שיתקבל מיצרן החומרה, להוסיף את התוכנות שלכם (ללא שימוש ב-root! או sudo וכו'), להכין IMAGE, ולתת את ה-Image שבניתם ליצרן החומרה. אם אתם צריכים הגנה על תכני מדיה (DRM), בקשו מהיצרן תמיכה ב-Widevine כולל הטמעת מפתחות בזמן יצור המכשיר. והקפידו על שחרור גרסאות עדכון אחת לזמן מה.

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

בהצלחה.

הדברים החשובים בהטמעת פתרון קוד פתוח בארגון

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

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

להלן מספר נקודות:

  • תכיפות שינויי קוד: חברות כמו רד-האט מפתחות את מוצריהן בצורה פתוחה וזמינה לכולם ב-github, ומכיוון שהפיתוח נעשה בצורה פתוחה וציבורית, מבוצעים שינויי קוד רבים, במקרים רבים – שינויים יומיים, וברוב המקרים, גם אם מוכרזת גירסה של הפתרון/ספריה/פלטפורמה – הגירסה אינה כוללת עדכוני אבטחה, בדיקות יציבות ותיקונים אחרים שקיימים בגרסאות המסחריות. מעבר לכך – אם המוצר קורס או גיליתם באגים – תהיה לכם בעיה לקבל סיוע, והכל יהיה תלוי בליבם הטוב של מתנדבים או עובדים (וגם על זה לא מומלץ לבנות, הואיל וחברות כמו סוזה, רד-האט, קנוניקל ואחרים – מקבלים הוראה לתעדף תיקוני באגים לאלו שרכשו גרסאות מסחריות או לאלו שמשלמים על חוזי שרות ליצרן התוכנה).
  • גרסאות תכופות – פתרונות כמו OpenStack, Kubernetes, Ceph, Gluster ופתרונות רבים אחרים משוחררים בתדירות די תכופה ע"י הקבוצות המפתחות אותם עבור יצרניות הפצת לינוקס. הן לוקחות את הקוד, מבצעות שינויים ותיקונים, מוסיפות עדכוני אבטחה (שיחזרו לקוד ה-Upstream יותר מאוחר), כותבות תיעוד ספציפי ועוד ועוד – ואז משחררות אותו במסגרת Life Cycle רשמי עם תמיכה רשמית ועוד, ומוציאות זאת כמוצר מסחרי, ובמילים אחרות – אותם מוצרים שיוצאים כגרסאות תכופות אינם מיועדים לפרודקשן.
  • האם יש לך צוות לינוקס בחברה? אם יש לך צוות In House שמבין היטב בלינוקס ויכול "לשחות" בתוך קוד של אחרים במקרה של תקלה במוצר/ספריה/פלטפורמה – במקרים כאלו קל יותר להטמיע פתרונות בקוד פתוח שעדיין לא יציבים כפרודקשן, ולכן כדאי להסתכל על הנקודה הבאה…
  • אבטחה – פתרונות קוד פתוח שלא מגיעים מיצרן כלשהו, בחלק גדול מהמקרים לא כוללים עדכוני אבטחה, ולכן אם החלטתם בכל זאת להטמיע את הפתרון בחברה, מומלץ כי אחת לחודש הצוות הפנימי בארגון יבדוק את הפתרון המותקן מול הפתרון שנמצא ב-github לדוגמא, ובמיוחד יבדוק אם ישנם תיקוני/עדכוני אבטחה שפורסמו בנפרד (כ-PR או במקומות אחרים) או גרסאות minor בהשוואה למה שמותקן פנימית – ויבצע עדכון ידני. ארגונים שאין ברשותם אנשי לינוקס, מומלץ מאוד יהיה לעבוד עם הגירסה המסחרית ולקבל את העדכונים מהיצרן.

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

להתראות CentOS??

בימים האחרונים יצאה הודעה כי CentOS 8 תעבור שינויים משמעותיים ובכללם – ההפצה תחדל מלקבל עדכונים בסוף שנת 2021, ולא תהיה הפצת CentOS המקבילה ל-RHEL מבחינת גירסא וקוד. הדבר היחיד שישאר הוא CentOS Stream שזו גירסת CentOS טיפה יותר "מתקדמת" מ-RHEL (אבל מבחינת עדכוני אבטחה – ה-Stream יקבל את העדכונים רק לאחר ש-RHEL יקבל).

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

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

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

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

שלישית – ולעניין זה לא תקבלו שום אישור מגורם רשמי: התקדמות טכנולוגית שגורמת להפסד פיננסי לרד-האט. בעבר, אם הייתי צריך להרים תשתית לינוקס גדולה לפיתוח, פרודקשן, עם backend ועוד דברים רבים – הייתי צריך בארגון גדול, לרכוש מספר לא קטן של רשיונות RHEL לכל שרת פרודקשן, בין מדובר בשרת פיזי או וירטואלי. כיום, לעומת זאת, המעבר לקונטיינרים חוסך לי בצורה משמעותית את כמות רשיונות ה-RHEL שאני צריך לרכוש לפרודקשן. אם פעם, לשם הדוגמא, הייתי צריך לרכוש 20 רשיונות, היום 4 רשיונות ל-Worker Nodes יספיקו, ופה מדובר רק בדוגמא אחת. רבים כיום יעדיפו הפצת לינוקס חינמית ברוב המקומות למעט היכן שחייבים בגלל ההנהלה להשתמש בהפצות RHEL מסחריות.

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

כל איש לינוקס ותיק ירגיש בוודאי תחושת דה-ז'ה וו בנושא. כבר היינו בעבר בסרט הזה. כשחברת רד-האט החליטה להוציא רק גרסאות לינוקס מסחריות בתשלום (מה שהיה RHEL, RHES), נוצרו מספר פרויקטים שלקחו את קוד המקור של RHEL וביצעו Fork לגירסה עם שם אחר אך עם תאימות מלאה (בעקרון, לא מדובר בתהליך של קימפול הכל מחדש באופן אוטומטי. יש לא מעט כלים לפתח, יש לא מעט סקריפטים לכתוב, להסיר קבצי לוגו וסימנים מסחריים של רד-האט וכו') כשה"זוכים" בפופולריות בסופו של דבר היו CentOS, Scientific Linux וכמובן Oracle שהחליטה פשוט לבנות את הכל בעצמה ולגנוב לקוחות מ-רד-האט.

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

לפיכך, להלן המלצותיי (לפי התיעוד הרשמי):

  • אם אתם משתמשים בגירסה כלשהי של CentOS 6 – שדרגו בדחיפות. ה-EOL שלה חל בחודש שעבר.
  • אם אתם משתמשים בגירסה כלשהי של CentOS 7 – אתם בטוחים, ואתם תמשיכו לקבל עדכונים לגירסה עד תאריך 30/6/2024. אם אינכם חייבים לעבור לגירסה 8, פשוט אל תעברו, במיוחד אם המכונות הן וירטואליות.
  • אם אתם משתמשים בגירסה כלשהיא של CentOS 8 – אתם תקבלו עדכונים עד סוף שנה הבאה (31/12/2021)
  • עכשיו, כל מה שנותר לעשות, זה להמתין ולראות מי "יקפוץ". האם רד-האט תחזור בה? (קהילות הלינוקס הן לא קהילות מנומסות, בלשון המעטה!) ואם לא, מי החברות שיכריזו על Fork ל-RHEL? (אמזון? מיקרוסופט? גוגל?) במשך השנה הקרובה אנחנו נראה את ההתפתחויות ואני מאמין שכבר בחודשים הקרובים נראה חדשות בנושא עם מפות דרכים והמלצות לאן להגר.

ולבינתיים, אני ממליץ לא לקחת המלצות פזיזות, אם אפשר.

Exit mobile version