נשאלתי לאחרונה בדיון בלינקדאין על ידי כמה אנשים שאינם מתחום התוכנה שביקשו הבהרה, מהו פוד בקוברנטיס?
🐋🐋🐋
התחלתי לכתוב תגובה, אך גיליתי שחרגתי בהרבה ממקסימום כמות התווים האפשרית לתגובה בלינקדאין...
📝✍️
!לכן כתבתי את המאמרון הבא, מקוה שהוא מבהיר
?קונטיירים, למה
השימוש הנפוץ במה שנקרא "קונטיינרים" היום הוא בעיקר בגלל שני דברים.
1. המעבר למתודולוגיית פיתוח agile - פיתוח במהירות גבוהה יחסית, כאשר משתחררת גירסה או מיני-גירסה של תוכנה כמה פעמים ביום.
2. המעבר לפיתוח בארכיטקטורה של microservices - מיקרו-סרוויסים, שזה רכיבי תוכנה קטנים העובדים יחד כדי להיות מערכת תוכנה גדולה.
!תביא לי קילו קונטיינרים
במערכות תוכנה מודרניות, משתמשים בהמון קונטיינרים קטנים מסוגים שונים כאלו כאשר כל אחד מהם אחראי על רכיב תוכנה קטן משלו ויחד הם מה שיוצרות את התוכנה הגדולה.
לדוגמא, אם יש לנו אתר לשיתוף תמונות חתולים, יש לנו רכיב קטן בתוכנה שאחראי שכל משתמש login רשום יכול להיכנס למערכת, מה שנקרא
אז יהיה קונטיינר שכל תפקידו בעולם זה להיות אחראי לפעולה זו של הלוג-אין ולהעביר הלאה לרכיבים אחרים שאכן המשתמש הרשום נכנס לאתר בהצלחה.
?מהו קונטיינר ומה הוא רוצה
בהפשטה גדולה, המושג "קונטיינר" הוא בעצם גירסא רזה של מיני מחשב וירטואלי שיכול להשתמש במשאבים מסויימים שהוא מבקש מהמחשב שעליו הקימו את הקונטיינר הזה.
המשאבים שקונטיינר צורך, הוא משאבים דומים למה שצורך כל מחשב בעצם, שזה כח עיבוד - CPU, זיכרון RAM, אחסון קבצים לדיסק וכמובן גם תקשורת אינטרנט בינו לבין קונטיינרים ומחשבים אחרים ברחבי הרשת.
כל המשאבים מוגדרים וניתנים בהקצאה עבור הקונטיינר על ידי המחשב שעליו הוא נוצר כדי שיוכל להשתמש בהם בעת ריצת מיני רכיב התוכנה שבתוך הקונטיינר.
כיון שכל תוכנה מודרנית היום מורכבת מעשרות, מאות ואף אלפים של קונטיינרים קטנים כאלו שרצים יחד כדי להיות התוכנה הגדולה, נוצר צורך בשוק לתוכנה שכל תפקידה תהיה לסנכרן בין הבקשות ולהקצות את המשאבים שכמות אדירה של המון קונטיינרים שנוצרו מבקשים מהמחשבים עליהם הם רצים.
מרבה נכסים מרבה דאגה
אחד התוכנות הכי פופולריות היום לעשות את הסנכרון הזה ולטפל בכל הבקשות והאירועים שקורים כאשר יש לנו כמויות אדירות של קונטיינרים נקרא Kubernetes - קוברנטיס.
קוברנטיס היא תוכנה שאב הטיפוס שלה וההשראה הגדולה ביותר שלה לגירסא שמפותחת היום נמצא במערכת תוכנה פנימיות שפיתחו בגוגל בשם Borg - בורג שפותחה בכדי לטפל בבעיה זו ממש.
במאמר המוסגר, בגוגל השתמשו בקונטיינרים עוד לפני רוב השוק והתעשייה וזה היה במשך שנים יתרון תוכנה סודי שוק שנתן להם יתרון שוק חזק בהפעלת מערכות תוכנה ענקיות שמשרתות את כמעט כל תושבי כדור הארץ.
?מה קורה תכלס
בפועל, בתוכנת קוברנטיס, כיוון שבדרך כלל אף פעם לא מריצים קונטיינר בודד אלא קבוצה של קונטיינרים יחדיו, היחידה הלוגית הקטנה ביותר שניתנת להרצה נקראת פוד - Pod, זה יחידה שמייצגת אחד או יותר קונטיינרים שנוצרים ורצים יחדיו על מחשבים שונים בתוך קוברנטיס ומנוהלים על ידו.
מקוה שעניתי על השאלה והבהרתי את העניין קצת.
שאלות? הערות?
תרגישו חופשי 🙏🏼🤗