מאחורי הקלעים של Jenkins Pipeline
במאמר הקודם, הצגתי את התהליך שבנינו בבית התוכנה שלנו, כדי לעשות Deployment מתמשך (CI/CD) לתוכנה ששמנו ב-cloud ע"י ג'נקינס.
במאמר הזה אסכם בקצרה מה קורה מאחורי הקלעים, ואיך זה עובד.
אז מה בעצם קורה, ואיך עשינו את זה?
בגדול- מותקן על הענן שירות Jenkins ועשינו לו חיבור שנקרא "pipeline" כלומר צנרת.
זה מתבטא בזה, שכדי לרענן גרסה בתוכנה – כל מה שצריך זה :
- לעדכן את בראנץ' Main שבספריית הגיטהאב – אם דרך פוש ישיר, או כמקובל בתעשייה – ע"י PR= Pull Request דרך האיזור בגיטהאב. גיטהאב הוא בעצם ה-Remote שלנו.
- להריץ את העבודה – "Job" שבג'נקינס. התהליך ירוץ תקין (במקרים שהכל תקין) ולאחריו הגרסה במערכת התוכנה תתעדכן.
כמו שהראינו במאמר שעבר, איך אנחנו עושים את זה צעד אחרי צעד.
איך זה עובד?
קודם כל מותקן על ה-cloud, דאטה בייס של מונגו שרץ ע"י השירות הייעודי שלו (systemctl )
ישנם חיבורים בתוך התוכנה שמקושרים לשירות זה, ולעניני אבטחה אחרים, כמו בכל תוכנה.
המידע הרגיש לגבי אותם שירותים, כמו פרטי התחברות ו-"סודות" – מפתחות סודיים למיניהם – הועלו לשרת ידנית עם קבצי .env שכידוע לא נכנסים לגיט במודע, ואמורים להיות נשתלים, באופן חד פעמי (או רק לעיתים רחוקות במידת הצורך) בקלאוד.
יצרנו שירות systemd בלינוקס, שתפקידו :
- להעתיק את הקוד המקומפל (הבנוי – npm run build) מתוך הספרייה של ה-job של Jenkins . אל ספרייה אחרת.
- להריץ את הקוד עם npm start מאותה ספרייה.
ע"י תוכנת WinSCP שדרכה אנו מתחברים לענן ורואים את זה בתור ממשק של ספריה – אנחנו יכולים למצוא את זה פה.נכון.

בג'נקינס הגדרנו את ה-job ע"י קובץ ה-JenkinsFile שנמצא בפרוייקט, ב-2 צעדים:
- בניית הפרוייקט ע"י npm run build
- לאחר זה – הרצת הסרביס הנ"ל מחדש.

ממילא – אם הבילד עובר בהצלחה, והתוכנה תקינה – היא תרוץ שוב בגרסה המעודכנת.
ואנחנו נקבל את הגירסה המעודכנת.
הגדרת התהליכים האלה בצורה נכונה ב-Cloud גורמת לתהליך היום לרוץ בקלות ויעילות.
לסיכום – טיפ שלי
תתעד בצורה ענינית ומסודרת קובץ – Admin-HOW TO .
כשאתם עובדים על cloud מסויים ובכלל בכל עניני הDevops כלומר העניינים שקשורים לIT שסביב התוכנה – תיפעול הענן, התקנת תוכנות, יצירת שירותים, סקירה התוכנות – אל תחשוב שזה בקלות בא לך ולא תתעד, וממילא כל פעם מחדש תיתקע ותצטרך לחקור מחדש על הפעולות.
אי אפשר לזכור הכל בע"פ וזה מאוד מטריח ומיותר לחקור כל פעם מחדש.
תיעוד הצעדים במסמך מסודר (כמו וורד עם כותרות), שימור הסיסמאות בצורה בטוחה, ושימוש בזה – עשוי לחסוך לך הרבה התעסקות בעתיד ובתחזוקת התוכנה.
בצורה כזו אנחנו חוסכים התעסקות רבה בתהליך ה-Deployment .
מקווה שהמאמר הזה היה לתועלת, מוזמנים לשתף.
על היוצר:
יזהר משקיף, CEO & CTO ב-פירמת התוכנה YIM-Programming
YIM-Programming בית התוכנה מהמובילים בישראל אשר מספק פתרונות תוכנה לעסקים וחברות.
המטרה שלנו: לפתור בעיות ע"י ייעוץ טכנולוגי, פתרונות תוכנה, וייעוץ כללי, וע"י כך לתת ללקוחות שלנו שמחה, הרגשה טובה ונחת, ולראות שאפשר לעשות דברים אחרים.
נשמח לתת לכם חוות דעת ראשונית על הבעיות שמטרידות אתכם.
ליצירת קשר:
yimprogramming@gmail.com
054-7477637
YIM Programming – The Way We're Doing Things