תמלול הפרק (לחצו לפתיחה)
קוברנטיס פרק 4 - סרביס (Service) בקוברנטיס
היי, ברוכים הבאים ל"הייטקיסטים בדרכים". אני אורן, והיום אנחנו נלמד על Service (סרוויס) בקוברנטיס.
נתחיל בזה שנחזור אחורה לשיעור הקודם: דיברנו על פודים, ועל כך שהפוד הוא היחידה הכי קטנה והאטומית בקוברנטיס. הסרוויס, לעומת זאת, מייצג אבסטרקציה (הפשטה) של קבוצת פודים. הוא מאפשר לנו לתקשר מול הקבוצה הזאת ונותן לנו כתובת אחת, אחידה וקבועה.
כדי להסביר מה זה סרוויס, חשבתי על דוגמה מעולם בתי המלון. מקווה שהיא תהיה מוצלחת – תכתבו לי אחר כך אם הצלחתי לתאר את זה כמו שצריך.
דוגמת בית המלון והתיירים האמריקאים
בואו נחשוב על מלון עם המון אורחים והמון חדרים. האורחים באים ומתחלפים כל הזמן. נניח שיש במלון קבוצה של תיירים מארצות הברית, והיינו רוצים לשמור על קשר יציב איתם – לאו דווקא עם תייר ספציפי, אלא עם התיירים האמריקאים שנמצאים במלון בכל רגע נתון.
נניח שביום מסוים יש ארבעה אמריקאים בחדרים 100, 200, 300 ו-400. שבוע אחר כך הם עושים Check-out ומגיעים חדשים לחדרים 107, 108 ו-109. זה כל הזמן משתנה ודינמי, בדיוק כמו פודים.
אם מדריך תיירים היה רוצה לדבר עם תייר אמריקאי, הנהלת המלון (שהיא קוברנטיס בדוגמה שלנו) הייתה צריכה לנהל רשימה בלובי שתתעדכן כל הזמן באיזה חדר הם נמצאים. אבל מה אם המלון היה מאפשר למדריך לחייג למספר קבוע, נגיד כוכבית 7? המדריך מחייג כוכבית 7 והוא תמיד מקבל תייר אמריקאי. הוא לא צריך לדעת מי עשה Check-in או Check-out, זה שקוף לו לגמרי. יש לו שכבת אבסטרקציה.
הנמשל:
החדרים/תיירים: הם ה-Pods שמקבלים כתובות IP שונות (מספרי חדרים) שמשתנות כל הזמן.
כוכבית 7: זה ה-Service. כתובת אחת קבועה שדרכה מגיעים לפודים הרלוונטיים.
מדריך התיירים: זה סרוויס אחר שרוצה לצרוך את המידע.
שתי תכונות קריטיות של סרוויס:
Routing (ניתוב): הסרוויס יודע לנתב את הקריאה מהכתובת הקבועה אל ה-IP הנכון של הפוד שנמצא כרגע בחיים.
Load Balancing (פיזור עומסים): אם יש עשרה תיירים אמריקאים, לא היינו רוצים שהמדריך יחפור כל הזמן לאותו אחד בזמן שהתשעה האחרים נחים. הסרוויס יודע לפזר את הקריאות שווה בשווה בין כל הפודים בקבוצה. גם אם הוספנו פודים חדשים (Scale), הם יצטרפו אוטומטית ל"פול" של הסרוויס ויתחילו לקבל קריאות.
תקשורת פנימית וחיצונית
הסרוויס מטפל גם בתקשורת בתוך הקבוצה. אם תייר אמריקאי אחד רוצה לדבר עם תייר אמריקאי אחר, גם הוא יכול לחייג "כוכבית 7" ולקבל מישהו מהחדר ליד מבלי להחזיק רשימת כתובות ידנית.
איך מגדירים מי שייך לקבוצה? (Labels)
לסיום, מי שרוצה להעמיק כדאי לו ללמוד על Labels (לייבלים). לייבלים הם כמו תגיות שמאפשרים לנו להגדיר מי בתוך הקבוצה. בדוגמה שלנו, הלייבל עוזר לנו להגיד מי "אמריקאי" ומי "קנדי". אנחנו שמים את הלייבל על הפוד, והסרוויס יודע למשוך רק את הפודים עם התגית המתאימה.
סיכום
סרוויס בקוברנטיס נותן לנו כתובת יציבה לעבודה מול קבוצה דינמית של פודים, מנהל את הניתוב ואת עומסי העבודה ביניהם.
תודה לכל מי ששולח פידבקים במייל ובלינקדאין, זה באמת עוזר ומכוון אותי לדעת מה עובד ומה אנשים רוצים. המטרה היא שנלמד ונגדל מכאן יחד.
תודה רבה ונתראה בפרק הבא!