עבודה ב-DevOps – מה זה אומר?

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

שתפו כתבה במיילשתפו כתבה במייל

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

DevOps: מקור המונח ותיאור התחום

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

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

במסגרת מתודולוגיית ה-Agile נכללות גם השיטות Continued Integration, אשר מאפשרת לערוך בדיקות על כל שינוי קוד כדי לשמור על איכות ושלמות המוצר; ו-Continued Delivery, אספקה רציפה בה המוצר או התוכנה נמצאים תמיד מוכנים במאגר לפריסה, מה שגם עוזר להאיץ את התהליך.

אז איפה נכנס ה-DevOps לתוך התהליך? גישת העבודה של ה-DevOps היא זאת שמאפשרת את הפריסה האוטומטית והמהירה של התוכנה תוך שמירה על המשכיות ועל יציבות המוצר. מטרת המתודולוגיה היא שימוש בשיטות, כלים ותהליכים אוטומטיים כדי לקצר תהליכים ידניים, יחד עם האפשרות לבצע שינויים בדרישות או להוסיף דרישות חדשות לפי הפידבק שמגיע מהלקוח. התוצר שמתקבל בשילוב מתודולוגיות ה-Agile וה-DevOps הוא מנוטר היטב, באיכות גבוהה וכמעט ללא באגים, וזאת הודות לבדיקות התדירות שהוא עובר במהלך הפיתוח והייצור שלו.

מה כולל תפקיד ה-DevOps

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

דרישות תפקיד ה-DevOps

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

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