מה קורה לתחום הסיסטם?

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

עד לפני מס' שנים, עוד לפני כניסת העננים לסצינה, תחום הסיסטם בחברות גדולות לדוגמא, היה די ברור: היו אנשי סיסטם מיקרוסופט, אנשי סיסטם לינוקס, אבטחת מידע היו אחראים על ה-Firewall ודברים אחרים שהיו קשורים לתחום, וצוות תקשורת שהיו אחראים על סוויצ'ים, כתובות IP, על VLAN וכל הדברים הקשורים לתקשורת, מרכזיות, WIFI וכו'.  אם היה צריך להתקין אפליקציות ושרתי אפליקציות (נניח Exchange, SharePoint ב-Windows, או MySQL/Oracle או שרת אפליקציות כמו Tomcat) – אז הצוות שאחראי על אותה מערכת הפעלה היה מתקין אותה והמשתמשים היו מוגדרים ברמת משתמש, לא ברמת Admin.

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

אם נסתכל בתחומים שאותו "איש Devops" צריך להכיר ולתפעל ולכתוב סקריפטים אליו (כן, הרבה פחות שימוש ב-GUI!) – אז הוא בעצם לוקח את תחום הסיסטם לינוקס הבסיסי, ומתרכז הרבה יותר בכלים שרצים על הלינוקס. זה מתחיל בניהול קוד, ממשיך לאוטומציה, סקריפטים, Python, JSON, YAML, ניהול חשבונות ומשאבים בענן כמובן, Jenkin/Travis/CircleCI וכו', והרשימה עוד ארוכה, תלוי בתחומים שהחברה עוסקת בהם, כלומר אם ניקח איש סיסטם לינוקס ממוצע שבחיים לא נגע ברוב הדברים שתיארתי לעיל חוץ מלינוקס, יש לו כיברת דרך ארוכה לעשות השלמות כדי להיות "איש Devops" מקצועי טוב. מה לגבי איש סיסטם מיקרוסופט? ובכן, רוב הכלים שתיארתי קיימים גם ל-Windows (היתרונות של קוד פתוח), אבל אחד הדברים הראשונים שהוא יצטרך להתרגל לרדת מהם, זה ה-GUI, לעבוד עם PowerShell באופן קבוע ומומלץ גם להכיר Python בדרך, ואז כמובן את הדברים שציינתי לעיל בתור התחלה.

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

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

  • איך אתה מתקן תקלה X ואיך אתה מבצע זאת להבא באופן אוטומטי?
  • איך אתה פותר בעיות ניהול קוד, קונפליקטים, branching, Stash ועוד ועוד דברים שלא לומדים בשום חלק באיזה קורס סיסטם?
  • איך אתה יוצר חבילות מוצר של החברה באופן אוטומטי? איך אתה בונה "צינורות" (Pipe lines) שכוללים לוגיקות שונות?
  • איך אתה מרים ומנהל קונטיינרים? סטורג' לקונטיינרים? Load balance שלהם? פותח כניסה "מבחוץ" ועוד דברים שקשורים לסביבות פיתוח וייצור?
  • והרשימה עוד ארוכה.

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

התחרות בין AMD לאינטל על ריבוי ליבות

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

נתחיל מאינטל: היא הציגה את המעבד I7-8086K במלאת 40 שנה למעבד הנוסטלגי 8086 שהתחיל את כל מהפכת ה-PC. המעבד הזה הוא בעצם ה-I7-8700K רק שבתוכו יש פיסת סיליקון מובחרת שיכולה להיות מואצת למהירות 5 ג'יגהרץ (בחלק מהליבות, לא כולם) ואינטל דורשת עליו מחיר יותר גבוה מה-8700K.

אבל את עיקר הכותרות קיבלה אינטל מהצגת מעבד עתידי כלשהו שיכיל לא פחות מ-28 ליבות ושהודגם רץ במהירות 5 ג'יגהרץ. כל מי שקצת מבין בכמות ליבות פר מעבד ובמהירות שעון וראה את ההכרזה – חכך את ראשו כי המספרים לא ממש מסתדרים, ורק אחרי ההדגמה התגלה ה"טריק" של אינטל: הם לקחו בעצם מעבד מאוד יקר ממשפחת השרתים (השמועות מדברות על Xeon SP Platinum 8180 שעולה 10000$), ביטלו לו את נעילת ההאצה, והדגימו אותו על לוח אם סופר-מפלצתי והקירור היה קירור מאסיבי – Chiller שדורש 1000W בקירור מים. כל הטרראם הזה הוא אינו פתרון שאינטל יכולה למכור (זה לא פתרון שאתה יכול לרכוש הביתה או לחדר שרתים בחברה אלא אם יש לך מערכת הזנת חשמל מאוד גבוהה) וסביר להניח שאינטל גם לא תמכור מעבד כזה במהירות הזו (תזכרו – בשביל פתרון כזה צריך ספקי כח מיוחדים, לוח אם מיוחד וחתיכת פתרון קירור חיצוני). מדוע אינטל לא ציינו בהדגמה שמדובר ב-Overclock? כי הם "שכחו".

