סקירה כללית על Cloud Service Mesh
Cloud Service Mesh הוא רשת שירותים שזמינה ב- Google Cloudובפלטפורמות GKE נתמכות. הוא תומך בשירותים שפועלים במגוון תשתית מחשוב. השליטה ב-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 שולט בתעבורת הנתונים בין השירותים ברשת, אל הרשת (תעבורת נתונים נכנסת) ומחוץ לרשת (תעבורת נתונים יוצאת). אתם מגדירים ומפריסים משאבים לניהול התנועה הזו בשכבת האפליקציה (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) כדי לאמת עמיתים, ולא על אסימוני נשיאה כמו אסימוני JWT (JSON Web Tokens).
- הצפנה בזמן ההעברה שימוש ב-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 מטפלת בשדרוגים, בהרחבת הקיבולת ובאבטחה בשבילכם, וכך מצמצמת את הצורך בתחזוקה ידנית מצד המשתמשים. הוא כולל את מישור הבקרה, מישור הנתונים ומשאבים קשורים.
הטמעה של מישור הנתונים
אם אתם משתמשים ב- Google Cloud APIs, מישור הנתונים יכול להיות מסופק על ידי שרתי proxy של Envoy או על ידי אפליקציות gRPC ללא proxy. אם אתם מעדכנים אפליקציה קיימת, הגישה שמבוססת על sidecar מאפשרת שילוב ברשת בלי לשנות את האפליקציה. אם אתם רוצים להימנע מהתקורה של הפעלת sidecar, אתם יכולים לעדכן את האפליקציה כדי להשתמש ב-gRPC.
גם שרתי proxy של Envoy וגם gRPC ללא שרת Proxy משתמשים ב-xDS API כדי להתחבר למישור הבקרה. אם משתמשים ב-gRPC ללא proxy, אפשר לבחור מבין השפות הנתמכות לאפליקציות, כולל Go, C++, Java ו-Python.
אם אתם משתמשים בממשקי API של Istio בקוד פתוח, מישור הנתונים מסופק על ידי שרתי 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, אתם בוחרים בממשקי Istio API, אבל מישור הבקרה שלכם משתמש בהטמעה של Traffic Director, למעט במקרים מסוימים שמפורטים במאמר מה קובע את ההטמעה של מישור הבקרה. פרטים נוספים זמינים במאמר תכונות נתמכות באמצעות Istio APIs (רמת בקרה מנוהלת).
- אם אתם מתכננים הגדרה שלGoogle Cloud במכונות וירטואליות ב-Compute Engine, מישור הבקרה שלכם משתמש במישור הבקרה הגלובלי עם ריבוי דיירים, שנקרא הטמעה של Traffic Director. מידע נוסף זמין במאמר Cloud Service Mesh עם תכונות נתמכות של Google Cloud API.
העברה של מישור הבקרה
אם אתם ממשיכים להיות לקוחות של Anthos Service Mesh ואתם משתמשים ב-Istio APIs, האשכולות שלכם יתחילו לעבור למיגרציה ל-Traffic Director control plane. אתם יכולים להמשיך להשתמש בממשקי ה-API של Istio לצורך הגדרה.
כדי לבדוק אם האשכולות שלכם עדיין משתמשים ברמת הבקרה של Istio או שעברו לרמת הבקרה הגלובלית החדשה, אפשר לקרוא את המאמר בנושא זיהוי ההטמעה של רמת הבקרה.
המאמרים הבאים
- אם אתם משתמשים קיימים, כדאי לקרוא את המאמר מישור בקרה מנוהל ללקוחות קיימים.
- אם אתם מתכננים להגדיר את GKE, כדאי לקרוא את המאמר הקצאת מישור בקרה.
- אם אתם מתכננים להגדיר את התכונה באמצעות Compute Engine ומכונות וירטואליות, כדאי לקרוא את המאמר הכנה להגדרה של ממשקי API לניתוב שירותים באמצעות Envoy ועומסי עבודה בלי שרת Proxy.