אחד התחומים המבוקשים בתעשייה: מה זה DevOps ואיך הוא משפיע על הארגון?

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

 

מה זה DevOps?

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

 

ה-DevOps כתרבות ארגונית

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

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

 

איך נראה תהליך הפיתוח בארגון שמאמץ את תפיסת ה-DevOps?

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

 

אלה התהליכים שלולאת האינפיניטי של ה-DevOps כוללת:

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

 

השלבים העיקריים במחזור פיתוח התוכנה
השלבים העיקריים במחזור פיתוח התוכנה

 

ה-DevOps כתפקיד

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

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

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

 

מה התפקיד של DevOps Engineer?

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

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

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

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

 

אילו טכנולוגיות נפוצות בתחום ה-DevOps?

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

 

הטכנולוגיות הנפוצות בתחום ה-DevOps
הטכנולוגיות הנפוצות בתחום ה-DevOps

 

GIT

ה-GIT הוא המערכת הפופולרית והנפוצה ביותר לניהול גרסאות בעידן הפיתוח הנוכחי. הוא מהווה אמצעי למעקב אחר כל השינויים והעדכונים שמתרחשים בקוד, מה שמאפשר שמירת הקוד עבור הגרסאות החדשות. מספר מערכות נפוצות משתמשות במנוע של GIT, ביניהן GitHub, GitLab ו-BitBucket.

 

Jenkins

Jenkins הוא שרת CI שמבוסס על קוד פתוח, אשר משמש כמערכת ניהול תהליכי בניית מוצר בשלבי הפיתוח. הוא נתמך על ידי מערכות הפעלה רבות, כולל macOS, Windows ו-Linux. ייעודו הוא לתמוך ברצף פעולות העבודה לשם ביצוע תהליכי הבנייה, הבדיקות והפריסות לפלטפורמות השונות.

 

Kubernetes

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

 

Azure/AWS/GCP

פלטפורמות מחשוב ענן, המספקות שירותי ענן לארגונים וחברות טכנולוגיות. הפלטפורמות מציעות מנעד רחב של שירותים טכנולוגיים, ביניהם אחסון, פיתוח ומחשוב, והשימוש בהן מאפשר לחברות להתמודד מול אתגרים טכנולוגיים שנקרים בדרכן, מבלי לבזבז זמן או כסף על הניסיון לפתח פתרונות In-house, שירותי מחשוב ושרתים, אחסון קבצים, IOT ומנועי AI.

 

איך ה-DevOps משפיע על הארגון שבו הוא עובד?

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

הנתון הבא מסביר את הכל – 99% מהחברות שהטמיעו את גישת ה-DevOps בארגון העידו על השפעה חיובית.

 

DevOps Pro – מסלול הקריירה של Infinity Labs R&D

מסלול ה-DevOps Pro של Infinity Labs R&D הוא לא עוד קורס DevOps בשוק, אלא תוכנית מקיפה, ייחודית ומעמיקה, בה הסטודנטים לומדים ומתרגלים בהרבה עבודת hands-on. הוא אורך 20 שבועות, מבוסס על שיטת הלימוד (IMSL – Infinity Mentored Social Learning™) שפותחה In-house, ומשלב מתודולוגיה ייחודית לצד חקר עצמאי, עבודה צוותית וסביבת עבודה המדמה סביבת צוות פיתוח בתעשייה. בסיום המסלול הסטודנטים משתלבים במשרות DevOps בחברות הייטק ישראליות ובינלאומיות, הדורשות מספר שנות ניסיון, אליהן הם מתחילים להתמיין עוד במהלך המסלול.

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

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

ובפן העסקי, המסלול פועל על פי מודל WIN-WIN-WIN: שלב ההכשרה ניתן על חשבון Infinity Labs R&D, ורק כאשר הסטודנטים מתקבלים בהצלחה למשרה בקרב אחד מלקוחות החברה ומצליחים בה לאורך זמן, החברה יכולה להחזיר את ההשקעה ולהרוויח מהתהליך.