• בלוג
  • קורס Docker ו Kubernetes

קורס Docker ו Kubernetes

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

1. מה בקורס

ב 2013 סלומון הייקס מסתכל על העולם ורואה שחור בעיניים: מתכנתים נאבקים במחשבים כדי להעביר את הקוד שלהם ממכונת הפיתוח לפרודקשן, אנשי QA מעבירים דיווחים על באגים והמתכנתים פשוט זורקים "זה עובד אצלי על המחשב" ושרתים שלוקח נצח לקנפג ואף אחד לא מעז לגעת בהם. סלומון הייקס, אגב, היה באותו זמן מייסד של חברת ענן בשם dotCloud, שאיפשרה למתכנתים להעלות מערכות שהם כתבו לענן (קצת כמו הרוקו הוותיקה מהם). הייקס ראה טוב מאוד כמה קשה למתכנתים להעביר את המערכות שלהם לענן של דוטקלאוד ובאותו זמן הוא ראה את היכולות הטכנולוגיות של ה Linux Kernel והבין שהוא עלה על סטארט אפ חדש.

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

קורס Docker פה באתר מחולק ל-4 פרקים:

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

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

  3. בחלק השלישי כבר לוקחים צעד קדימה לכיוון החיים בענן. אנחנו נלמד איך לבנות אימג'ים ו Dockerfile-ים משלנו כדי שנוכל לשתף את העבודה שלנו עם אחרים.

  4. ובחלק הרביעי נראה איך להעלות את כל מה שכתבנו לקלאסטר שרתים בענן באמצעות תוכנת Kubernetes.

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

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

בסיום הקורס יהיו לכם תשובות טובות לשאלות הבאות:

  1. מה זה אומר לרוץ בתוך קונטיינר, מה המגבלות של הקונטיינר.

  2. איך לעבוד עם Docker משורת הפקודה.

  3. איך לעבוד עם docker-compose בצורה יעילה - כולל ניהול של מספר סביבות עבור בדיקות ועבור Staging.

  4. איך לשמור מידע רגיש באמצעות Secrets.

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

  6. איך קונטיינרים מתקשרים אחד עם השני ועם העולם החיצון.

2. מה השארתי בחוץ

בעבודה על הקורס התחלתי עם חלום מאוד גדול לייצר קורס שמלמד עבודה בסביבת Micro Services ובענן. דוקר הוא כמובן כלי עבודה מרכזי בסביבה זו, אבל חוץ ממנו יש עוד אינסוף טכנולוגיות שאנחנו משתמשים בהן בכתיבת מוצר מבוזר מבוסס Micro Services, טכנולוגיות כמו GraphQL, syslog, oauth, Message Queues.

במקביל אנשי Devops בכל ארגון מייצרים תהליכי אוטומציה באמצעות כלי CI, כלים כמו Github Actions או Jenkins, שמטפלים בכל התשתית שמעבירה קוד ממכונה למכונה.

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

בתקופה הקרובה אני מתכנן להעביר מספר וובינרים על פיתוח בסביבת Micro Services ועל הקמת אוטומציות. כבר בחודשים הקרובים מתוכננים וובינרים על RabbitMQ ועל Auth0, וברבעון הבא אני מתכנן לשלב וובינר על Github Actions והקמת אוטומציה של Deployment באמצעותו. אם תהיה התעניינות אולי ארחיב חלק מהנושאים האחרים לקורסים משלהם.

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

קישור לקורס דוקר: https://www.tocode.co.il/bundles/docker

מקווה שתהנו מהקורס ינון