מדוע כדאי להשתמש ב- Docker ובמכולות

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

מכולות Docker מספקות דרך לתפוס תוכנה. אתה יכול להשתמש ב- Docker כדי לעטוף יישום באופן שנושאי פריסתו וזמן הריצה שלו - כיצד לחשוף אותו ברשת, כיצד לנהל את השימוש באחסון ובזיכרון ו- I / O, כיצד לשלוט בהרשאות גישה - מחוץ ליישום עצמו, ובאופן עקבי בכל האפליקציות ה"מכולות ". אתה יכול להריץ את מיכל ה- Docker שלך בכל מארח תואם מערכת הפעלה (Linux או Windows) שמותקן בו זמן הריצה של Docker.

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

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

לפני מכולות דוקר

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

ואז הגיע הוירטואליזציה. פלטפורמות וירטואליזציה (המכונות גם "hypervisors") אפשרו למספר מכונות וירטואליות לשתף מערכת פיזית אחת, שכל מכונה וירטואלית מחקה את התנהגותה של מערכת שלמה, עם מערכת הפעלה, אחסון ו- I / O משלה, באופן מבודד. . כעת ה- IT יכול להגיב בצורה יעילה יותר לשינויים בדרישות העסקיות מכיוון שניתן לשכפל, להעתיק, להעביר, ולסובב מחשבים וירטואליים למעלה או למטה בכדי לענות על הביקוש או לחסוך במשאבים.

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

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

יתרונות למכולה של דוקר

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

היתרונות של מכולות Docker מופיעים במקומות רבים. להלן כמה מהיתרונות העיקריים של Docker ומכולות:

Docker מאפשר שימוש יעיל יותר במשאבי המערכת

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

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

Docker מאפשר מחזורי מסירת תוכנה מהירים יותר

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

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

Docker מאפשר ניידות יישומים

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

Docker זורח לאדריכלות מיקרו-שירותים

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

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

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

בעיות מכולות Docker אינן פותרות

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

Docker לא יתקן את בעיות האבטחה שלך

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

Docker לא הופך יישומים בצורה קסומה למיקרו-שירותים

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

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

Docker אינו תחליף למכונות וירטואליות

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

המקרה למכולות Docker

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