מדוע בעצם אינטל נכנסים לתחרות הזו? כי AMD המתחרים יכריזו למחרת על מעבדי Threadripper עם 32 ליבות (ולאינטל יש מחלקת ריגול שלמה כך שהם יודעים על הדברים מראש) אז הם יצאו בהכרזה מוקדמת על מעבד חדש. האם כדאי להתחיל להתלהב ואולי בהמשך לרכוש מעבד כזה? אני בספק. סביר להניח שכשאינטל תמכור מעבד כזה, המחיר שלו יהיה לא פחות מ-4000$, ועדיף לחברות שרוצות דבר כזה ורק מעבדים של אינטל – לרכוש מכונה עם 2 מעבדים עם 14 ליבות (כמו ה-i9-7940X או מה שאינטל תוציא בחודשים הקרובים), שם המחיר יהיה הרבה זול וצריכת החשמל תהיה נמוכה בהרבה. אינטל גם הכריזה לאחר הכנס כי יהיה גם מעבד עם 22 ליבות לצרכנים (שוב, כמו ה-Xeon SP Gold 6152).

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

נעבור מכך, אם כן – ל-AMD.

בכנס של AMD הכריזו על מספר מוצרים עתידיים (בלי יותר מדי פרטים) ועל מעבדי ה-Threadripper החדשים שיקבלו את ארכיטקטורת +Zen שתשפר ביצועים בכל הקשור לתקשורת פנימית בין הליבות ותקשורת עם הזכרון, וכאן AMD הכריזה על 2 מעבדים חדשים במשפחת ה-Threadripper: מעבד אחד עם 24 ליבות ומעבד שני עם 32 ליבות. AMD שמחו להציג את תוכנת Blender עם השוואה מול המעבד ה-i9-7980XE של אינטל שמכיל 18 ליבות וכמובן שהמעבד עם 24 ליבות של AMD ניצח. באותו הזדמנות AMD הציגו שוב את Blender עם 32 ליבות אולם הפעם ההשוואה היתה ללא תצוגה מהצד של אינטל.

הבעיה ב-2 המעבדים החדשים פשוטה וקשורה למשפחת ה-Threadripper שהוא בעצם גירסה קצוצה של מעבדי EPYC לשרתים של AMD. במעבדי EPYC, תצורת הזכרון היא 8 ערוצים (כלומר אם נניח אתם רוצים שיהיה בשרת 128 ג'יגהבייט זכרון, עליכם למלא את כל 8 התושבות במקלות של 16 ג'יגהבייט ולא 4 מקלות של 32 ג'יגהבייט כדי לקבל ביצועים אופטימליים). ב-Threadripper תצורת הזכרון היא כמחצית מכך (4 ערוצים) כי Threadripper במקור היה עד 16 ליבות והיה צורך על כל רביעיית ליבות למלא זכרון ב-4 תושבות. עם המעבדים החדשים לעומת זאת, תצורת הזכרון נשארת אותו דבר כך שמעבד עם 32 ליבות, כך שמחצית מהליבות לא מקבלים גישה ישירה לזכרון, מה שפוגע בביצועים. נוסיף את הנקודה ש-AMD מדגישה תאימות לאחור (כך שאם יש לך מערכת עם Threadripper ואתה רוצה לשדרג למעבד עם 32 ג'יגהבייט זכרון, כל מה שתצטרך לעשות הוא פשוט לשדרג BIOS/UEFI ולהחליף לאחר מכן מעבד, רק אל תנסו לעשות Overclocking, לשם כך תצטרכו לוח חדש יותר עם אותם חלקים אך עם ערכת VRM משופרת, המעבדים החדשים צריכים יותר מתח).

יוצא מכך שההכרזות של AMD על מעבדי Threadripper החדשים (שיצאו באוגוסט) הם לא משהו שכל כך שווה להתלהב ממנו. כן, סביר להניח ש-AMD ימכרו מעבדי Threadripper עם 32 ליבות ו-64 ניבים במחיר של פחות מ-2000$ (מעבד לשרתים EPYC 7551P עם 32 ליבות עולה כיום 2300$) ומי שרוצה מעבדי AMD עם 32 ליבות ומקסימום ביצועים למעבד, עדיף שירכוש את EPYC (כותב שורות אלו מתכנן להחליף מספר שרתים בפתרונות מבוססי EPYC, הביצועים בוירטואליזציה מעולים בהשוואה למחיר פר מעבד ובצריכת החשמל שלהם).

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