שירות רשמי (קנוני)
הערה: שירותים קנוניים נתמכים באופן אוטומטי ב-Cloud Service Mesh מגרסה 1.6.8 ואילך.
בדף הזה מוסבר מהו שירות קנוני ב-Cloud Service Mesh.
מהו שירות רשמי (קנוני)?
ב-Cloud Service Mesh 1.6.8 נוספה תמיכה ב-Canonical Services, מודל מושגי וארכיטקטוני לייצוג עומסי העבודה שלכם בסביבת הייצור כשירות יחיד שקל יותר לצפות בו ולנהל אותו. עומסי העבודה האלה יכולים להתפרס על פני כמה אשכולות, פלטפורמות שונות של קצה עורפי וסכימות והגדרות שונות.
למשתמשי Kubernetes: Canonical Service דומה בערך למושג 'אפליקציה' ב-Kubernetes ול-CRD של האפליקציה.
למשתמשי Serverless: Canonical Service דומה מאוד למושגים של App Engine service ושל Cloud Run service. ההבדל היחיד הוא ששירותי Google Serverless הם אזוריים במהותם, בעוד ששירותים קנוניים הם הפשטה גלובלית או במספר אזורים.
לדוגמה, כל התרחישים הבאים מתארים דרכים שבהן אפשר להתייחס לשירות קנוני:
- יש הפסקה זמנית בשירות.
- שירות שפועל גם בפריסה מקומית וגם בענן ציבורי.
- פריסת גרסה חדשה של שירות.
- השירות Foo שולח יותר מדי תנועה ויכול להיות שהוא יחרוג מהקיבולת שלנו.
שירותים קנוניים קיימים ב-Mesh יחיד, וב-Cloud Service Mesh זה אומר שהם גם ייחודיים בצי ובפרויקט (שניהם זהים ל-Mesh). Google Cloud
עומס עבודה נתון יכול להיות חלק משירות קנוני אחד בלבד.
אפשר לברר את ההיקף המלא של שירות קנוני מקבוצת עומסי העבודה שמגדירים אותו, כולל:
- שמות מארחים וכתובות IP
- רשתות
- מדיניות אבטחה ורשת
- ניתוב ואיזון עומסים
- מכונות וירטואליות וקובצי אימג' של קונטיינרים
- תשתית פיזית או וירטואלית
- אזורים גיאוגרפיים
- מערכת CI/CD
- קוד מקור
- טלמטריה
- יעדים למדידת רמת השירות (SLO) והתראות
אפשר לראות את הפרטים התפעוליים האלה לגבי כל שירות בלוחות הבקרה בדף השירותים.
דרישות ומגבלות לגבי שירות קנוני
שירותים קנוניים זמינים רק ב-Cloud Service Mesh בגרסה 1.6.8 ומעלה.
כל שירות קנוניקי קיים במרחב שמות יחיד של Kubernetes/Istio, ולא יכול לחצות את הגבולות של מרחב השמות.
צריך לתת לשירות קנוני שם ייחודי במרחב השמות הראשי שלו. מידע נוסף זמין במאמר בנושא הגדרת שירות קנוני.
שירותים קנוניים יכולים להתקיים בכמה אשכולות ובכמה אזורים. אפשר לפרק את המשאבים והטלמטריה לפי אשכול ואזור, אבל אלה לא גורמים שמשפיעים על קביעת ההיקף או הייחודיות של שירות.
לכן, הזהות הייחודית של שירות קנוני נקבעת לפי:
mesh id + namespace + canonical name.
גרסאות קודמות
המונח 'עדכונים' מתייחס לשינויים מצטברים בשירות, שבעזרתם אפשר להבחין בין 'גרסאות' או 'מהדורות' שונות של השירותים ולזהות אותן.
כדי להבדיל בין גרסאות של שירות קנוני, אפשר להוסיף תווית לעומס עבודה מסוים עם 'הגרסה הקנונית' שלו. התווית הזו היא מחרוזת שרירותית שאפשר להגדיר. יכול להיות שהתווית תוגדר באופן אוטומטי במקרים מסוימים, אבל אתם או מערכת ה-CI/CD שפורסת את השירות צריכים להחיל את התווית. הנחיות להגדרת התווית הזו מופיעות במאמר הגדרת שירות קנוני.
שימו לב שאפשר להפעיל כמה גרסאות בו-זמנית. הפעלת כמה גרסאות בו-זמנית משמשת בדרך כלל למטרות הבאות:
- השקה מדורגת של קובץ בינארי חדש, הגדרה חדשה או שניהם בכל המופעים של השירות. במקרה כזה, גם הגרסה הישנה וגם הגרסה החדשה פעילות במהלך המעבר.
- 'בדיקת A/B' או 'ניסוי פעיל', שבהם מוצגות שתי גרסאות שונות של השירות לקבוצות משנה של צדדים מתקשרים במורד הזרם, כדי לבדוק את ההשפעה של שינוי.