ביי ביי סיסטם, שלום 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 או הסמכה אחרת נותנת. ככל שאתה יודע יותר ואתה מנוסה יותר, אתה שווה יותר.

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

Comments

comments

7 תגובות בנושא “ביי ביי סיסטם, שלום Devops

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

  2. ומה לדעתך בתחום הסיסטם באופן כללי (ולא הלינוקס)

    האם גם שם לדעתך יש שינויים לעומת העבר?

    (במידה ואתה יודע)
    תודה!

  3. יש הרבה משרות בתחום…חס וחלילה לא בקטע מעליב, תנסה לבדוק איך אתה נראה כשאתה מתראיין ומה אתה משדר..כנראה שמשהו אתה לא עושה טוב.

  4. היי חץ,

    אני *בדיוק* באותה הסירה כיום ואכן המצב כיום הוא בדיוק כפי שאתה אומר!!

סגור לתגובות.