מה זה docker ולמה זה מגניב לאללה

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

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

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

מאחר שמדובר על פורמט סטנדרטי, אין מניעה "להפעיל" את הקובץ הזה במגוון מערכות הפעלה. יחד עם זה, קובץ דוקר שנבנה עבור x86/amd64 לא יכול לעבוד בסביבה של arm.

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

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

גם אם דוקר בעצמו רץ בצורה מאוד יעילה על המכונה המארחת, לגבי התקשורת הסיפור יותר מורכב. מעבדי מחשבים אינם בנויים לבצע הרבה משימות קטנות, ז"א, היכולת שלהם לבצע פעולות תקשורות (הכוללות הרבה חבילות קטנות של נתונים המגיעים באופן מקבילי) הינה פחות טובה. כך שלמרות שביצועי ה- io של והחישוביות של דוקר הינם טובים, התקשורת שלהם עוברת דרך docker proxy שהוא רכיב תוכנה הלוקח יחסית הרבה משאבים ועלול להשפיע לרעה בעיקר על ה- latency, מהירות התגובה. במה שנוגע kubernetes הבעיות אף מורכבות יותר. מאחר שהמערכת כוללת גם הרבה רכיבי נוספים הדורשים גם הם משאבי מיחשוב.

כיום אף אחד לא מעלה דוקר אל מערכות הייצור, אלא פועל באמצעות מערכות מורכבות כגון kubernetes. מה שגורם לאירגונים רבים לפתח בטכנולוגיות של micro servicing. ז"א, במקום שיהיה לנו בינארי אחד גדול (monolith) יש לנו הרבה רכיבים קטנים שכל אחד אמור לבצע משימה אחת מוגדרת היטב ולתקשר עם הרכיבים האחרים באופן סטנדרטי. תאורטית, ניתן לשדרג גירסא של רכיב אחד בתוך המערכת מבלי להשפיע על הביצועים ואפילו ללא downtime. אירגונים רבים קפצו על הרעיון מתוך מחשבה שיוכלו להגיע למחזורי פיתוח קצרים יותר, לפשט את תהליכי הפצת התוכנה ולדאוג ליתירות ועמידות גבוהה יותר של המערכת.

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

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

כלבי המוות של המלחמה

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

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

כשיורים עליך, הגוף כבר יודע מה לעשות, כיצד להתחבא ולירות בחזרה.

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

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

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

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

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

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

נגישות