במדריך הזה מוסבר איך להשתמש בדיירים של App Lifecycle Manager כדי לארגן את היחידות שנפרסו, ואיך לפרוס משאבים בפרויקטים נפרדים של דיירים כדי לבודד ולנהל את המשאבים.
סקירה כללית על דיירים ופרויקטים של דיירים זמינה במאמר דיירים ופרויקטים של דיירים.
לפני שמתחילים
לפני שיוצרים פרויקטים או משאבים של דיירים:
- יוצרים הגדרת Terraform, מאגר Artifact Registry ופריט מידע שנוצר בתהליך הפיתוח (Artifact) שמכיל את אפליקציית ה-SaaS בפרויקט של ספק השירות. במאמר פריסת מופע שירות באמצעות App Lifecycle Manager מוסבר איך להגדיר מוצר אפליקציה.
מפעילים את ממשקי ה-API שנדרשים ל-App Lifecycle Manager.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםמוודאים שיש לכם את חשבונות השירות הנדרשים ואת התפקידים של ניהול הזהויות והרשאות הגישה (IAM) שניתנו בפרויקט של השירות המנוהל. זה כולל את חשבון השירות שנוצר על ידי המשתמש ואת ההרשאות שניתנו לחשבון
service-PROJECT-NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.comבפרויקט של היצרן.
הגדרת פרויקט דייר (tenant)
כשמקצים את המשאבים של הדייר לפרויקטים נפרדים, המשאבים, מדיניות ה-IAM, המכסות והגדרות הרשת מופרדים לכל אחד מהדיירים. כך פוחת הסיכוי שפריצות או הגדרות שגויות אצל דייר אחד ישפיעו על הדיירים האחרים.
דרושים לך:
- פרויקט אחד של Producer, ו
פרויקט אחד של דייר לכל דייר.
המסוף
כדי להגדיר פרויקטים של דיירים ושל יצרנים באמצעות מסוף Google Cloud :
- יוצרים פרויקט של שירות מנוהל ופרויקט של דייר (tenant) לכל אחד מהדיירים.
- הפעלת החיוב בפרויקטים של הדייר והספק.
מפעילים בפרויקטים של הדיירים את ממשקי ה-API שנדרשים ל-App Lifecycle Manager.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםמוודאים שלפרויקטים של הדיירים יש חשבונות שירות של שירות ההפעלה עם ההרשאות הנדרשות.
לפרטים, ראו חשבונות שירות של App Lifecycle Manager.
הגדרתם בהצלחה את פרויקטי הדייר והיצרן. אחרי שיוצרים את הפרויקטים של היצרן והדייר ומפעילים בהם את החיוב, אפשר ליצור משאבים לדיירים ולשייך יחידות לדיירים.
gcloud
כדי להגדיר פרויקטים של ספק ודייר באמצעות Google Cloud CLI:
יוצרים את פרויקט הספק ואת פרויקט הדייר לכל אחד מהדיירים:
gcloud projects create PRODUCER_PROJECT_ID --name="SaaS producer project" [--folder=folder-id] gcloud projects create TENANT_PROJECT_ID --name="SaaS tenant A project" [--folder=folder-id]מחליפים את:
-
PRODUCER_PROJECT_ID: מזהה מחרוזת שמייצג את מזהה הפרויקט של היצרן. -
TENANT_PROJECT_ID: מזהה מחרוזת שמייצג את מזהה פרויקט הדייר (tenant).
-
מפעילים את החיוב בפרויקטים של הדייר והיצרן:
gcloud beta billing projects link PRODUCER_PROJECT_ID --billing-account=BILLING_ACCOUNT_ID gcloud beta billing projects link TENANT_PROJECT_ID --billing-account=BILLING_ACCOUNT_IDמחליפים את:
-
PRODUCER_PROJECT_ID: מזהה מחרוזת שמייצג את מזהה הפרויקט של היצרן. -
TENANT_PROJECT_ID: מזהה מחרוזת שמייצג את מזהה פרויקט הדייר (tenant). -
BILLING_ACCOUNT_ID: המזהה של החשבון לחיוב שרוצים לשייך לפרויקט שצוין.
-
מקצים לחשבון השירות להפעלה את התפקידים הנדרשים בניהול הזהויות והרשאות הגישה (IAM) לכל פרויקט דייר (tenant):
gcloud projects add-iam-policy-binding TENANT_PROJECT_ID \ --member='serviceAccount:SERVICE_ACCOUNT@PRODUCER_PROJECT_ID.iam.gserviceaccount.com' \ --role=ROLEמחליפים את:
-
TENANT_PROJECT_ID: מזהה מחרוזת שמייצג את מזהה פרויקט הדייר (tenant). -
PRODUCER_PROJECT_ID: מזהה מחרוזת שמייצג את מזהה הפרויקט של ספק השירות. -
SERVICE_ACCOUNT: חשבון השירות שרוצים להקצות לו תפקידים בפרויקט שצוין.
ROLE: התפקיד בניהול הזהויות והרשאות הגישה שרוצים להקצות.צריך להריץ את
gcloud projects add-iam-policy-bindingלכל תפקיד שרוצים להקצות לחשבון השירות שצוין (לדוגמה,--role='roles/compute.admin').
-
הגדרתם בהצלחה את פרויקטי הדייר והיצרן. אחרי שיוצרים את הפרויקטים של היצרן והדייר ומפעילים בהם את החיוב, אפשר ליצור משאבים לדיירים ולשייך יחידות לדיירים.
יצירת משאב של דייר (tenant)
יוצרים משאב tenant בהצעה של האפליקציה כדי לייצג את הלקוח:
במסוף Google Cloud , עוברים אל App Lifecycle Manager (מנהל מחזור החיים של האפליקציה) > Tenants (דיירים).
לוחצים על יצירה.
בתיבה Tenant name, מזינים שם למשאב הדייר.
אופציונלי: בתיבה Customer resource, מספקים משאב צרכן עם הגדרות שילוב שהוגדרו על ידי הצרכן.
בתיבה App offering, בוחרים את האפליקציה שרוצים לשייך לדייר.
בתפריט הנפתח Region, בוחרים את האזור שבו יאוחסנו המטא-נתונים של הדייר.
אופציונלי: לוחצים על הוספת תווית כדי להוסיף לדייר תווית של צמד מפתח/ערך.
לוחצים על יצירה כדי ליצור את משאב הדייר.
יצרתם בהצלחה משאב דייר.
שיוך יחידה לדייר
אחרי שיוצרים דייר ומפריסים יחידה, אפשר לקשר ביניהם. השיוך הזה משמש בעיקר כתווית ארגונית שעוזרת לכם לארגן אילו יחידות שייכות לאיזה דייר.
מידע נוסף על פריסת יחידות זמין במאמר פריסת מופע MySQL באמצעות App Lifecycle Manager.
כדי לשייך יחידה לדייר:
במסוף Google Cloud , עוברים אל App Lifecycle Manager (מנהל מחזור החיים של האפליקציה) > Tenants (דיירים).
לוחצים על שם הדייר שרוצים לשייך ליחידה.
לוחצים על Edit.
בקטע יחידות משויכות, לוחצים על הוספת יחידה.
בוחרים את היחידות שרוצים לשייך לדייר הזה.
לוחצים על סיום.
לוחצים על Save.
היחידות שנבחרו משויכות לדייר שצוין.
הקצאת יחידה חדשה עם משתנים של פרויקט דייר (tenant)
כשמקצים יחידה שמשויכת לדייר, צריך לספק את המשתנה tenant_project_id.
במסוף Google Cloud , עוברים אל App Lifecycle Manager > Units.
יוצרים יחידה חדשה שמשויכת לסוג היחידה.
לוחצים על הקצאה ידנית.
בוחרים את הגרסה שרוצים להקצות ליחידה ייעודית לדייר בענן.
בוחרים את חשבון השירות של הפעלת התהליך שהענקתם לו הרשאות בפרויקט הדייר. כדאי לפעול לפי העיקרון של הרשאות מינימליות ולהעניק רק את התפקידים הדרושים לניהול המשאבים.
בקטע משתני קלט:
- מוודאים שהמשתנה
tenant_project_idמופיע כמו שהגדרתם אותו בקובץ התצורהvariables.tfשל Terraform. - בתיבה Tenant Project ID, מזינים את שם פרויקט הדייר (tenant).
- מזינים את משתני הקלט שמוגדרים בתצורה של Terraform. אם לא הגדרתם משתנים אחרים בתצורה של Terraform, דלגו על השלב הזה.
- מוודאים שהמשתנה
לוחצים על הקצאה ידנית.
App Lifecycle Manager מפעיל את Infrastructure Manager באמצעות חשבון השירות שצוין להפעלה. הכלי Infrastructure Manager קורא את המשתנה tenant_project_id ויוצר את המכונה הווירטואלית בתוך פרויקט הדייר (tenant) הזה.
הקצאה מחדש של יחידה עם גרסה חדשה
כשמקצים מחדש יחידה קיימת עם גרסה חדשה, צריך לספק את המשתנה tenant_project_id.
במסוף Google Cloud , עוברים אל App Lifecycle Manager > Units.
בוחרים את היחידה שמשויכת לסוג היחידה.
לוחצים על עריכת הקצאת ההרשאות.
בוחרים את הגרסה שיצרתם עם קובץ התצורה המעודכן של Terraform.
בוחרים את חשבון השירות להפעלה שנתתם לו הרשאות בפרויקט הדייר (tenant). חשוב לפעול לפי העיקרון של הרשאות מינימליות ולהקצות רק את התפקידים שנדרשים לניהול המשאבים.
בקטע משתני קלט:
- מוודאים שהמשתנה
tenant_project_idמופיע כמו שהגדרתם אותו בקובץ התצורהvariables.tfשל Terraform. - בתיבה Tenant Project ID, מזינים את שם פרויקט הדייר (tenant).
- מזינים את משתני הקלט שמוגדרים בתצורה של Terraform. אם לא הגדרתם משתנים אחרים בתצורת Terraform, אפשר לדלג על השלב הזה.
- מוודאים שהמשתנה
לוחצים על עדכון.
App Lifecycle Manager מפעיל את Infrastructure Manager באמצעות חשבון השירות שצוין להפעלה. Infrastructure Manager קורא את המשתנה tenant_project_id ויוצר את המכונה הווירטואלית בתוך פרויקט הדייר הזה.
המאמרים הבאים
- ניהול יחסי התלות בין היחידות
- מידע נוסף על שימוש במשתנים ומיפוי משתנים
- ההרשאות שנדרשות לחשבונות שירות