ביי ביי סיסטם, שלום Devops

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

עד לפני שנים ספורות, תחום הסיסטם לינוקס היה די פשוט מבחינת הדרישות: הכרות עם הפצת לינוקס אחת או 2 (נניח Debian ו-CentOS או SuSE), הכרות טובה עם BASH ו-PERL, ידע בקונפיגורציית שרותים כמו Mail (אפליקציות כמו Postfix, Sendmail וכו'), WEB (אפאצ'י, Nginx), מוניטורינג, רשת, הכרות עם חומרה, והיית יכול למצוא עבודה יחסית די מהר (הסיבה לכך כמובן היא שלא היו הרבה אנשי לינוקס). את כל השאר היית יכול ללמוד תוך כדי עבודה. 

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

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

כיום תפקיד הסיסטם די "מת", ובגלגולו החדש, הצורך הוא באיש שיהיה Devops. 

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

  • פעם היה צריך לדעת ממש טוב Perl. אני יכול לאמר לכם שמתוך כל ראיונות העבודה שעברתי, הדרישה לידיעת Perl היתה אפס. כל מי שמכיר Perl יכול לאמר לכם כמה השפה הזו חזקה ושניתן לעשות איתה אין ספור דברים מעניינים, אבל היום כמעט ואין לה דרישה. במקום זה יש דרישה ל-Bash כבסיס עם יתרון מובהק לידע ב-Python ו-Ruby. כך לדוגמא, אם החברה משתמשת ב-Chef כדי לבצע אוטומציה מלאה לשרתים ולתוכנות, אתה חייב לדעת Ruby. אם לעומת זאת הם משתמשים ב-Puppet אז סביר להניח שיבקשו ידע ב-Ruby אבל יהיו מקרים שיבקשו גם ידע ב-Python, תלוי באימפלנטציה.
  • קוד כתיבת סקריפטים: כבר הפסקתי לספור את כמות המקרים שבהם הייתי מקבל סקריפט שנכתב בשפה כלשהי ופשוט לא הצלחתי לקרוא אותו. לא בגלל שאינני יודע את השפה, אלא בגלל שמי שכתב אותו כתב בצורה שלומיאלית, בלי שום סדר, בלי הערות, בלי כלום, שזה פשוט נס שזה רץ! בחברות רבות כיום, קוד נקי וקריא זו חובה, כולל Commit עם הסבר מה אתה דוחף פנימה, כי יהיו אחרים שירצו להסתכל בקוד או לשנות אותו. שוב, בתחום הסיסטם בעבר, מי שהיה כותב לסיסטם את הקוד וקורא אותו היה רק איש הסיסטם, היום זה השתנה.
  • DB: פעם זה היה מעולה אם היית יודע MySQL ו/או Oracle. היום זה נחמד שאתה יודע לעבוד עם MySQL, אבל חברות אינטרנט רבות כבר עברו להשתמש בדברים כמו NoSQL, MongoDB, Redis ועוד, כלומר כדאי שתלמד דברים שהם לא RDBMS.
  • מאיצים למיניהם: לא, לא מאיץ גרפי, אלא פתרונות Caching כמו Varnish, Memcache שיודעים ליצור Cache חכם מאפליקציות דינמיות. חברות רבות רואות יתרון במועמד שמכיר את האפליקציות הללו.
  • ידע במחשוב ענן: על AWS שמעת, נכון? איך אתה בשימוש ה-API של אמזון? חברות רבות דורשות זאת (יש גם חברות שדורשות ידע על Azure מאחר ומיקרוסופט החלה להציע שרתים וירטואליים עם לינוקס, אבל זה נדיר), ובשביל זה כדאי שתכיר לא רק AWS אלא שוב .. Python. אפשר כמובן עם שפות אחרות, אבל ברוב המקרים שרואיינתי, כשהגיעו לדבר על AWS, דרשו Python.
  • ניהול זכרון, פרוססים, ושאר ירקות: בתחום הזה לא השתנה הרבה מבעבר, רק שהיום הסקאלה הרבה יותר גדולה. חברת אינטרנט שמקימה עשרות או מאות שרתים (בהתאם לעומס) תצטרך ניהול זכרון קפדני כי מכונות רבות הן רפליקציה, ואם יש בעיית זכרון בגלל אפליקציה שרצה על כולן, הצרות יגיעו מהר מאוד.

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

מאחל לחבריי המחפשים הצלחה.

עזרה לחברים טובים

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

אני יודע שהמצב בשוק עדיין לא משהו (אני יודע את זה אישית. יש לי עסק אבל אני עדיין פרילאנסר שמחפש בעצמי עבודות פרילאנס נוספות), אבל אם אתם שומעים על עבודות סיסטם בלינוקס (או תכנות ב-++C או JAVA) שלחו אימייל אליי ([email protected]) עם מה שאתם מחפשים ואני אעביר את זה. אני מכיר למען האמת מספר אנשים שישמחו לקבל פרוייקטים בתחומים שונים.

כמובן שכל העניין נעשה ללא תשלום אליי וכל עניין של מחירי שעה וכו' יסוכמו בין הפונה לבין מי שאני מפנה אליו.

כמה מילים על גיל ותעסוקה

ב-13/5 הקרוב אני אהיה בגיל 42 ואין לי בעיה לאמר את זה.

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

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

אינני מכיר את ש' וכולי תקווה שהוא מצא מקום עבודה אחר, אבל התנהגות מעין זו של חברות צריכה להיפסק וחברות צריכות להחליט מה הן מחפשות: דוגמן או אדם טכני שבקיא בתחום שנים רבות? אלו שבקיאים בתחום שנים רבות הם לא תמיד ממש צעירים. יש כאלו בגילאי ה-30+, 40+ ואפילו 50+ (כל עוד האדם לא עשה הסבה למחשבים לפני שנתיים שלוש בגיל מאוחר), ואדם עם נסיון עשיר שווה יותר כי מה שהצעיר עכשיו לומד, המבוגר כבר מכיר ממזמן וכפי שכתבתי: לפעמים מבוגרים יכולים לסייע רבות במקום שצעירים לא יכולים לסייע או נכנסים לפאניקה (כמובן תלוי באופי וכו').

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