PracticU

הסבר על Containers

בלי כתוביותעם כתוביות
PracticU › קורס Azure למתחילים - מבחן AZ-900 › הסבר על Containers
מילון מושגים:
Kubernetes - מערכת לניהול ותזמור של קונטיינרים בקנה מידה גדול, שמפעילה, מרחיבה ומתחזקת אותם אוטומטית.
Azure - פלטפורמת הענן של מיקרוסופט, המספקת שרתים, אחסון, מסדי נתונים ושירותים רבים לפי שימוש.
Git - מערכת מבוזרת לניהול גרסאות של קוד, שעוקבת אחר שינויים ומאפשרת עבודה משותפת בענפים.
Docker - פלטפורמה להרצת אפליקציות בתוך קונטיינרים מבודדים וקלים, כדי שירוצו באופן אחיד בכל סביבה.
Localhost - שם המפנה למחשב המקומי עצמו (כתובת 127.0.0.1), המשמש לבדיקת שירותים הרצים על אותו מחשב.
Elasticsearch - מנוע חיפוש וניתוח מבוזר שמאחסן ומאנדקס כמויות גדולות של נתונים לחיפוש מהיר.
MongoDB - מסד נתונים מסוג NoSQL שמאחסן נתונים כמסמכים בפורמט דמוי JSON, בלי מבנה טבלאי קשיח.
MySQL - מערכת ניהול מסדי נתונים יחסיים בקוד פתוח, נפוצה מאוד באתרים וביישומי אינטרנט.

הסבר על Containers
למה קונטיינרים תפסו מקום מרכזי, ובמה הם שונים ממכונה וירטואלית? ההרצאה מתחילה באיך שפיתוח אפליקציות השתנה ועוברת להבדל המעשי בין VM לקונטיינר.
מאפליקציה מונוליטית למיקרו סרוויסס
1. הבעיה הקלאסית: אפליקציות ענק עם מיליוני שורות קוד התעדכנו פעם בשנה בערך, וכשהרבה אנשים עובדים על אותו קוד גדול זה משבית את כולם.
2. מיקרו סרוויסס: כל שירות אחראי על פונקציה נפרדת, ואפשר לפתח מהר, לחלק בין צוותים ולשחרר דברים חדשים מהר, בעוד דברים יציבים מתעדכנים פעם בחודש. צריך כלי ניהול כמו Kubernetes.
3. דוגמת אמזון: החיפוש, הביקורות, התמונות, העגלה, המשלוחים ותיאור המוצר הם כולם שירותים עצמאיים, ולמשתמש זה נראה אתר אחד. אמזון מעדכנת בימי עבודה כל כ-11 שניות, וגם Garmin, Scotiabank, Allstate ו-The Home Depot מבצעות אלפי דיפלוימנטים.
מה זה קונטיינר
1. ההבדל משכבות ה-VM: ב-VM יש חומרה, היפרוויזור, מערכות הפעלה נפרדות ומעליהן האפליקציות. בקונטיינרים שכבת מערכות ההפעלה הנפרדות נעלמת: יש מנוע קונטיינרים אחד על מערכת הפעלה משותפת, וכל אפליקציה (למשל firewall, DNS או איזון עומסים) עושה רק את תפקידה.
2. ניוד קל: קונטיינר הוא קובץ רגיל, אפשר להעביר אותו בדיסק און קי, לשים ב-Azure או להפעיל על לפטופ.
3. אחידות וצפיות: כל קונטיינר מתנהג אותו דבר, בלי תלות בפאצ'ים של מערכת הפעלה.
4. מהירות: הפעלה נמשכת שניות, אין boot ואין ריסטארטים, ואפשר להגדיל ולהקטין בקלות.
5. Multi-cloud: אותו קונטיינר רץ ב-Azure, ב-AWS ובגוגל. שירותים כמו auto placement, auto restart, auto replication ו-auto scaling קלים להפעלה.
6. סביבות: העברה פשוטה בין פיתוח, בדיקות ופרודקשן.
הדגמה
לעומת הרמת דף אינטרנט עם מכונה וירטואלית, Apache, Git ו-Chef, עם Docker מספיקה התקנת Docker Desktop (חינמי) ופקודה אחת מסוג docker run -d -p 8080 עם image של nginx, ואז בדפדפן ב-localhost מופיע "It works". ב-Docker Desktop יש גם Kubernetes מובנה, ובאתר של Docker יש אלפי images מוכנים לשימוש חינם.
נתונים ושימושים
לפי המרצה, הקונטיינרים צומחים מהר יותר ממכונות וירטואליות, ואפליקציות נפוצות שרצות בהם הן NGINX (איזון עומסים, מיקרו סרוויסס, API gateway), Redis, Postgres, Elasticsearch, MongoDB ו-MySQL.
אחרי ההרצאה אפשר להסביר מה ההבדל בין VM לקונטיינר ולהריץ קונטיינר אחד בעצמכם.
השיעור הבא בקורס: הסבר על Kubernetes

פרקי ההרצאה: הסבר על Containers

  1. 00:00

    מאפליקציות מונוליטיות למיקרו-שירותים

  2. 00:57

    פירוק השכבות למיקרו-שירותים

  3. 02:05

    דוגמת אתר Amazon

  4. 03:32

    קצב דיפלוימנטים בחברות גדולות

  5. 04:06

    מהו Container מול מכונה וירטואלית

תמלול ההרצאה: הסבר על Containers

הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על Containers» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:24

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

  3. 00:40

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

  4. 00:53

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

  5. 01:07

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

  6. 01:21

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

  7. 01:33

    מה שהיה בעבר, אתה רואה עם 3-Tier-App, 3-Tier-Application, מה שקרא מונוליטי, היה לנו לוד בלנסר, דיברנו על לוד בלנסר אם אתם זוכרים, עם Web Layer, כל שרתי ה-Web, עוד לוד בלנסר ל-Business Layer ועוד לוד בלנסר ל-Database Services.

  8. 01:47

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

  9. 02:05

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

  10. 02:21

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

  11. 02:31

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

  12. 02:46

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

  13. 02:58

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

  14. 03:09

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

  15. 03:28

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

  16. 03:38

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

  17. 03:50

    סקוטיה בנק, אנחנו לא כל כך עובדים איתו בישראל, אבל עושים 3,000 דיפלוימנטים בחודש. Allstate, חברת בריאות, עושה מעל 11,500 דיפלוימנטים בשנה.

  18. 04:03

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

  19. 04:15

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

  20. 04:26

    עליו יש Hypervisor, Virtual Machine Monitor, VMware, Hyper-V, Nutanix, ועליו יש מכונות וירטואליות. מה שאני רוצה, לינוקס, וינדוס, מה שבא לי אני מתקין, ועליו רצות האפליקציות.

  21. 04:38

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

  22. 04:48

    כי לא צריך אותה בעולם הקונטיינרים.

לקורס המלא: קורס Azure למתחילים אונליין

ההרצאה הקודמת: הסבר על Load Balancer ב-Azure

ההרצאה הבאה: הסבר על Kubernetes

הרצאות קשורות מקורסים אחרים

  • פקדי מיכל - Containers

קורסים נוספים במסלול

  • קורס Azure למתחילים - ענן של מיקרוסופט
  • קורס שרתי דואר בענן - Exchange online 365
  • קורס Sharepoint - למנהלי רשת