PracticU

הסבר על
מיקרו סרוויס
Microservice

בלי כתוביותעם כתוביות
PracticU › קורס קוברנטיקס - Kubernetes › הסבר על מיקרו סרוויס Microservice
מילון מושגים:
Kubernetes - מערכת לניהול ותזמור של קונטיינרים בקנה מידה גדול, שמפעילה, מרחיבה ומתחזקת אותם אוטומטית.
תשלום - העברת כסף תמורת מוצר או שירות. בפיתוח, התהליך והרכיבים שמטפלים בגביית תשלום באתר.
צד לקוח - החלק של היישום שרץ בדפדפן ומולו המשתמש מתקשר, הכולל את התצוגה והאינטראקציה.
HTTP - פרוטוקול להעברת דפי אינטרנט ונתונים בין דפדפן לשרת. הגרסה המאובטחת שלו היא HTTPS.
C# - שפת תכנות מונחית עצמים של מיקרוסופט, המשמשת בעיקר לפיתוח יישומים על פלטפורמת .NET.
Node.js - סביבת ריצה שמאפשרת להריץ קוד JavaScript מחוץ לדפדפן, בעיקר בצד השרת.
קונטיינר - חבילה קלה ומבודדת שאורזת אפליקציה עם כל תלויותיה, ורצה באופן אחיד בכל סביבה, למשל ב-Docker.
כתובת IP - מספר שמזהה באופן ייחודי מכשיר ברשת מבוססת פרוטוקול IP, ומאפשר לשלוח אליו ולקבל ממנו מידע.

הסבר על מיקרו סרוויס Microservice
מיקרו-סרביסים הם חלוקה של תוכנה מונוליטית גדולה לכמה שירותים קטנים ועצמאיים. ההרצאה מציגה את הרעיון דרך פרויקט חנות בוטיק שיועלה אחר כך ל-Kubernetes.
הרעיון
1. חלוקה לפי תפקיד: שירות אחד אחראי על תשלום, אחר על משלוחים, ושלישי על עגלת קניות. ה-frontend אוסף מהם נתונים גולמיים ומציג אותם בגרפיקה, והלקוח לא יודע שהמידע הגיע ממקומות שונים.
2. תקשורת ב-HTTP: ה-frontend פונה לשירות Product Catalog ולשירות Recommendations, שבעצמו שואב נתונים מהקטלוג. יש גם שירות פרסומות, שירות לשליחת אימיילים, ו-Cart ששומר את המוצרים ב-Redis.
3. הפרויקט לדוגמה: Online Boutique עם אחד עשר מיקרו-סרביסים, כל אחד בשפה אחרת. סל הקניות ב-C#, ה-frontend ב-Go והמרת המטבעות ב-Node.js. כל אחד אתר נפרד שאפשר לגלוש אליו, ויכול להיות שצוותים שונים כתבו אותם.
4. שדרוג ובדיקה נפרדים: אפשר לבדוק ולשדרג כל שירות בלי להיות תלוי בשאר. במונוליט כל החלפת חלק מחייבת גרסה חדשה לכל האתר.
5. הגדלה לפי עומס: אם Shipping או Cart Service איטיים, משכפלים רק אותם לכמה קונטיינרים במקביל. כשכ-60 אחוז מהמשאבים תפוסים נוצר קונטיינר נוסף. ה-frontend פונה ל-IP אחד של service ולא יודע כמה פודים מאחוריו.
6. סוף ההרצאה: מורידים את הפרויקט כקובץ zip ומחלצים אותו, כדי להמשיך בהרצאה הבאה.
אחרי ההרצאה אפשר להסביר מה היתרון של מיקרו-סרביסים על פני מונוליט, ואיך שכפול פודים מאפשר להתמודד עם עומס על שירות אחד.
השיעור הבא בקורס: פריסה של Microservice בקלסטר של k8s

פרקי ההרצאה: הסבר על מיקרו סרוויס Microservice

  1. 00:00

    חלוקת מונוליט למיקרוסרביסים

  2. 00:42

    frontend אוסף מידע מהשירותים

  3. 01:19

    שירות המלצות וחיבור HTTP

  4. 01:58

    שירותי עזר ו-Online Boutique

  5. 02:36

    כל מיקרוסרביס בשפה אחרת

תמלול ההרצאה: הסבר על מיקרו סרוויס Microservice

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

  1. 00:02

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

  2. 00:16

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

  3. 00:33

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

  4. 00:51

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

  5. 01:05

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

  6. 01:19

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

  7. 01:38

    כאן, בקווים האלו, אנחנו נראה שעובר מידע גולמי ו-frontend מייצר את הגרפיקה, אבל את המידע הגולמי הוא מקבל משירותי עזר והחיבור ביניהם מבוסס HTTP. כאילו frontend גולש לאתר נפרד של Recommendation או לאתר של Product Catalog, לוקח מהם את המידע.

  8. 01:59

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

  9. 02:14

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

  10. 02:30

    בקיצור, יש פה Online Boutique, חנות בוטיק עם אחד עשרה מיקרוסרביסים. מה שמעניין פה למטה לראות שכל מיקרוסרביס כתוב בשפה אחרת. לדוגמה, סל קניות כתוב ב-C# וה-frontend כתוב בשפת Go, והמרת מטבעות כתובים בכלל ב-Node.js.

  11. 02:49

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

  12. 03:07

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

לקורס המלא: קורס קוברנטיס – Kubernetes

ההרצאה הקודמת: הצגת secret - כקובץ בתוך קונטיינר

ההרצאה הבאה: פריסה של - Microservice - בקלסטר של k8s

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

  • הסבר על מיקרוסרביס - Microservice
  • איך להרוג סרוויס תקוע בשרת

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

  • קורס AWS - ניהול מכונה וירטואלית בענן
  • קורס Terraform - DevOps - Azure & AWS
  • קורס Docker - עם Swarm Cluster
  • קורס DevOps - Ansible
  • קורס PowerShell
  • קורס Git ו-GitHub עם Visual Studio