משתמש:כובען שפוי/טיוטה

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

CI/CD הוא קיצור של Continous Integration/Continous Delivery (או לחילופין Continous Deployment), דהיינו אינטגרציה רציפה של הקוד החדש לקוד המקור הקיים של התוכנה, ומסירה רציפה של גירסת התוכנה החדשה ללקוח.

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

רקע ותהליכי CI/CD

עריכה

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

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

תהליכים אוטומטיים שעשויים להיות חלק מתהליך הפייפליין הינם:

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

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

כלים המשמשים ליצירת CI/CD pipeline

עריכה

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

כלי CI/CD נפוצים הם Jenkins, Gitlab, Zuul וCircle CI. כלים אלה משמשים בדרך כלל מספר רב של מפתחים במקביל, כאשר 'עבודות' עבור מפתחים וצוותים שונים מתבצעות לפי תור, או בהתאם ליכולות העיבוד של השרת. לדוגמה, Job (תהליך פייפליין מוגדר) אחד יכול לשמש מפתח המעוניין להכניס את הקוד שלו למאגר הקוד של התוכנה, כאשר job אחר, שמופעל באופן אוטומטי באותו הזמן, יריץ בדיקות אוטומטיות על גירסה אחרת, שנמצאת בשימוש אצל אנשי הQA.

קישורים חיצוניים

עריכה


הערות שוליים

עריכה
  1. ^ Irani, Zubin (2018-03-28). "5 common pitfalls of CICD -- and how to avoid them". InfoWorld (באנגלית). נבדק ב-2017-12-21.
  2. ^ Heller, Martin (2015-07-20). "Continuous integration is not always the right answer. Here's why". TechBeacon. נבדק ב-2017-12-21.
  3. ^ Atlassian (2017-04-14). "Continuous integration vs. continuous delivery vs. continuous deployment". Atlassian. נבדק ב-2019-04-04.