האם קונטיינרים הם התחליף האולטימטיבי להייפרוייזורים כפתרון לוירטואליזציה?

האם הקונטיינרים דחקו לחלוטין את ההייפרוייזורים והפכו אותם לבלתי רלוונטים יותר? השוואה

container PD

מאת תומר וולף, דירקטור פתרונות תקשורת ב-Asocs.

לאחרונה, טכנולוגיה חדשה בתחום הוירטואליזציה, מושכת תשומת לב רבה ומייצרת באז בקהילת הקוד הפתוח. מדובר כמובן בקונטיינרים, ובמימושים שלה כגון docker & LXC. בפוסט זה ננסה לבחון את היתרונות והחסרונות של כל טכנולוגיה ואת מטרותיהן השונות.

וירטואליזציה משמעה אופטימזציה של שימוש במשאבי חומרה ע"י בניית שכבות של מערכות הפעלה, החולקות את משאבי החומרה.

הייפרוייזורים

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

יתרונות

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

חסרונות

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

קונטיינרים

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

ניתן להריץ מספר קונטיינרים על אותה מכונה, כאשר כל קונטיינר הוא למשל גרסה אחרת של אותה תוכנה. קונטיינר הינו פיתרון לבעית DevOps – אופרציית ניהול משאבים.

יתרונות

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

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

חסרונות

בעוד שהייפרוייזור מאפשר התקנת מכונות וירטואליות עם מערכות הפעלה שונות (למשל host לינוקס ו Guest חלונות), הרי שטכנולוגיית הקונטיינר מחייבת כי כל המכונות הוירטואליות יחלקו את ה-Kernel של ה host. כלומר אם ה host הוא מסוג לינוקס, הרי שהקונטיינרים בהכרח יהיו לינוקס גם כן (לאו דווקא מאותו distribution).

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

סיכום

למרות שמדובר בשתי טכנולוגיות וירטואליזציה, הרי שהן בעיות לפתור בעיות שונות, ולכן מדובר בטכנולוגיות משלימות.

היפרוויזורים באים לפתור את בעיית ניהול המשאבים ע"י מערכת החומרה – כיצד מספר מכונות וירטואליות יכולות לרוץ במקביל על שרת פיזי אחד?

קונטיינרים פותרים בעית אופרציה וניהול, מאפשרים למפתחים להתרכז בפיתוח במקום לבזבז זמן יקר על התקנות, למשל – התקנת גרסא ספציפית וחבילות מתאימות של LAMP. הטכנולוגיה מאפשרת בפשטות פריסת סביבת פיתוח הזהה לשרת Production, ואף מאפשרת להריץ על אותו Host מספר קונטיינרים, כאשר כל אחד מהם הינו סביבת פיתוח של אותה תוכנה, בגרסא וקונפיגורציה שונות. החיסכון בפעולות DevOps הוא רב. ברור כי הקונטיינרים אינם תחליף למכונות וירטואליות, אך היכן הערך המוסף שלהם גבוה במיוחד?

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

הכתבה בחסות ASOCS

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

כתב אורח

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

הגב

4 Comments on "האם קונטיינרים הם התחליף האולטימטיבי להייפרוייזורים כפתרון לוירטואליזציה?"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 
Sort by:   newest | oldest | most voted
shukydvir
Guest

״בעוד שהייפרוייזור מאפשר התקנת מכונות וירטואליות עם מערכות הפעלה שונות, הרי שקונטיינרים מחייבים כי כל המכונות הוירטואליות יהיו מאותה מערכת הפעלה של ה-HOST.״ – פשוט לא נכון.
אתה יכול להריץ מספר Docker containers במקביל על אותה מכונה וכל אחד מהם יהיה מסוג מערכת הפעלה שונה, הדבר היחידי שמשותף לכל ה-Docker contaniers ול-HOST הוא ה- Kernel.

בכללי פוסט שמכיל הרבה דברים לא נכונים, חבל.

Omer Kushmaro
Guest

אין מה להשוות בין VMs ל Containers כיוון ששניהם פותרים בעיות שונות לחלוטין.
VMs פותרים בעיית אופרציה של שרתים ומערכות הפעלה שקשורות לחומרה, וContainers פותרים בעיה של אפליקציה שקשורה לLinux distro, חבילות ספציפיות, וסביבת deployment.

אחת בעית סיסטם, אופרטיבית,
והשניה בעית פיתוח, אפליקטיבית.

״מדובר בחלוקה של מערכת ההפעלה בין מכונות שונות״ –
Container הוא process על גבי מ״ה בודדת, ובשום פנים ואופן לא יכול להיחשב כ״מכונה״

Gal
Guest

תגידו, יש אתר טכנולוגיה אחר ?
אני שואל ברצינות אל בלי שטויות.

Omer Kushmaro
Guest

כנראה שלא, אבל זה לא אומר שצריך לתת לחבר׳ה פה פידבק כשהם מביאים כתב ממומן שלא יודע על מה הוא מדבר…

wpDiscuz

תגיות לכתבה: