סקירה כללית על Service Directory

שירות Service Directory הוא שירות שחל עליו הנספח של Google לעיבוד נתונים ב-Cloud, שמפורט בנספח לעיבוד נתונים ב-Cloud.

ספריית השירותים היא מקום אחד שבו אפשר לפרסם שירותים, לחפש אותם ולהתחבר אליהם באופן עקבי ואמין, ללא קשר לסביבת הפיתוח שלהם. ‫Service Directory תומך בשירותים ב- Google Cloud, בסביבות מרובות עננים ובסביבות מקומיות, ויכול להתרחב עד אלפי שירותים ונקודות קצה לפרויקט יחיד.

בספריית השירותים יש את התכונות הבאות:

  • Registration and Lookup API ליצירה ולפתרון של מרחבי שמות, שירותים ונקודות קצה
  • שילוב עם Cloud DNS. אזורים ב-Service Directory מאפשרים להפוך שירותים לזמינים בענן וירטואלי פרטי (VPC).
  • שילוב עם IAM כדי להקצות הרשאות ולשלוט בגישה לשירותים
  • תמיכה מובנית ב-Google Cloud CLI וב-Google Cloud console לאינטראקציה עם Service Directory
  • שילוב של Cloud Monitoring ו-Cloud Logging לצורך מעקב, ביקורת וניפוי באגים בפעולות של Service Directory

למה כדאי להשתמש ב-Service Directory

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

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

‫Service Directory ללא מאזן עומסים (לחיצה להגדלה)
שירותים שונים שמשתנים (לחצו כדי להגדיל)

באמצעות Service Directory, אתם יכולים לרשום את כל השירותים שלכם במקום אחד ולפתור אותם באמצעות HTTP,‏ gRPC ו-DNS.

נחזור לתרשים הקודם, אבל הפעם נוסיף את ספריית השירותים. בתרשים הבא, כל מופע של שירות רשום ב-Service Directory. הרישומים האלה משתקפים באופן מיידי ב-DNS, ואפשר לשלוח להם שאילתות באמצעות HTTP/gRPC, ללא קשר להטמעה ולסביבה שלהם.

Service Directory עם מאזן עומסים (לוחצים כדי להגדיל)
Service Directory עם מאזן עומסים (לחצו כדי להגדיל)

אפשר ליצור שם שירות אוניברסלי שפועל במוצרים שונים, כמו App Engine ו-GKE. Google Cloudאפשר להפוך את השירותים האלה לזמינים באמצעות DNS. אפשר להחיל בקרת גישה על שירותים על סמך הרשת, הפרויקט ותפקידי ה-IAM של חשבונות השירות.

ספריית השירותים פותרת את הבעיות הבאות:

  1. יכולת פעולה הדדית: Service Directory הוא שירות שמות אוניברסלי שפועל ב- Google Cloud, בענן מרובה ובסביבה מקומית. אתם יכולים להעביר שירותים בין הסביבות האלה ועדיין להשתמש באותו שם שירות כדי לרשום ולפתור נקודות קצה.
  2. ניהול שירותים: Service Directory הוא שירות מנוהל. הארגון שלכם לא צריך לדאוג לגבי זמינות גבוהה, יתירות, שינוי קנה מידה או תחזוקה של רישום שירותים משלכם.
  3. בקרת גישה: באמצעות Service Directory, אתם יכולים לקבוע מי יכול לרשום את השירותים שלכם ולפתור אותם באמצעות IAM. הקצאת תפקידים ב-Service Directory לצוותים, לחשבונות שירות ולארגונים.
  4. מגבלות של DNS טהור: מקודדי DNS יכולים להיות לא אמינים מבחינת כיבוד ערכי TTL ושימוש במטמון, הם לא יכולים לטפל בגדלים גדולים יותר של רשומות, והם לא מציעים דרך קלה להצגת מטא-נתונים למשתמשים. בנוסף לתמיכה ב-DNS,‏ Service Directory מציע ממשקי HTTP ו-gRPC API לשליחת שאילתות ולפתרון בעיות בשירותים.

