הדיירים ב-App Lifecycle Manager מאפשרים לארגן את היחידות שנפרסו ולפרוס משאבים בפרויקטים נפרדים של דיירים, כדי לבודד ולנהל את התשתית.
סקירה כללית על דיירים ופרויקטים של דיירים
לפני שמתחילים
לפני שיוצרים פרויקטים או משאבים של דיירים:
- בפרויקט של ספק השירות, יוצרים הגדרה של Terraform, מאגר של Artifact Registry ופריט מידע שנוצר באופן ידני שמכיל את אפליקציית ה-SaaS. איך יוצרים ומעלים תוכנית במאמר מדריך למתחילים: פריסת אפליקציה באמצעות App Lifecycle Manager מוסבר איך מגדירים מוצר SaaS.
מפעילים את ממשקי ה-API שנדרשים ל-App Lifecycle Manager.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם אתם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, אתם יכולים לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםמוודאים שחשבונות השירות הנדרשים נוצרו, ושהתפקידים הנדרשים של ניהול הזהויות והרשאות הגישה הוקצו בפרויקט של השירות המנוהל. הוא כולל את חשבון השירות שנוצר על ידי המשתמש ואת התפקידים שניתנו לסוכן השירות
service-PROJECT_NUMBER@gcp-sa-saasservicemgmt.בפרויקט של הבעלים, כאשרPROJECT_NUMBERהוא מספר הפרויקט של הבעלים.
הגדרת פרויקט של דייר (tenant)
כשמקצים את המשאבים של הדייר לפרויקטים נפרדים, המשאבים, מדיניות ה-IAM, המכסות והגדרות הרשת מופרדים לכל אחד מהדיירים. כך פוחת הסיכוי שפריצות או הגדרות שגויות אצל דייר אחד ישפיעו על הדיירים האחרים.
מה צריך:
- פרויקט אחד של מפיק
פרויקט אחד לכל דייר (tenant)
המסוף
כדי להגדיר פרויקטים של דיירים ושל יצרנים באמצעות מסוף Google Cloud :
- יוצרים פרויקט של שירות מנוהל ופרויקט של דייר לכל אחד מהדיירים.
- הפעלת החיוב בפרויקטים של הדייר (tenant) והיצרן.
מפעילים בפרויקטים של הדיירים את ממשקי ה-API שנדרשים ל-App Lifecycle Manager.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם אתם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, אתם יכולים לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםמוודאים שבפרויקטים של הדיירים יש חשבונות שירות להפעלה עם ההרשאות הנדרשות.
פרטים נוספים זמינים במאמר חשבונות שירות של App Lifecycle Manager.
אחרי שיוצרים את פרויקטי ה-Producer וה-Tenant ומפעילים בהם את החיוב, אפשר ליצור משאבים של Tenant ולשייך יחידות ל-Tenants.
gcloud
כדי להגדיר פרויקטים של מפיקים ושל דיירים באמצעות Google Cloud CLI:
יוצרים פרויקט של שירות מנוהל ופרויקט של דייר (tenant) לכל אחד מהדיירים:
gcloud projects create \ PRODUCER_PROJECT_ID \ --name="SaaS producer project" gcloud projects create \ TENANT_PROJECT_ID \ --name="SaaS tenant A project"מחליפים את מה שכתוב בשדות הבאים:
-
PRODUCER_PROJECT_ID: מזהה הפרויקט של היצרן -
TENANT_PROJECT_ID: מזהה הפרויקט של הדייר (tenant)
-
מפעילים את החיוב בפרויקטים של הדייר והיצרן:
gcloud billing projects link \ PRODUCER_PROJECT_ID \ --billing-account=BILLING_ACCOUNT_ID gcloud billing projects link \ TENANT_PROJECT_ID \ --billing-account=BILLING_ACCOUNT_IDמחליפים את מה שכתוב בשדות הבאים:
-
BILLING_ACCOUNT_ID: המזהה של החשבון לחיוב שרוצים לשייך לפרויקטים שצוינו
-
מפעילים את ממשקי ה-API שנדרשים ל-App Lifecycle Manager בפרויקטים של הדיירים:
gcloud services enable \ saasservicemgmt.googleapis.com \ artifactregistry.googleapis.com \ config.googleapis.com \ developerconnect.googleapis.com \ cloudbuild.googleapis.com \ storage.googleapis.com \ --project=TENANT_PROJECT_IDמקצים לחשבון השירות של ההפעלה את תפקידי ה-IAM הנדרשים לכל פרויקט של דייר:
gcloud projects add-iam-policy-binding \ TENANT_PROJECT_ID \ --member='serviceAccount:SERVICE_ACCOUNT_ID@PRODUCER_PROJECT_ID.' \ --role=ROLEמחליפים את מה שכתוב בשדות הבאים:
-
SERVICE_ACCOUNT_ID: המזהה של חשבון השירות להפעלה -
ROLE: תפקיד ה-IAM שרוצים להקצות (לדוגמה,roles/compute.admin)
מריצים את הפקודה
gcloud projects add-iam-policy-bindingלכל תפקיד שרוצים להקצות לחשבון השירות שצוין.-
אחרי שיוצרים את הפרויקטים של המפיק והדייר ומפעילים בהם את החיוב, אפשר ליצור משאבים לדיירים ולשייך יחידות לדיירים.
יצירת משאב של דייר (tenant)
יוצרים משאב דייר ב-SaaS כדי לייצג את הלקוח:
במסוף Google Cloud , נכנסים לדף App Lifecycle Manager > Tenants.
לוחצים על Create.
בשדה Tenant name, נותנים שם למשאב הדייר.
אופציונלי: בשדה Consumer resource, מזינים משאב צרכן עם הגדרות שילוב שהוגדרו על ידי הצרכן.
ברשימה SaaS offering, בוחרים את מוצר ה-SaaS שרוצים לשייך לדייר.
ברשימה Region, בוחרים את האזור שבו מאוחסנים המטא-נתונים של הדייר.
אופציונלי: לוחצים על Add label כדי להוסיף תווית לדייר כצמד מפתח/ערך.
לוחצים על יצירה.
שיוך יחידה לדייר
אחרי שיוצרים דייר ופורסים יחידה, אפשר לקשר ביניהם. השיוך הזה משמש בעיקר כתווית ארגונית שעוזרת לכם לארגן אילו יחידות שייכות לכל דייר.
מידע נוסף על פריסת יחידות זמין במאמר פריסת מוצר SaaS.
כדי לשייך יחידה לדייר:
במסוף Google Cloud , נכנסים לדף App Lifecycle Manager > Tenants.
לוחצים על שם הדייר שרוצים לשייך ליחידה.
לוחצים על עריכה.
בקטע Select a unit to be included in the tenant, לוחצים על Add unit.
ברשימה Unit, בוחרים את היחידה שרוצים לשייך לדייר הזה.
לוחצים על סיום.
לוחצים על Save.
היחידות שנבחרו משויכות לדייר שצוין.
הקצאת יחידה חדשה עם משתנים של פרויקט הדייר
כשמקצים יחידה שמשויכת לדייר, צריך לספק את המשתנים tenant_project_id ו-tenant_project_number.
במסוף Google Cloud , נכנסים ל-App Lifecycle Manager > Units.
יוצרים יחידה חדשה שמשויכת לסוג היחידה.
לוחצים על הקצאה ידנית.
בוחרים את הגרסה שרוצים להקצות ליחידה הייעודית לדייר בענן.
בקטע Actuation service account, ברשימה Service account, בוחרים את חשבון השירות שהקציתם לו תפקידים בפרויקט של הדייר (tenant). חשוב לפעול לפי העיקרון של הרשאות מינימליות ולהקצות רק את התפקידים שנדרשים למשאבים שמנוהלים.
בקטע משתני קלט אחרים:
- לוחצים על Add tenant project variables ובוחרים את פרויקט הדייר כדי לאכלס את המשתנים
tenant_project_idו-tenant_project_number. - אופציונלי: לוחצים על Add input variable כדי להזין משתני קלט אחרים שמוגדרים ב-Terraform.
- לוחצים על Add tenant project variables ובוחרים את פרויקט הדייר כדי לאכלס את המשתנים
לוחצים על הקצאה ידנית.
App Lifecycle Manager מפעיל את Infrastructure Manager באמצעות חשבון השירות שצוין לסימולציה. הכלי Infrastructure Manager קורא את המשתנים tenant_project_id ו-tenant_project_number ומקצה את המשאבים של Terraform בתוך פרויקט הדייר (tenant).
הקצאה מחדש של יחידה עם גרסה חדשה
כשמקצים מחדש יחידה קיימת עם גרסה חדשה, צריך לספק את המשתנים tenant_project_id ו-tenant_project_number.
במסוף Google Cloud , נכנסים ל-App Lifecycle Manager > Units.
בוחרים את היחידה שמשויכת לסוג היחידה.
לוחצים על שדרוג.
בוחרים את הגרסה (Release) שיצרתם עם קובץ התצורה המעודכן של Terraform.
בקטע Actuation service account, ברשימה Service account, בוחרים את חשבון השירות שהקציתם לו תפקידים בפרויקט של הדייר (tenant). חשוב לפעול לפי העיקרון של הרשאות מינימליות ולהקצות רק את התפקידים שנדרשים למשאבים שמנוהלים.
בקטע משתני קלט אחרים:
- לוחצים על Add tenant project variables ובוחרים את פרויקט הדייר כדי לאכלס את המשתנים
tenant_project_idו-tenant_project_number. - אופציונלי: לוחצים על Add input variable כדי להזין משתני קלט אחרים שמוגדרים ב-Terraform.
- לוחצים על Add tenant project variables ובוחרים את פרויקט הדייר כדי לאכלס את המשתנים
לוחצים על שדרוג.
App Lifecycle Manager מפעיל את Infrastructure Manager באמצעות חשבון השירות שצוין להפעלה. מנהל התשתיות קורא את המשתנים tenant_project_id ו-tenant_project_number ומעדכן את המשאבים של Terraform בפרויקט של הדייר (tenant).