כשמפתחי התוכנה ואנשי ה-IT משתפים פעולה
חוסר שיתוף פעולה ותקשורת בין צוותי הפיתוח לאופרציה הנובעת מאג’נדות שונות מעיב על ארגונים רבים ● אסף הירשברג, ארכיטקט פתרונות ברד-האט ישראל, מסביר איך זה אפשרי
הבעיה הקיימת ברוב הארגונים היום היא חוסר שיתוף פעולה ותקשורת בין צוותי הפיתוח לאופרציה הנובעת מאג’נדות שונות. האג’נדה של אנשי הפיתוח מתמקדת בכלי הפיתוח בהם יבחרו לפתח את המוצר או הפיצ’ר, זמני פיתוח ו-go to market ואילו האג’נדה של אנשי הביצוע היא הורדת עלויות, אופטימיזציה למערכות ואבטחה.
חוסר התקשורת בין שתי הקבוצות מוביל לכך שאנשי הביצוע לא מעורבים בתהליכי הפיתוח של המוצר ומשתתפים רק בתהליך הקמת השרתים וההתקנה. הם נאלצים להתקין אפליקציה חדשה ללא תיעוד או מדריכים על אופן הניהול שלה, כאשר תהליך ההתקנה של האפליקציה כואב לשני הצדדים. כולם מנסים להימנע ממנו כמה שיותר ודוחים כמה שניתן הכנסה של תיקונים קטנים למוצר ומחכים עד שיש מספיק תיקונים להכניס ב-patch אחד מרכזי. דבר זה יכול להוביל לחוסר תאימות ואינטגרציה בתוך המוצר.
על מנת לפתור את הבעיה הזו ב-2008 הוצג מושג חדש אשר נקרא devops – תרבות ארגונית ומתודולוגיית עבודה אשר שמה דגש על שיתוף הפעולה והתקשורת בין מפתחי התוכנה לבין שאר אנשי ה-IT בחברה תוך ביסוס עקרונות חדשים בשלבי הפיתוח והניהול של האפליקציה.
הנה כמה מהעקרונות הללו:
- Everything as code & automate everything
עקרונות מנחים אלו הם מהחשובים ביותר בעולם של devops ומציגים עקרון עבודה בו כל תהליך בפריסת המערכת הינו אוטומטי לחלוטין וכך גם פתרון תקלות עתידיות. כך שגם אם התגלתה תקלה במערכת היא תתוקן ברמת הקוד שפורס את האפליקציה. - ci/cd
אלו הם עקרונות מבוססי כלי אוטומציה אשר מבצעים continuous integration ו-continuous deployment למערכת או אפליקציה שלנו. כל תהליכי הבדיקה של המערכת והפריסה שלו יתבצעו על ידי pipeline של כלים כדוגמת jenkins או GoCD אשר מבצעים אוטומציה מלאה מהרגע שהמפתח הכניס שינוי לקוד ועד לרגע שהקוד קיים בסביבת ה-production. - Monitoring
עקרון חשוב זה בא להדגיש את החשיבות של ניטור כל רכיב במערכת על מנת שתתקבל תמונה כללית של מצב המערכת ולמידתה על מנת שעל פי ספי ניטור נוכל לבצע תהליכים אוטומטיים במערכת כמו scale. - Rebuild vs repair
עקרון זה מכניס בתוכו חלקים מהעיקרון הראשון והרעיון שעומד מאחוריו הוא ש'אני לא מתקן דברים באופן ידני אלא מבצע rebuild לאפליקציה עם התיקון'.
devops נהייתה פופולרית רק בשנים האחרונות
אך למרות שהוצגה כבר ב-2008, devops נהייתה פופולרית רק בשנים האחרונות כאשר טכנולוגיית ה-containers נכנסה לתמונה וסיפקה אג'יליות ברמת התשתית. Docker containers אפשרה למפתחים לארוז את האפליקציות שלהם בתוך מעטפת שהכילה את כל ה-dependencies וה-frameworks הדרושים לתמיכה באפליקציה ולהעביר את אותו container לאנשי הביצוע כמוצר ארוז במעטפת ידועה מראש שאפשר לנהל באופן פשוט.
על מנת למנף את טכנולוגיית ה-containers ברמה מקסימלית דרושה לנו מעטפת בדמות פלטפורמה שתכיל בתוכה כלי פיתוח וניהול לכלל האפליקציות בארגון. לכן ברד-האט פיתחנו את פתרון ה-OpenShift אשר מבוסס על טכנולוגיית Kubernetes של גוגל ויצרנו פלטפורמה לניהול containers ברמת enterprise grade. זאת, על מנת שארגונים יוכלו לעבור לארכיטקטורת microservices מבוססת containers ולבסס מתודולוגיות devops בארגון בעזרת כלים ויכולות המגיעים בתוך Openshift הממומשים על טכנולוגיות קוד פתוח.
הכותב הוא ארכיטקט פתרונות ברד-האט ישראל.