אוטומציה בעבודה: מהם כלי DevOps ולמה כל מתכנת צריך להכיר אותם?
אין כמעט מי שלא שמע על תחום ה-DevOps – בשנים האחרונות הפך תחום זה לאחד החמים בתעשיית ההייטק, כאשר יותר ויותר ארגונים מטמיעים כלי DevOps, וכתוצאה נרשמת עליה עקבית בביקוש לאנשי מקצוע המכירים את כלי ה-DevOps השונים.
מה הם כלי DevOps ומדוע היכרות איתם חיונית לכל מתכנת? אלי אייל, מרצה בפקולטה למדעי המחשב ו-Director Of Infrastructure בחברת deel, מסביר כי DevOps זה שילוב של שתי מילים: Development (פיתוח) ו-Operations (תפעול). "DevOps היא גישה, תרבות ומתודולוגיה בעולם התוכנה שמטרתה לשפר את שיתוף הפעולה בין צוותי הפיתוח לבין צוותי התפעול, כדי לייעל את תהליך הפיתוח, הפריסה והתחזוקה של מערכות תוכנה".
המעבר מ-Waterfall לאוטומציה
לדבריו, בעבר בתחום פיתוח התוכנה השתמשו במתודולוגיה ותיקה לפיתוח פרויקטים מורכבים שנקראת Waterfall. "בעבודה על בסיס המתודולוגיה הזו, לצוות הפיתוח לא היתה גישה לסביבת הפרודקשן - היה צוות שהיה מפתח את התוכנה, וצוות שמבצע את האינטגרציה. השיטה הזו יצרה הרבה בעיות, באופן טבעי. דברים יכלו לעבוד חלק בפיתוח, אבל לא להיות מוטמעים כמו שצריך, ואז היה צורך להחזיר אותם לפיתוח וחוזר חלילה".
מהמקום הזה התפתחה גישת ה-DevOps שמאפשרת למפתחים לעבוד בצורה שתהיה זהה לסביבת הפרודקשן. "עבודה ב-DevOps הופכת את תהליך הפיתוח וההטמעה לאוטומטיים ונפטרת מהצורך לעשות דברים באופן ידני שמסרבל תהליכים, הופך אותם לפחות מדויקים, לארוכים וליקרים יותר", אומר אייל, "עבודה בגישה הזו מצריכה היכרות עם כמה כלים, שאת כולם אנחנו מלמדים", הוא אומר.
הכלי הראשון שמזכיר אייל הוא Docker. "מפתח יכול היום לייצר אימאג' Docker ואותו אימאג' יעבוד בכל סביבת פיתוח שהיא, ובכל ענן שיבחר לשים אותו". Docker היא למעשה תשתית וירטואלית שנותנת אפשרות "לארוז" את הפיתוח יחד עם כל הספריות, קבצי הקונפיגורציה ועוד— בקונטיינר אחד, שאותו ניתן להריץ על כל מכונה שתומכת ב-Docker, בלי לדאוג להבדלים בין סביבות הפיתוח, הבדיקה והייצור.
אבל איפה שומרים את הקוד באופן שניתן לשתף אותו ולהפוך אותו לאימאג' Docker? "כאן נכנסים כלי DevOps נוספים – GitHub, GitLab ו-Bitbucket. אלו פלטפורמות שמאפשרות לשמור את הקוד בענן, ולשתף אותם עם אנשים נוספים".
מתכנת צריך לדעת הכל מהכל
כלים נוספים שחיוניים למפתחי תוכנה הם כלי CI/CD שמבטיחים שהפיתוח ימשיך להיות איכותי וזורם בצורה חלקה ומהירה ככל האפשר. "כלי CI/CD יש לכל אחת מהפלטפורמות GitHub, GitLab ו-Bitbucket", אומר אייל, "אלו כלים שמאפשרים למפתח לייצר את האימאג', לשמור את הקוד בתצורה מסוימת, להעלות אותו לפרודקשן בצורה אוטומטית, לבדוק אותו ועוד".
האוטומציה הזו היום היא הכרחית, ולכן כל מתכנת חייב להכיר את כלי ה-DevOps השונים אומר אייל, "אף ארגון לא ירצה שהמפתח שלו יעשו משהו בצורה ידנית. בנוסף, כאשר מדובר בחברות סטארט-אפ מדובר בהכרח – מי שכותב את התוכנה הוא גם זה שמעלה אותה לאוויר, וצריך לדעת הכל מהכל".