OpenAI בנתה שרת Git משלה: Pando קיצר את זמן הדחיפה החציוני בכמעט 80%
OpenAI פיתחה את Pando, תשתית Git פנימית שתואמת לכלי Git הרגילים ונבנתה עבור המונו-ריפו של החברה. לפי הדיווח, המערכת קיצרה בכמעט 80% את הזמן החציוני של פעולת push, והיא מעבירה כיום כמעט פטהבייט של נתוני Git ביום.
OpenAI פיתחה תשתית Git פנימית בשם Pando, שנועדה לשרת את המונו-ריפו של החברה, כלומר מאגר קוד יחיד ועצום שבו נמצא חלק גדול מהקוד שלה. לפי הדיווח ב-MarkTechPost, המערכת קיצרה בכמעט 80% את הזמן החציוני של פעולת push, והיא מעבירה כיום כמעט פטהבייט של נתוני Git ביום.
מה זה בעצם
Git הוא הכלי שבו משתמשים רוב המפתחים בעולם לניהול גרסאות של קוד. כל מפתח עובד על עותק מקומי, ומדי פעם "דוחף" (push) את השינויים שלו לשרת המרכזי או "מושך" (fetch) משם את השינויים של אחרים. בדרך כלל השרת הזה הוא שירות כמו GitHub או GitLab, או שרת Git רגיל שהארגון מתחזק בעצמו.
Pando הוא backend, כלומר רכיב צד שרת, שהוא תואם Git. מבחינת המפתח, הפקודות המוכרות ממשיכות לעבוד כרגיל. השינוי הוא באופן שבו השרת שומר את הנתונים ומגיש אותם.
שני השינויים המרכזיים
לפי הדיווח, ההבדל של Pando משרת Git סטנדרטי נשען על שני רעיונות:
- טיפול נפרד בכל ענף (branch). ענפים הם קווי פיתוח מקבילים בתוך אותו מאגר. Pando מטפל בכל ענף באופן עצמאי. ככל הנראה המטרה היא שעבודה בענף אחד לא תאט או תחסום פעולות בענפים אחרים, בעיה מוכרת במאגרים גדולים שבהם אלפי שינויים נדחפים במקביל.
- שימוש חוזר ב-packfiles שמורים. Git אורז אובייקטים (קבצים, גרסאות והיסטוריה) לקבצים דחוסים שנקראים packfiles. ברוב השרתים, כשמפתח מושך נתונים, נבנית עבורו חבילה מותאמת, וזו פעולה כבדה מבחינת חישוב. Pando עושה שימוש חוזר בחבילות שכבר נשמרו, בין פעולות fetch שונות. המשמעות, ככל הנראה, היא חיסכון משמעותי בעבודה כפולה של השרת.
המספרים
שני נתונים בולטים בדיווח: ירידה של כמעט 80% בזמן החציוני של push, ונפח של כמעט פטהבייט (אלף טרהבייט) של נתוני Git שעוברים במערכת בכל יום. מדד חציוני משקף את החוויה של המפתח הטיפוסי ולא רק את המקרים הקיצוניים. קיצור כזה מורגש בעבודה היומיומית של מהנדסים, שדוחפים קוד פעמים רבות ביום.
הנפח היומי מעיד על היקף הפעילות ההנדסית בחברה. סביר להניח שחלק מהתעבורה מגיע ממערכות אוטומטיות, כמו שרתי בדיקות ו-CI, וייתכן שגם מסוכני קוד, ולא רק ממפתחים אנושיים. עם זאת, החלוקה הזאת לא מפורטת בחומרים שבידינו.
למה זה חשוב
הסיפור הזה פונה בעיקר למפתחים ולצוותי תשתית, אבל הוא מלמד משהו גם על התעשייה. חברות טכנולוגיה גדולות שעובדות במונו-ריפו נתקלות לאורך השנים בגבולות של Git הסטנדרטי, וחלקן בונות פתרונות משלהן. OpenAI מצטרפת כעת לרשימה הזאת.
ההערכה היא שככל שכמות הקוד שנכתבת, נבדקת ונדחפת עולה, בין היתר בזכות כלי AI שמייצרים קוד בקצב גבוה, תשתיות ניהול הגרסאות יהפכו לצוואר בקבוק. Pando הוא דוגמה לחברת AI שמשקיעה בשכבה ה"משעממת" הזאת כדי שהפיתוח עצמו לא יאט.
בחומרים שבידינו אין מידע אם OpenAI מתכוונת לשחרר את Pando כ-open source או להציע אותו לשימוש חיצוני. כרגע מדובר בתשתית פנימית.