ההיסטוריה המקוצרת של הקונטיינרים מ-Chroot ב-1979

דף הבית >> פיתוחים חדשים וצ'יפים >> ההיסטוריה המקוצרת של הקונטיינרים מ-Chroot ב-1979
ההיסטוריה המקוצרת של הקונטיינרים מ-Chroot ב-1979
מאת: רני אסנת, 14.6.17, 08:30רני אסנת

ההיסטוריה של קונטיינרים וירטואליים לפני ש-Docker כבש את הדמיון ופתח דלתות לשימוש נרחב יותר בקונטיינרים. קשה לדמיין חיי devops ללא האקוסיסטם של Docker. בפברואר 2016 השיקה CoreOS את rkt (קיצור של "rocket") מתוך כוונה להפוך לחלופה אמינה ל-Docker.
 
לפני מספר חודשים חגג Docker יום הולדת 4 והעלה בי זיכרונות ומחשבות עד כמה מהר הוא צמח לנגד עינינו.

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

19יוניקס79: Unix V7
כן, הייתי בן 11 באותו הזמן. במהלך הפיתוח של Unix V7 ב-1979, הושקה קריאת המערכת chroot, שהעבירה את ה-root directory של תהליך וילדיו למיקום חדש במערכת הקבצים.

חידוש זה היה תחילתו של תהליך הבידוד: חציצה של גישה לקבצים עבור כל תהליך. Chroot נוסף ל-BSD ב-1982.

20FREEBDS00: FreeBSD Jails
מזנקים כמעט 2 עשורים קדימה לשנת 2000, כאשר ספק קטן של אירוח שיתופי המציא את FreeBSD jails כדי להשיג הפרדה ברורה בין השירותים שלו לבין אלה של לקוחותיו, לצורך אבטחה וקלות ניהול.  FreeBSD Jails מאפשר לאדמיניסטרטורים לפצל מערכת מחשב FreeBSD למספר מערכות קטנות ועצמאיות, שנקראות "Jails", עם היכולת להקצות כתובת IP לכל מערכת ותצורה.

2לינוקס001: Linux VServer
כמו FreeBSD Jails, גם לינוקס VServer הוא מנגנון כליאה, שיכול לפצל משאבים (מערכות קבצים, כתובות רשת, זיכרון) על גבי מערכת מחשב. וירטואליזצייית מערכת הפעלה זו, שמוטמעת באמצעות עדכון של ליבת הלינוקס, הושקה ב-2011.

עדכונים ניסיוניים עדיין זמינים, אבל העדכון היציב האחרון הושק ב-2006.

2004: קונטיינרים של אורקל סולאריסאורקל
אורקל שחררה ב-2004 קונטיינר סולאריס המשלב בקרות משאבי מערכת והפרדת גבולות המסופקת ע"י zones, שהיו מסוגלים למנף תכונות כגון Snapshots ושיבוט מ-ZFS.

20OPEN Z05: Open Z (Open Virtuozzo)
זוהי טכנולוגיית וירטואליזציה ברמת מערכת הפעלה עבור לינוקס, שמשתמשת בליבת לינוקס, שעברה עדכון עבור וירטואליזציה, בידוד, ניהול משאבים ונקודות בקרה. הקוד לא שוחרר כחלק מליבת לינוקס הרשמית.

2006: Process Containers
Process Containers (הושקו ע"י גוגל ב-2006) תוכננו לצורך הגבלה, בקרה ובידוד שימוש במשאבים (מעבד, זיכרון, קלט/פלט דיסק, קישוריות) של אוסף תהליכים. השם שונה לאחר שנה ל-Control Groups (cgroups), ובסופו של דבר, הם התמזגו עם Linux Kernel 2.6.24.

2008: LXClxc
LXC (LinuX Containers) הייתה ההטמעה המלאה הראשונה של מנהל קונטיינרים לינוקס.
היא הוטמעה ב-2008 בשימוש ב-cgroups ו-Linux namespaces, והיא עובדת על ליבת לינוקס יחידה בלי לדרוש כל עדכונים.

CloudFoundry2011: Warden
CloudFoundry החלה את Warden ב-2011, בשימוש ב-LXC בשלביה המוקדמים, ומאוחר יותר החליפה אותה עם הטמעה משלה. Warden יכולה לבודד סביבות בכל מערכת הפעלה, לרוץ כ-daemon ולספק API (ממשק תכנות יישומים) לניהול קונטיינרים. החברה פיתחה מודל שרת-לקוח לניהול אוסף של קונטיינרים ברחבי מארחים (hosts) מרובים, ו-Warden כוללת שירות לניהול cgroups, namespaces ומחזור חיי Processes.

2013: LMCTFY
Let Me Contain That For You (LMCTFY) יצא לדרך ב-2013 כגרסת קוד פתוח של מערך הקונטיינרים של גוגל, כשהוא מספק קונטיינרים לאפליקציות לינוקס. ניתן להפוך אפליקציות לבעלות לקבל "מודעות לקונטיינר" וליצור ולנהל קונטיינרים משניים שלהן. פריסה  פעילה שלLMCTFY   נפסקה ב-2015 לאחר שגוגל החלה לתרום תפיסות ליבה של LMCTFY ל-libcontainer, שהוא עתה חלק של ה-Open Container Foundation.

2013: Docker והעתידדוקר
זה הסיכום שלי לנוף הקונטיינרים בעידן טרום Docker. לכל הגלגולים האלה היו המאמצים והמעריצים שלהם, אבל כאשר Docker הופיע ב-2013, פופולאריות הקונטיינרים זינקה. אין זו מקריות, שהגידול של Docker ושימוש בקונטיינרים הולכים יד ביד.

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

עם Docker, מפתחים יכולים ליצור ולהריץ במהירות אפליקציות קונטיינרים. ועם השחרור של Docker Hub, מפתחים יכולים להוריד ולהריץ קונטיינרים של אפליקציות אפילו מהר יותר.

בתוך 4 שנים בלבד, אני, כמו רבים אחרים, מתקשה לדמיין חיי devops ללא האקוסיסטם של  Docker. אני אוהב להיות חלק ממסע הצמיחה שלו, ומוצא, שפיתוח של מוצר אבטחה אינטגרלי לאקוסיסטם שלו היא חוויה מרחיבת לב ברמות רבות.

כמובן, Docker אינו לבדו בעתיד זה של הקונטיינרים. בפברואר 2016 השיקה CoreOS את rkt (קיצור של "rocket") מתוך כוונה להפוך לחלופה אמינה ל-Docker. כפי שתיארו היטב ב-InfoWorld : rkt מתכוון לבצע אותן משימות כמו Docker, אבל לעשות זאת טוב יותר כשיוכל.

בשנה האחרונה ראינו שינויים רבים, כגון  הגדרת containerd כפורמט הבסיס לקונטיינרים של Docker (ואשר לצד rkt, אומץ כסטנדרט ע"י CNCF, הארגון לטכנולוגיות ענן). במקביל ישנם מאבקים על השליטה בעולם ה-orchestrators, אותם כלים המנהלים פריסת קונטיינרים.

מאת: רני אסנת, יוני 2017.
סמנכ"ל השיווק של אקווה סקיוריטי

DOCKER
 
 
 
 



 
 
Bookmark and Share