יום שני, יולי 14, 2025

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

דיברתי לא מזמן עם מספר חברים לגבי מערכות CI/CD בשוק והבנתי שמערכות כמו שאני בניתי היום פחות מקובולות אצל חלק מהמפתחים והמנהלי המערכות.
 
קודם כל צריך להבין שמערכת ה CI/CD צריכה להתאים לתאגיד איתו עובדים, אני אתן דוגמא, אני מעריך מאוד את מערכות ה CI של gitlab, מדובר באחד הכלים הכי פשוטים לעבודה שקיימים, זה פשוט עובד. אבל ויש אבל מאוד גדול זה לא מתאים לכולם, למרות שאני משתמש בפתרון הזה בחלק מפרוייקטי הקוד הפתוח להם תרמתי , עדין מערכת ה CI/CD אחרות איתן אני עובד היא פנימית, כי זה מתאים יותר לצרכים של המקום.
 
יש גם כאלה המשתמשים ב docker בגלל הנוחות של התהליך, והאמת באחד ממערכות ה CI/CD שלי אני משתמש בדוקר לחלק מהדברים ואני משתמש בתמונות מ mcr.microsoft.com כי זה האקו סיסטם איתו אני עובד, כן תתפלאו יש דוקר לוינדוס, ואפשר להתקין SQL Server  ואפילו תמונות של Windows Core ואם אתם מכירים דוקר אתם יודעים מה הוא החלק המעניין בין שני השמות האלה בדוקר ומה זה אומר (רמז שני סוגים שונים של מכולות).

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

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

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

אני מבין מתכנתים צעירים שרוצים להעביר מערכות שלמות ואקו-סיסטם קיימים למשהוא שהם מקירים בשפה שהם מכירים או בשפה שהם רוצים ללמוד, אבל בעסקים ובפרוייקטים גדולים זה לא עניין של חוסר רצון לשנות, זה קודם כל ענייני מחיר-תוועלת, בסופו של יום ניתן לבצע המרה של  חלקים רבים לפייתון, אבל השאלה הנשאלת מה הוא הייתרון לתהליך שיהיה שם, אני זוכר איך בתור מתכנת צעיר ונלבס ביקשתי להעביר קוד שיעבוד ב Qt, הגעתי עד לCTO , ואז בסופו של יום הוא שאל אותי שאלה שהיום אני שואל, נניח והשקענו כמה אלפי שעות מתכנתים בשביל לעבור למערכת הזאת, מה הייתרון של זה בשביל החברה ? מה הייתרונות של זה ללקוחות, איך זה מקדם את החברה, מה הרווח של זה לחברה, הוא אמר לי, כשאתה תהיה מסוגל לענות ולמכור לי את זה, ולהראות את הייתרון התעשיתי של זה לחברה אז אפשר לדבר,  אני חייב להודות שהשיחה הזאת לימדה אותי די הרבה, ונתנה לי גם הערכה די טובה למערכות הניהול, לשיחה ההיא אני הגעתי עם הרבה הסברים טכנים, על אחזקה, על יכולות פיתוח עתידיות , אל דברים טכניים, אבל בסופו של יום העולם הטכני בתאגידים הוא לא הרכיב העיקרי. אני חושב שהתרבות שניתן לדבר בחלק מהתאגידים אצלנו (בשונה מהמצב בארה"ב למשל) מאפשר לקדם דברים הרבה יותר בקלות.

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

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

אין תגובות: