WEBA

Docker: מה זה?

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

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

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

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

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

כלים שהמונח חי בהם