כתבתי לא מעט פעמים פה על TravisCI. כלי שמסייע לי לבנות ׳בילד׳. אנחנו מזהים בילד בדרך כלל כמשהו שקשור לכל מיני שפות תכנות שצריכות קימפול על מנת לעבוד. אבל בילד הוא רלוונטי גם לשפות סקריפט כמו PHP או ג׳אווהסקריפט (ונילה). למה? כי בתהליך הבילד אני מכניס המון תהליכים אוטומטיים שעוברים על הקוד ומבצעים בו פעולות שונות. למשל בדיקת קוד סטטית שמוודאת תקינות של קוד, או בדיקות אוטומטיות, או בדיקת מורכבות של קוד. מלא תהליכים שרק אם הם עוברים אני מאשר את הקוד החדש ואפשר למזג אותו עם הקוד הקיים.
עם השנים נוספו עוד פעולות שניתן לעשות בתהליכי בילד. כמו למשל טרנספילציה של קבצי SASS\LESS לקבצי CSS. הוספה של prefixes לתכונות CSS. מיניפקציה, אגרגרציה ועוד. כש-babel ו-typescript נכנסו לסיפור הזה, גם קבצי הג׳אווהסקריפט עוברים טרנספילציות שונות.
ה-כלי בה״א הידיעה למפתחים בודדים וצוותים קטנים הוא TravisCI שמסייע ליישם תהליך של בילד בכל פעם שאני דוחף קוד לתוך branch בגיט.
אבל TravisCI יכול להיות בעייתי במיוחד כשאנחנו עולים בסקיילינג ובמורכבות של התוכנה שבה היא צריכה לתמוך. הכוח של TravisCI היא בכך שהיא פשוטה. זו גם הבעיה שלה. בדיוק בשביל זה יש לנו את Jenkins. כלי הרבה יותר מתקדם, עם הרבה יותר פונקציונליות ויותר חשוב: ניתן לכתוב לו הרחבות ותוספים בדיוק כמו וורדפרס לצורך העניין. המורכבות שלו תהפוך את Jenkins ללא רלוונטית למפתח הבודד, וזו גם הסיבה שאני לא מתייחס הרבה ל-Jenkins כאן אבל זה הכל שבו אני משתמש בעבודה שלי כאשר אני מייצר בילד כיוון שיש בו פונקציונליות שאין ב-TravisCI. מן הסתם, בגלל שאנחנו עובדים עם המון מתכנתים, יש לנו אנשי devops שמתפעלים אותו. אני לא מכיר הרבה מתכנתים שיצא להם להתקין ג׳נקינס. אבל הכרות עם הכלי הזה היא קריטית לכל מתכנת שחושב, רוצה לעבוד או כבר עובד בחברה גדולה.
יכולת לתפעל ולהבין את Jenkins היא קריטית למפתחים כיוון שבגרסאות החדשות עם ה-Jenkinsfile יש יכולת למפתחים ליצור קבצי הנחיות מפורטים לבילד ולבצע הליך של CI וגם של CD בקלות בלי להזיע יותר מדי.
אז איך מתחילים לעבוד איתו? צריך להתקין אותו. לא מדובר בשירות כמו TravisCI אלא בתוכנה שרצה על שרת שאתה אמור להפעיל. Jenkins מותקן על שרת נפרד on premise או בענן עצמו. אצלנו מתקינים אותו על אמאזון. אבל אפשר סתם לקחת שרת ולהתקין אותו עליו. אפשר להתקין את Jenkins על כל סביבה. גם על חלונות. גם עם דוקר. כמובן שעל סביבת פרודקשן חייבים להגן על השרת שנושא את Jenkins – עדיף עם firewall רציני.
במאמר הבא אני עומד להסביר על התקנה של Jenkins על דוקר ונראה קצת מה אפשר לעשות איתו.
3 תגובות
תודה על המאמר, מחכים למדריך הבא שמסביר על ההתקנה של Jenkins
מתי מגיע מאמר ההמשך??
נשמע מענין -הבנתי שאפשר ליצור לבד סקריפטים ולחבר אותם למערכת איך?