מדוע הפכה Docker לאחד הנושאים החמים בפיתוח?

אין כאן המצאה גדולה אלא יותר שדרוג משמעותי שפותר לא מעט בעיות. כיצד הפכה Docker לאחד הדברים החמים בעולם הפיתוח?

docker

הפוסט נכתב על ידי ברוך סדוגורסקי, JFrog Developer Advocate.

הלוגו של Docker מציג לוויתן שנושא עליו מכולות. למעשה התמונה ממחישה את סיפור המוצר בו היישומים מובלים במכולות במהירות וביעילות ליעדם. Docker הינה טכנולוגיית וירטואליזציה “קלת משקל”. מדובר בטכנולוגיה המנצלת יכולות של הקרנל של לינוקס (Linux Kernel) כדי לאפשר התקנת יישומים המבודדים הן ממערכת ההפעלה והן זה מזה, באופן יעיל הרבה יותר משהיה ניתן עד כה באמצעות טכנולוגיות וירטואליזציה מסורתיות.

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

יותר שדרוג מהמצאה חדשה

המונח מכולה הוא מושג ותיק, שנעשה בו שימוש כבר בשנות ה-90 גם ב-FreeBSD וגם ב-Solaris. מהבחינה הזאת מדובר כאן בסיפור של התייעלות ולא המצאה. היכולת להקל על העבודה באמצעות כלים עם טכנולוגיות קיימות. הרעיון להעביר “סחורות”, או במקרה שלנו יישומים, במכולות שהן בגודל סטנדרטי מאפשר לחסוך במקום ומשאבים. הסטנדרטיזציה והיכולת לבצע Snapshot (ביטול פעולות שנעשו) הן שהופכות אותו למוצר מבטיח ולשם החם הנוכחי.

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

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

עד ל-Docker היו סוגים שונים של (VM (Virtual Machine שהיו בנויים ממערכת ההפעלה ומהתוכנה שהתקינו עליהן, כאשר הגדלים לא היה מוסדרים וכל אחד עשה זאת כרצונו. לא הייתה קיימת סטנדרטיזציה וכל מחשב צרך משאבים שונים. Docker משתמש בתשתיות הווירטואליזציה כדי להכתיב סטנדרט לניהול של המשאבים שאנחנו צורכים כשאנחנו עושים VM. כעת כל מכולה היא אוטונומית ומוגדרת מבחינת המשאבים שהיא צריכה. בידוד של המכולות הללו אחת מתוך השנייה, מאפשרת להריץ כמה תוכנות מאותה גרסה מאותה המכונה. הדבר מאפשר להפריד בין המכולות או לחילופין להחליט שאנחנו רוצים שיהיה ביניהן ממשק. המגבלות שהיו בעבר כבר לא קיימות ואנחנו יכולים לעבוד על המכולות במקביל, זאת כשהן מופרדות לגמרי אחת מהשנייה.

להפטר מ-99% מהתקורה

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

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

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

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

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

הכתבה בחסות JFROG

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

כתב אורח

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

הגב

3 תגובות על "מדוע הפכה Docker לאחד הנושאים החמים בפיתוח?"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

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

סידור לפי:   חדש | ישן | הכי מדורגים
devopsisrael
Guest

למי שמעוניין להיפגש עם אנשים ולדבר על דוקר קבוצת המיטאפ http://www.meetup.com/docker-tel-aviv דוקר תל אביב מחפשת מרצים וגם סתם בקשות להרצאות שהצוות שלנו ישמח להעביר. תצטרפו!

מיכאל
Guest
ניפוץ מיתוסים ותיקון שגיאות: 1) “הקרנל של לינוקס”: לינוקס הוא הקרנל. 2) “כאשר כל מכל הוא מערכת עצמאית לחלוטין אותה ניתן להפיץ ללקוחות או לשרתים אחרים”: נכון רק בתאוריה. בפרקטיקה נשען על ההנחה ששרתים אחרים ישתמשו באותה גרסת קרנל ו- Docker. 3) “עד ל-Docker היו סוגים שונים של (VM (Virtual Machine שהיו בנויים ממערכת ההפעלה ומהתוכנה שהתקינו עליהן (…) לא הייתה קיימת סטנדרטיזציה וכל מחשב צרך משאבים שונים.”: לא נכון. OVF ו-VMDK הן דוגמאות לפורמטים של ווירטואליזציה. בכל מכונה וירטואלית ניתן להגביל את כמות הזכרון, ה-IO והמעבד שהיא תקבל. 4) “הסטנדרטיזציה והיכולת לבצע Snapshot (ביטול פעולות שנעשו) הן שהופכות אותו… Read more »
Docker101
Guest

גם אנחנו מאמינים ש-Docker זה הדבר הבא בעולם הפיתוח וה-DevOps. לכן הקדשנו מאמצים רבים ללמוד ולהתמחות בתחום.

אם אתם מעוניינים בייעוץ או קורס הדרכה (בסיסי, מתקדם) פרטי או במקום העבודה שלכם, צרו קשר ב-info [at] docker101 [dot] com

wpDiscuz

תגיות לכתבה:

נותרו עוד
00
ימים
:
00
שעות
:
00
דקות
:
00
שניות
לכנס המפתחים הגדול בישראל