סקירה כללית על Cloud Service Mesh
Cloud Service Mesh הוא תשתית Service mesh שזמינה ב- Google Cloudובפלטפורמות נתמכות של GKE Enterprise. הוא תומך בשירותים שפועלים במגוון תשתית מחשוב. השליטה ב-Cloud Service Mesh מתבצעת באמצעות ממשקי API שנועדו ל- Google Cloud, לקוד פתוח או לשניהם.
המאמר הזה מיועד למשתמשים חדשים ב-Cloud Service Mesh או ללקוחות קיימים של Anthos Service Mesh או Traffic Director.
מה זה Service mesh?
Service mesh היא ארכיטקטורה שמאפשרת תקשורת מנוהלת, ניתנת לצפייה ומאובטחת בין השירותים שלכם, וכך מקלה עליכם ליצור אפליקציות ארגוניות חזקות שמורכבות ממיקרו-שירותים רבים בתשתית שבחרתם. רשתות שירות מנהלות את הדרישות הנפוצות להפעלת שירות, כמו מעקב, רשתות ואבטחה, באמצעות כלים עקביים ועוצמתיים. כך מפתחים ומפעילים של שירותים יכולים להתמקד ביצירה ובניהול של אפליקציות מצוינות למשתמשים שלהם.
מבחינת ארכיטקטורה, service mesh מורכב מרמת בקרה אחת או יותר ומרמת נתונים. ה-Service mesh עוקב אחרי כל התעבורה שנכנסת לשירותים ויוצאת מהם. ב-Kubernetes, שרת proxy נפרס על ידי תבנית sidecar למיקרו-שירותים ברשת. ב-Compute Engine, אפשר לפרוס שרתי proxy במכונות וירטואליות או להשתמש ב-gRPC ללא proxy למישור הנתונים.
הדפוס הזה מפריד בין לוגיקה עסקית לבין פונקציות רשת, ומאפשר למפתחים להתמקד בתכונות שהעסק צריך. רשתות שירותים מאפשרות גם לצוותי תפעול ולצוותי פיתוח להפריד את העבודה שלהם זה מזה.
תכנון האפליקציות שלכם כמיקרו-שירותים מספק יתרונות רבים. עם זאת, ככל שהעומסים גדלים, הם יכולים להיות מורכבים ומפוצלים יותר. Service mesh עוזר לפתור את בעיית הפיצול ומקל על ניהול המיקרו-שירותים.
מה זה Cloud Service Mesh?
Cloud Service Mesh הוא הפתרון של Google לסביבות GKE Enterprise נתמכות וגם Google Cloud
- ב- Google Cloud: Cloud Service Mesh מספק ממשקי API שספציפיים לתשתית המחשוב שבה מופעלים עומסי העבודה.
- עבור עומסי עבודה ב-Compute Engine, Cloud Service Mesh משתמש בממשקי API ספציפיים לניתוב שירותים ב-Google Cloud.
- עבור עומסי עבודה של Google Kubernetes Engine (GKE), Cloud Service Mesh משתמש בממשקי ה-API של Istio בקוד פתוח.
- מושבת Google Cloud: ב-Distributed Cloud או ב-GKE multicloud, Cloud Service Mesh תומך בממשקי ה-API של Istio לעומסי עבודה של Kubernetes.
בין אם האפשרות מופעלת או מושבתת Google Cloud, Cloud Service Mesh מאפשר לכם לנהל את השירותים, לעקוב אחריהם ולשמור עליהם בלי שתצטרכו לשנות את קוד האפליקציה.
Cloud Service Mesh מפחית את העומס על צוותי התפעול והפיתוח שלכם על ידי פישוט אספקת השירותים, מניהול תעבורה וטלמטריה של רשתות ועד לאבטחת התקשורת בין השירותים. רשת השירותים המנוהלת במלואה של Google מאפשרת לכם לנהל סביבות מורכבות וליהנות מהיתרונות שהן מציעות.
תכונות
ב-Cloud Service Mesh יש חבילת תכונות לניהול תעבורה, לניראות ולטלמטריה ולאבטחה.
ניהול תנועה
Cloud Service Mesh שולט בתעבורת הנתונים בין השירותים ברשת, בתעבורת הנתונים שנכנסת לרשת (ingress) ובתעבורת הנתונים שיוצאת מהרשת לשירותים חיצוניים (egress). אתם מגדירים ומפריסים משאבים לניהול התנועה הזו בשכבת האפליקציה (L7). לדוגמה, אתם יכולים:
- שימוש בזיהוי שירותים.
- הגדרת איזון עומסים בין שירותים.
- ליצור פריסות כחול-ירוק וגרסאות איטרטיביות לקהל מצומצם.
- שליטה מדויקת בניתוב של השירותים.
- הגדרת מפסק זרם.
ב-Cloud Service Mesh יש רשימה של כל השירותים ברשת, לפי שם ולפי נקודות הקצה שלהם. הרשימה הזו משמשת לניהול זרימת תעבורת הנתונים (לדוגמה, כתובות ה-IP של Kubernetes Pod או כתובות ה-IP של מכונות וירטואליות של Compute Engine בקבוצת מופעי מכונה מנוהלים). באמצעות רישום השירות הזה, והפעלת ה-proxies זה לצד זה עם השירותים, הרשת יכולה להפנות את התנועה לנקודת הקצה המתאימה. אפשר להשתמש במקביל גם בעומסי עבודה של gRPC ללא proxy עם עומסי עבודה שמשתמשים ב-proxy של Envoy.
תובנות לגבי ניראות
ממשק המשתמש של Cloud Service Mesh ב Google Cloud מסוף מספק תובנות לגבי רשת השירותים. המדדים האלה נוצרים באופן אוטומטי לעומסי עבודה שהוגדרו באמצעות ממשקי ה-API של Istio.
- מדדי שירות ויומנים של תעבורת HTTP באשכול GKE של רשת ה-mesh נקלטים אוטומטית ב- Google Cloud.
- מרכזי בקרה מוגדרים מראש של שירותים מספקים לכם את המידע שאתם צריכים כדי להבין את השירותים שלכם.
- טלמטריה מפורטת – מבוססת על Cloud Monitoring, Cloud Logging ו-Cloud Trace – מאפשרת לכם לבדוק לעומק את מדדי השירות והיומנים. אתם יכולים לסנן ולפלח את הנתונים לפי מגוון רחב של מאפיינים.
- בעזרת קשרים בין שירותים אפשר להבין במבט חטוף את התלות בין השירותים ואת מי שמחובר לכל שירות.
- אתם יכולים לראות במהירות את מצב האבטחה של התקשורת לא רק בשירות שלכם, אלא גם את הקשרים שלו לשירותים אחרים.
- יעדים למדידת רמת השירות (SLO) מספקים תובנות לגבי תקינות השירותים. אתם יכולים להגדיר SLO ולהגדיר התראות על סמך סטנדרטים משלכם לגבי תקינות השירות.
במדריך Observability אפשר לקרוא מידע נוסף על תכונות ה-Observability של Cloud Service Mesh.
הטבות אבטחה
ל-Cloud Service Mesh יש הרבה יתרונות בתחום האבטחה.
- מצמצם את הסיכון להתקפות חוזרות או להתחזות שנעשות באמצעות פרטי כניסה גנובים. Cloud Service Mesh מסתמך על אישורי TLS הדדי (mTLS) כדי לאמת עמיתים, ולא על אסימוני גישה כמו אסימוני אינטרנט מסוג JSON (JWT).
- הצפנה בזמן ההעברה. שימוש ב-mTLS לאימות מבטיח גם שכל התקשורת ב-TCP מוצפנת במעבר.
- מצמצם את הסיכון שלקוחות לא מורשים יוכלו לגשת לשירות עם מידע אישי רגיש, ללא קשר למיקום ברשת של הלקוח ולפרטי הכניסה ברמת האפליקציה.
- מצמצם את הסיכון לפרצה באבטחת מידע של משתמשים ברשת הייצור. אתם יכולים לוודא שלמשתמשים פנימיים תהיה גישה למידע אישי רגיש רק דרך לקוחות מורשים.
- מזהה אילו לקוחות ניגשו לשירות עם מידע אישי רגיש. יומני הגישה של Cloud Service Mesh מתעדים את זהות ה-mTLS של הלקוח בנוסף לכתובת ה-IP.
- כל רכיבי מישור הבקרה באשכול בנויים עם מודולי הצפנה מאומתים לפי FIPS 140-2.
מידע נוסף על היתרונות ותכונות האבטחה של Service Mesh זמין במדריך האבטחה.
אפשרויות פריסה
אלה אפשרויות הפריסה ב-Cloud Service Mesh:
- ב- Google Cloud
- Managed Cloud Service Mesh – מישור בקרה ומישור נתונים מנוהלים ל-GKE (מומלץ)
- Managed Cloud Service Mesh – מישור נתונים ומישור בקרה מנוהלים ל-Compute Engine עם מכונות וירטואליות (מומלץ)
- מישור בקרה בתוך האשכול ב-GKE עם ממשקי Istio API (לא מומלץ)
- מושבת Google Cloud
- מישור בקרה בתוך אשכול ל-Kubernetes עם ממשקי Istio API
Managed Cloud Service Mesh
Managed Cloud Service Mesh מורכב ממישור הבקרה המנוהל לכל התשתיות וממישור הנתונים המנוהל ל-GKE. ב-Managed Cloud Service Mesh, Google מטפלת בשדרוגים, בהרחבת הקיבולת ובאבטחה בשבילכם, וכך מצמצמת את הצורך בתחזוקה ידנית של המשתמשים. הוא כולל את מישור הבקרה, מישור הנתונים ומשאבים קשורים.
הטמעה של מישור הנתונים
אם אתם משתמשים ב-API, מישור הנתונים יכול להיות מסופק על ידי שרתי proxy של Envoy או על ידי אפליקציות gRPC בלי שרת Proxy. Google Cloud אם מעדכנים אפליקציה קיימת, הגישה שמבוססת על sidecar מאפשרת שילוב ברשת בלי לשנות את האפליקציה. אם אתם רוצים להימנע מהתקורה של הפעלת sidecar, אתם יכולים לעדכן את האפליקציה שלכם לשימוש ב-gRPC.
גם שרתי proxy של Envoy וגם gRPC ללא proxy משתמשים ב-xDS API כדי להתחבר למישור הבקרה. אם משתמשים ב-gRPC בלי שרת Proxy, אפשר לבחור מתוך השפות הנתמכות לאפליקציות, כולל Go, C++, Java ו-Python.
אם אתם משתמשים בממשקי Istio API בקוד פתוח, מישור הנתונים מסופק על ידי שרתי proxy של Envoy.
הטמעה של מישור הבקרה
מישור הבקרה של Cloud Service Mesh תלוי בהגדרה שלכם – מופעלת או מושבתת Google Cloud וגם אם אתם לקוחות חדשים.
הטמעה של מישור הבקרה למשתמשים קיימים
- אם ההגדרה מושבתת Google Cloud, אתם משתמשים במישור הבקרה הלא מנוהל בתוך האשכול של Cloud Service Mesh. מידע נוסף זמין במאמר תכונות נתמכות של מישור בקרה בתוך אשכול.
- אם השתמשתם ב-Anthos Service Mesh בגרסה Google Cloud, אתם משתמשים בממשקי Istio API. מידע נוסף זמין במאמר תכונות נתמכות באמצעות Istio APIs (מישור בקרה מנוהל) .
- אם השתמשתם ב-Traffic Director, אתם משתמשים במישור הבקרה המנוהל של Cloud Service Mesh עם ממשקי API. Google Cloud מידע נוסף זמין במאמר Cloud Service Mesh עם תכונות נתמכות של Google Cloud API.
כדי לזהות את מישור הבקרה הנוכחי, קוראים את המאמר זיהוי ההטמעה של מישור הבקרה. מידע נוסף על מישורי בקרה ועל העברת מישורי בקרה זמין במאמר סקירה כללית על מישור בקרה מנוהל ללקוחות קיימים.
הטמעה של מישור הבקרה למשתמשים חדשים
- אם אתם מתכננים הגדרה שלGoogle Cloud , אתם בוחרים במישור הבקרה הלא מנוהל בתוך האשכול של Cloud Service Mesh. מידע נוסף זמין במאמר תכונות נתמכות של מישור בקרה בתוך אשכול.
- אם אתם מתכנניםGoogle Cloud הגדרה ב-Kubernetes, אתם בוחרים בממשקי ה-API של Istio, אבל מישור הבקרה שלכם משתמש בהטמעה של Traffic Director, למעט במקרים מסוימים שמפורטים במאמר מה קובע את ההטמעה של מישור הבקרה. פרטים נוספים זמינים במאמר תכונות נתמכות באמצעות Istio APIs (מישור בקרה מנוהל).
- אם אתם מתכנניםGoogle Cloud הגדרה במכונות וירטואליות ב-Compute Engine, מישור הבקרה שלכם משתמש במישור הבקרה הגלובלי עם דיירים רבים, שנקרא הטמעה של Traffic Director. מידע נוסף זמין במאמר Cloud Service Mesh עם תכונות נתמכות של Google Cloud APIs.
העברה של מישור הבקרה
אם אתם ממשיכים להיות לקוחות של Anthos Service Mesh ומשתמשים ב-Istio APIs, האשכולות שלכם יתחילו לעבור למיגרציה ל-Traffic Director control plane. אתם יכולים להמשיך להשתמש בממשקי ה-API של Istio לצורך הגדרה.
כדי לבדוק אם האשכולות שלכם עדיין משתמשים ברמת הבקרה של Istio או שעברו לרמת הבקרה הגלובלית החדשה, אפשר לקרוא את המאמר בנושא זיהוי ההטמעה של רמת הבקרה.
המאמרים הבאים
- אם אתם משתמשים קיימים, כדאי לקרוא את המאמר מישור בקרה מנוהל ללקוחות קיימים.
- אם אתם מתכננים להגדיר את המערכת באמצעות GKE, כדאי לקרוא את המאמר בנושא הקצאת מישור בקרה.
- אם אתם מתכננים להגדיר את התכונה באמצעות Compute Engine ומכונות וירטואליות, כדאי לקרוא את המאמר הכנה להגדרה של ממשקי API לניתוב שירותים באמצעות Envoy ועומסי עבודה ללא proxy.