אינטגרציה של החיים: כיצד CI/CD מייעלת משמעותית פיתוחים ב-2021?

פעם צוותי פיתוח היו משלימים משימות ומגלים שהקצוות שלהם לא מתחברים ● כיום מתודולוגיות וכלי CI/CD מאפשרים פיתוח מהיר ויעיל מאי פעם

25/08/2021 11:46
אמיר עוז, יועץ טכנולוגי לארגונים ומנכ"ל חברת הייעוץ ניו אדווייס.

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

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

בשביל לצמצם מקרים כאלו פותחה מתודולוגיית CI/CD. איך היא פועלת וכיצד היא מייעלת את כל תהליך הפיתוח? המשיכו לקרוא.

CI/CD: אינטגרציה מתמדת, פרסום מהיר, מפתח שמח

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

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

CI/CD הוא הצינור שמאפשר את כל אלו. משמעות המונח היא Continuous Integration/Continuous Delivery. כלומר אינטגרציה רציפה ומסירה רציפה (לעיתים ה-D מסמלת גם Deployment, כלומר פריסה).

נעצור רגע לנשום, ונסביר.

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

לפיכך, CI/CD הוא תהליך שאמור להתבצע באופן שוטף על ידי כל הצוותים המעורבים בפיתוח. בשלב ראשון, בסוף כל יום צוותי הפיתוח מעבירים את הקוד למערכת ניהול גירסאות (Repository) כמו Git. המערכת מריצה בדיקות אוטומטיות על הגירסה החדשה בשרתי בנייה (Build Servers) כמו Jenkins CI. היא תעדכן את המפתחים אם תמצא תקלה בקוד עצמו או באינטגרציה עם פיתוחים אחרים. בשלב הבא יתבצע עדכון הגירסה, בין אם בצורה ידנית (Delivery) או אוטומטית לחלוטין (Deployment).

על הנייר זה נשמע מצוין. מה קורה בפועל?

העולם שייך לאינטגרטורים: ההשפעה של CI/CD על פיתוחים

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

אבל למרות הפוטנציאל העצום שגלום ב-CI/CD, בסקר שנערך על ידי GitLab ב-2020, נראה, כי רק 38% מהארגונים הטמיעו תהליכי CI/CD. נתון זה (שכנראה צמח בינתיים במידת מה) מזכיר, שלוקח זמן להטמיע מתודולוגיות וכלים שיש בהן מן השיבוש (Disrupt). האם בעתיד כל גוף פיתוח שמכבד את עצמו יאמץ את השיטה?

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

 

הכותב כיהן כמנמ"ר מימון ישיר וכיום משמש כיועץ טכנולוגי לארגונים ומנכ"ל חברת הייעוץ New Advice.

תגובות

(2)

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

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

  1. מני

    CI/CD זה החיים. לא מוותר על זה בעד שום משרת פיתוח שבעולם

  2. אגמי

    מניסיון הז ממש מגשר על הפערים בין צוותי הפיתוח ומייעל את העבודה. CI/CD הוא עמוד השדרה של פעולות DevOps המודרניות.

אירועים קרובים