איזון עומסים ב-Cloud Service Mesh

‫Cloud Service Mesh משתמש ב-sidecar proxies או ב-gRPC ללא proxy כדי לספק איזון עומסים גלובלי למיקרו-שירותים פנימיים. אפשר לפרוס מיקרו-שירותים פנימיים (מבוססי קובץ עזר חיצוני או מבוססי gRPC בלי שרת Proxy) עם מופעים בכמה אזורים. ‫Cloud Service Mesh מספק מידע על תקינות, ניתוב וקצה עורפי ל-sidecar proxies או ל-gRPC ללא proxy, וכך מאפשר להם לבצע ניתוב אופטימלי של תנועה למופעי אפליקציות בכמה אזורי ענן עבור שירות.

בתרשים הבא, תעבורת המשתמשים נכנסת לפריסת Google Cloudנתונים דרך מאזן עומסים גלובלי חיצוני. מאזן העומסים החיצוני מפזר את התנועה למיקרו-שירות של חזית האתר ב-us-central1 או ב-asia-southeast1, בהתאם למיקום של משתמש הקצה.

הפריסה הפנימית כוללת שלושה מיקרו-שירותים גלובליים: חזית, עגלת קניות ותשלומים. כל שירות פועל על קבוצות של מופעי מכונה מנוהלים (MIG) בשני אזורים, us-central1 ו-asia-southeast1. ‫Cloud Service Mesh משתמש באלגוריתם גלובלי לאיזון עומסים שמפנה תנועה מהמשתמש בקליפורניה למיקרו-שירותים שנפרסו ב-us-central1. בקשות מהמשתמש בסינגפור מופנות למיקרו-שירותים ב-asia-southeast1.

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

‫Cloud Service Mesh בפריסת איזון עומסים גלובלי.
Cloud Service Mesh בפריסת איזון עומסים גלובלי (לחצו כדי להגדיל)

בדוגמה הבאה, אם Cloud Service Mesh מקבל תוצאות של בדיקת תקינות שמצביעות על כך שהמכונות הווירטואליות (VM) שמריצות את המיקרו-שירות של עגלת הקניות ב-us-central1 לא תקינות, Cloud Service Mesh מורה לקובץ העזר החיצוני של המיקרו-שירותים של ממשק הקצה להעביר את התעבורה למיקרו-שירות של עגלת הקניות שפועל ב-asia-southeast1. מכיוון שהתכונה 'התאמה אוטומטית לעומס (automatic scaling)' משולבת עם ניהול תעבורת נתונים ב- Google Cloud, Cloud Service Mesh מודיע ל-MIG ב-asia-southeast1 על תעבורת הנתונים הנוספת, והגודל של ה-MIG גדל.

‫Cloud Service Mesh מזהה שכל ה-backend של המיקרו-שירות Payments תקינים, ולכן Cloud Service Mesh מורה לשרת ה-proxy של Envoy עבור עגלת הקניות לשלוח חלק מהתנועה – עד הקיבולת שהלקוח הגדיר – אל asia-southeast1, ולשלוח את השאר אל us-central1.

מעבר לגיבוי (failover) באמצעות Cloud Service Mesh בפריסה של איזון עומסים גלובלי.
יתירות כשל בעזרת Cloud Service Mesh בפריסת מאזן עומסים גלובלי (לחצו כדי להגדיל)

רכיבים של איזון עומסים ב-Cloud Service Mesh

במהלך ההגדרה של Cloud Service Mesh, מגדירים כמה רכיבים של איזון עומסים:

  • השירות לקצה העורפי, שמכיל ערכי הגדרה.
  • בדיקת תקינות, שמספקת בדיקת תקינות למכונות הווירטואליות ול-Pods של Google Kubernetes Engine ‏ (GKE) בפריסה.
  • עם ממשקי ה-API לניתוב שירותים, משאב Mesh או Gateway ומשאב Route.
  • עם ממשקי ה-API של איזון העומסים, כלל העברה גלובלי, שכולל את כתובת ה-VIP, שרת proxy ביעד ומפת URL.

שרת proxy מסוג קובץ עזר חיצוני שתואם ל-xDS API (כמו Envoy) פועל במופע של VM של לקוח או ב-Pod של Kubernetes. ‫Cloud Service Mesh משמש כמישור הבקרה ומשתמש בממשקי xDS API כדי לתקשר ישירות עם כל שרת proxy. במישור הנתונים, האפליקציה שולחת תנועה לכתובת ה-VIP שהוגדרה בכלל ההעברה או במשאב Mesh. שרת ה-proxy של ה-sidecar או אפליקציית ה-gRPC מיירטים את התנועה ומפנים אותה לקצה העורפי המתאים.

בתרשים הבא מוצגת אפליקציה שפועלת במכונות וירטואליות של Compute Engine או ב-Pods של GKE, הרכיבים וזרימת התנועה בפריסת Cloud Service Mesh. הוא מציג את Cloud Service Mesh ואת משאבי Cloud Load Balancing שמשמשים לקביעת ניתוב התנועה. בתרשים מוצגים ממשקי ה-API הישנים של איזון העומסים.

משאבים של Cloud Service Mesh שצריך להגדיר.
משאבי Cloud Service Mesh שצריך להגדיר (לחצו כדי להגדיל)

המאמרים הבאים