האזינו באפליקציית Podli 🎧
עקבו אחרי הפודקאסטים האהובים עליכם, האזינו לא מקוון וברכב עם CarPlay ו-Android Auto, ותמיד המשיכו מאיפה שהפסקתם. אפשר לנסות בחינם.
[קישור לקובץ mp3] פודקאסט מספר 431 של רברס עם פלטפורמה. הוקלט ב-11 בינואר 2022 באולפנינו שבכרכור - שנה חדשה וטובה ועברנו את
רברסים 2021 בהצלחה -
היה מאוד מוצלח.היום
אנחנו מארחים את
אבי מחברת
Outbrain - ואנחנו הולכים לדבר על Multi-Repo vs. Mono-Repo וכל מה שביניהם.
(רן) אז
אבי - ספר לנו קצת עליך?
- (אבי) אני אבי ואני מהנדס תוכנה בצוות התשתיות ב-Outbrain, כבר קרוב ל-5.5 שנים ב-Outbrain
- הצוות שלנו נקרא DevX, או Development Experience - כל מה שמשתמע מהדבר הזה.
- באתי לספר על איך התחלנו ב-Outbrain, לפני קרוב ל-5.5 שנים - לתת איזושהי היסטוריה על ה-Transition, מאיפה התחלנו ואיפה אנחנו היום.
(אורי)
Multi-Repo ו-Mono-Repo זה ויכוח עתיק יומין - בכל חברה שגדלה . . .
(רן) רגע, אני אעצור אותך לשנייה - הייתה פה איזו
Easter Egg שהחבאת לנו . . . .מה זה DevX? מאיפה המצאתם את השם הזה? מה זה עושה?
- (אבי) אז Development Experience זה שם שהגיע ממשהו שאורי הטמיע לנו . . .
- (רן) אתה, אורי?
- (אבי) ויונתן . . . האמת שרצינו לעשות משהו, היה איזשהו Transition - הצוות הקודם היה Infra ורצינו לתת איזושהי חווייה הרבה יותר טובה לכל ה-Development שלנו.
- זאת אומרת - אנחנו נותנים את התשתיות שבהן משתמשים הצוותים השונים ב-Outbrain, וחוץ מזה גם נותנים איזושהי תמיכה ואיזשהו מענה לצוותים האלה.
- וגם חווייה טובה יותר לצוותי הפיתוח ביום-יום.
(רן) אז מה זה כולל - כלים שהמפתחים משתמשים בהם? . . .
- (אבי) דבר ראשון זה באמת התשתיות שבהן אנחנו משתמשים ב-Outbrain
- זה הכלים והואטומציות שמסביבם
- וגם כל תקלה שאנחנו יכולים, ברמת העיקרון, לטפל בה ולסייע לצוותים השונים.
- (אורי) אפילו - כצוות - באחריותכם ה-Container שלנו - ה-Application Server שלנו - שהוא . . .
- (אבי) כל דבר שאנחנו יכולים לתרום - לא משנה אם זה . . . כל בקשה - לא משנה אם זה “במסגרת האחריות” או לא, אם זה חלק מה-Scope - אנחנו ניתן מענה אם אנחנו נוכל.
(אורי) אני רק רוצה להגיד שהאמת שההקמה של הצוות הזה הייתה כחלק ממהלך יותר גדול - של מעבר לגילדות [
367 Guilds at Outbrain]
- במהלך המעבר הזה לגילדות, הבנו שהגילדה כנראה צריכה להחזיק - בין השאר - גם את “החווייה”: חוויית ה-Development של כל אחד מהמהנדסים.
- אז אמרנו - אוקיי, בואו גם נקים איזשהו צוות שיחזיק את זה, לצד הגילדה.
- אבל אתם עושים גם דברים שהם מעבר ל . . . “פיתוחים”, אני אגיד - ויותר קשורים לגילדה
- למשל ה-Bootcamp זה משהו שאתם . . .
- כל ה-Bootcamp, שזה משהו שאנשים עוברים דרכו ב-Onboarding שלהם, כמהנדסים - הצוות הזה גם דואג שה-Bootcamp הזה יתפתח . . .
- (אבי) אז הרבה לא יודעים מה זה “Boot-camp” . . .
- (רן) שכיבות סמיכה ב-VI . . .
- (אבי) כשאומרים “Bootcamp”, זה באמת משהו שהוא . . אנשים יכולים להבין משמעויות אחרות.
- ברמת העקרון, כל מהנדס שמגיע לחברה עובר איזשהו תהליך הכשרה - שהוא יכיר את כל הסטנדרטיזציה של החברה, יכיר את כל הכלים שאנחנו משתמשים בהם
- כדי שכשהוא יגיע לצוות עצמו, השאלות יהיו מאוד Straight-forward בשבילו.
- (אורי) זה מאוד מקצר את הזמן של New Employee או New Engineer להיות פרודוקטיבי.
- (אבי) בהחלט - אני רואה את זה ביום-יום . . .
(רן) וזה קורה אינטראקטיבית? ממש הדרכה, או שזה כזה “Online”?
- (אבי) אז זה . . . בוא ניגע בזה בדיוק, באיך שאני - בחווייה שלי בתור מפתח, כשאני הגעתי לפני 5.5 שנים - וגם ניגע באיך שבעצם התחלנו -
- אז כשאתה מגיע לOutbrain היום - כמו שהיה לפני 5.5 שנים, זה היה בעצם אותו התהליך רק שהיום הוא משודרג והוסיפו עוד כמה אלמנטים - אז אתה מגיע ל-Outbrain ואתה מתחיל את התהליך הזה, שהוא תהליך של שבועיים-שלושה, של הכשרה.
- אתה עושה git-clone - באותה תקופה הייתי צריך לעשות git-clone ל-Repository שהוא Mono-repo - זה נקרא Trunk, אורי מכיר אותו . . .
- אז זה בעצם Repository שהכיל את כל ה-Code base של Outbrain
- היום זה כבר microServices אבל אז זה היה Monolith אחד גדול.
- וזה היה לוקח הרבה מאוד זמן . . .
- אז בשביל מישהו שמתחיל בתהליך הזה, כשאתה עושה git-clone והולך לשתות קפה - ובאותו יום שתיתי המון קפה . . .
- (רן) בוא, תחתום על הטפסים של HR, תעשה git-clone ותחזור מחר . . .
- (אבי) בדיוק, על הדברים האלה אני מדבר.
- אז כן - יש את ההיכרות הזאת, מול הכלים השונים . . .
- (רן) שאני לא אגיד מה היה המצב כשאני הייתי שם . . . אני חושב שעוד היינו ב-Subversion . . .
- (אורי) כן - אבל ה-Repo היה הרבה יותר קטן . . .
- (רן) ה-Repo היה (1) הרבה יותר קטן ו . . . . כן . . .אבל לעשות commit היה לוקח הרבה זמן, כי השרתים היו קצת רחוקים.
- אבל מאז עברם ל-git, ועדיין -