
הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על מיקרו סרוויס Microservice» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם. היום אנחנו נדבר על מיקרוסרביסים, שהם למעשה חלוקה של תוכנה אחת גדולה מונוליטית לכמה חלקים נפרדים. לדוגמה, המיקרוסרביס הירוק יהיה אחראי על תשלום.
מיקרוסרביס הכחול יהיה אחראי על משלוחים, ומיקרוסרביס הכתום יהיה אחראי על עגלת קניות. ואז לקחנו תוכנה אחת גדולה וחילקנו אותה להרבה מיקרוסרביסים קטנים, כאשר כולם מדברים מול frontend, מול האתר המרכזי.
ה-frontend הזה אוסף מידע מכל הסרביסים הקטנים ומציג לך אותה בצורה גרפית. מבחינת הלקוח, הוא גולש לאתר ומקבל את כל המידע ממקום אחד. הוא לא יודע שהאתר בפנים פונה לאתר אחר לקבל, נניח, את קטלוג המוצרים בצורת XML.
הוא מקבל את זה כנתונים יבשים ומוסיף בעצמו את הגרפיקה. הנה, תראו לדוגמה בפרויקט הזה שאנחנו הולכים להרים אותו עכשיו בתוך הקלאסטר של קוברנטיס, יש את ה-frontend שהלקוח מתחבר אליו.
ה-frontend הזה אוסף מידע מתוך הקטלוג. דרך אגב, למיקרוסרביס הזה של קטלוג גם מחובר סרביס אחר של המלצות. הסרביס של ההמלצות לוקח את המידע שלו מתוך הקטלוג.
נניח שהוא ממליץ על מוצרים שיש אותם הרבה במלאי או מוצרים שאנחנו מרוויחים עליהם יותר כסף, נמליץ עליהם יותר. אז frontend פונה למיקרוסרביס של Recommendations, של המלצות, והוא מתוך הקטלוג שולף נתונים ומייצר את ההמלצות שלו, ואז ה-frontend מציג את ההמלצות למשתמש.
כאן, בקווים האלו, אנחנו נראה שעובר מידע גולמי ו-frontend מייצר את הגרפיקה, אבל את המידע הגולמי הוא מקבל משירותי עזר והחיבור ביניהם מבוסס HTTP. כאילו frontend גולש לאתר נפרד של Recommendation או לאתר של Product Catalog, לוקח מהם את המידע.
זה ממש אתרי אינטרנט נפרדים, ואנחנו נגלוש אליהם ונראה את המידע הגולמי, ואז האתר הזה מחזיר את הנתונים ל-frontend שרק מסדר אותם מבחינה גרפית ומחזיר ללקוח. דרך אגב, יש פה שירות נפרד לפרסומות.
יש לנו באנר בצד של פרסום, והשירות הזה אומר ל-frontend מה לשים בפרסומת. יש גם שירות עזר ששולח אימיילים, אבל הכי מעניין זה Cart. זה סל הקניות שלי, זאת העגלה שלי, והמידע על כל המוצרים שלי נשמר בדאטה בייס, ב-Redis.
בקיצור, יש פה Online Boutique, חנות בוטיק עם אחד עשרה מיקרוסרביסים. מה שמעניין פה למטה לראות שכל מיקרוסרביס כתוב בשפה אחרת. לדוגמה, סל קניות כתוב ב-C# וה-frontend כתוב בשפת Go, והמרת מטבעות כתובים בכלל ב-Node.js.
זאת אומרת, כל מיקרוסרביס זה פרויקט נפרד, אתר אינטרנט נפרד שחי את החיים העצמאיים שלו. הם לא מונוליטי, הם לא גוף אחד. הם ממש אתרי אינטרנט נפרדים שכתובים בשפות נפרדות, ויכול להיות שגם מתכנתים שונים או צוותים שונים כתבו אותם.
לכל אתר כאן אפשר לגלוש בנפרד, לשלוח לו איזשהו מידע, לקבל איזשהו מידע חזרה. בסוף זה נראה כמו חנות רגילה.