שימוש ב-Cloud DNS עם Service Directory

‫Cloud DNS הוא שירות מהיר, ניתן להרחבה ואמין של מערכת שמות דומיין (DNS) שפועל בתשתית של Google.

בנוסף לתחומי DNS ציבוריים,‏ Cloud DNS מספק גם פתרון DNS פנימי מנוהל לרשתות פרטיות ב-Google Cloud. אזורי DNS פרטיים מאפשרים לתת שמות פנימיים למכונות וירטואליות (VM), למאזני עומסים או למשאבים אחרים. שאילתות DNS לאזורי ה-DNS הפרטיים האלה מוגבלות לרשתות הפרטיות שלכם.

התרשים הבא ממחיש איך אפשר להשתמש באזורים של Service Directory כדי להפוך שמות של שירותים לזמינים באמצעות חיפושי DNS.

שימוש ב-Cloud DNS עם Service Directory (אפשר ללחוץ כדי להגדיל)
שימוש ב-Cloud DNS עם Service Directory (לחצו כדי להגדיל)

סקירה כללית של הרכיבים השונים:

  1. נקודות הקצה נרשמות ישירות ב-Service Directory באמצעות Service Directory API. אפשר לרשום בספריית השירותים גם שירותים שלGoogle Cloud Google וגם שירותים שאינם שלGoogle Cloud Google.
  2. לקוחות חיצוניים ופנימיים יכולים לחפש את השירותים האלה בכתובת: https://servicedirectory.googleapis.com
  3. כדי להפעיל בקשות DNS, יוצרים אזור Service Directory ב-Cloud DNS שמקושר למרחב שמות של Service Directory.
  4. לקוחות פנימיים יכולים לפתור את הבעיה בשירות הזה באמצעות DNS,‏ HTTP ו-gRPC. לקוחות חיצוניים (לקוחות שלא נמצאים ברשת הפרטית) צריכים להשתמש ב-HTTP או ב-gRPC כדי לפתור שמות שירותים.

הגדרה לדוגמה

איך חושפים שירות באמצעות DNS

בתרשים הבא אפשר לראות איך ארכיטקטורת מיקרו-שירות (microservice) ממוּדלת ב-Service Directory ומונגשת באמצעות DNS. שימו לב ש-Service Directory מנהל את השירותים ואת נקודות הקצה באופן מלא, אבל האזור הפרטי נמצא ב-Cloud DNS.

חשיפת שירות באמצעות DNS (לוחצים כדי להגדיל)
חשיפת שירות באמצעות DNS (לחצו כדי להגדיל)

בתרשים הזה (בצד ימין), שירות התשלומים רשום במרחב שמות בשם backend-namespace, באזור us-east1 ובפרויקט gcp-project. מרחב השמות מקושר לאזור הפרטי example.com.

כדי לבצע חיפוש DNS, הלקוח מבקש את רשומת ה-SRV עבור שם הדומיין _payments._tcp.payments.example.com, שמוביל למספרי היציאות ולרשומות הכתובות של נקודות הקצה של שירות התשלומים.

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

  • במאמר הגדרת Service Directory מוסבר איך מגדירים מרחב שמות של Service Directory, יוצרים שירות במרחב השמות ומקצים נקודות קצה לשירות.
  • במאמר הגדרת אזור DNS של Service Directory מוסבר איך ליצור אזור Service Directory שמסתמך על מרחב שמות קיים.
  • במאמר שאילתה באמצעות DNS מוסבר איך לשלוח שאילתה לאזור קיים של Service Directory באמצעות DNS.
  • כדי למצוא פתרונות לבעיות נפוצות שאולי תיתקלו בהן כשאתם משתמשים ב-Service Directory, אפשר לעיין במאמר פתרון בעיות.