שיוך יחידות לדיירים

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

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

נשתמש בתרחיש מהמדריך למתחילים פריסת מכונה של MySQL באמצעות App Lifecycle Manager, ונשנה אותו כדי לשייך את יחידת ה-VM שנפרסה למשאב של דייר, ולהקצות את ה-VM לפרויקט ייעודי בבעלות הדייר:

  1. יוצרים משאב דייר ב-App Lifecycle Manager.
  2. משייכים מכונה וירטואלית למשאב הדייר.
  3. מגדירים את App Lifecycle Manager ואת Terraform כך שיפרסו משאבים בפרויקט דייר נפרד.
  4. לטפל בבעיות נפוצות שקשורות להרשאות ולהפעלת ה-API כשמבצעים פריסה בין פרויקטים.

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

לפני שמתחילים

לפני שיוצרים דיירים או משייכים אותם ליחידות, חשוב להכיר את העקרונות הבסיסיים של סביבת App Lifecycle Manager וליצור חבילת אפליקציות.

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

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

  2. פריסת מכונת MySQL באמצעות App Lifecycle Manager, כולל יצירת הגדרות של Terraform, מאגר Artifact Registry, מוצר אפליקציה, סוג יחידה, יחידה ורכיבים (כולל terraform-files.zip).

    • מוודאים שממשקי ה-API שמפורטים בקטע לפני שמתחילים של המדריך לתחילת העבודה מופעלים בפרויקט הבעלים של השירות המנוהל.
    • מוודאים שיש לכם את חשבונות השירות ותפקידי ה-IAM הנדרשים בפרויקט של הבעלים. זה כולל את חשבון השירות שנוצר על ידי המשתמש ואת ההרשאות שניתנו לחשבון service-PROJECT-NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.com בפרויקט של היצרן.
  3. צריך ליצור את פרויקט המפיק ואת פרויקטי הדיירים לפני שיוצרים ומשייכים את משאבי הדיירים. מידע נוסף זמין במאמר הגדרת פרויקט דייר (tenant).

יצירה ושיוך של משאב דייר

אפשר להשתמש בדיירים כדי לקבץ משאבים של יחידות. יוצרים משאב דייר (tenant) בהצעת האפליקציה של פרויקט השירות המנוהל, כדי לייצג את הלקוח:

  1. במסוף Google Cloud , עוברים אל App Lifecycle Manager (מנהל מחזור החיים של האפליקציה) > Tenants (דיירים).

    לדף Tenants

  2. לוחצים על יצירה.

  3. בדף Create tenant, מזינים את הערך vm-quickstart-tenant בתיבה Tenant name.

  4. בתיבה App offering (מוצר האפליקציה), בוחרים באפשרות vm-quickstart-saas-offering.

  5. בתפריט הנפתח Region, בוחרים באפשרות us-central1.

  6. לוחצים על הוספת יחידה. יופיע הקטע יחידה חדשה.

  7. בתפריט הנפתח יחידה, בוחרים את היחידה projects/YOUR-PROJECT-NAME/locations/us-central1/units/vm-quickstart-unit.

  8. לוחצים על Done כדי לשייך את המשאב vm-quickstart-unit למשאב vm-quickstart-tenant.

  9. לוחצים על Create כדי ליצור את משאב הדייר. יצרת בהצלחה את המשאב vm-quickstart-tenant ושייכת אותו למשאב vm-quickstart-unit. השיוך הזה משמש בעיקר כתג ארגוני במסוףGoogle Cloud , שעוזר לזהות אילו יחידות שייכות לכל דייר.

יצירת גרסה לדייר

  1. במסוף Google Cloud , עוברים אל App Lifecycle Manager (הכלי לניהול מחזור החיים של אפליקציות) > Releases (גרסאות).

    מעבר אל "פריטי תוכן"

  2. בדף פריטי תוכן, לוחצים על יצירה.

  3. בדף Create Release (יצירת גרסה), מזינים vm-quickstart-tenant-release בתיבה Release name (שם הגרסה).

  4. בתיבה Unit kind, בוחרים באפשרות vm-quickstart-unit-kind. לוחצים על הבא.

  5. בשלב Select Blueprint, לוחצים על המתג Select an existing image from Artifact Registry.

  6. בשלב Store Blueprint, לוחצים על Browse ובוחרים את פריט המידע שמשויך ל-vm-quickstart-tenant-blueprint. לוחצים על Next.

  7. לוחצים על יצירה. יצרת בהצלחה את המשאב vm-quickstart-tenant-release.

יצירה של פרויקט דייר (tenant) ופריסת יחידה

במדריך להתחלה מהירה בנושא פריסת מופע MySQL באמצעות App Lifecycle Manager, אתם מקצים משאבי App Lifecycle Manager לאותו פרויקט שמכיל את הגדרת מוצר האפליקציה שלכם.

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

‫תצטרכו להעביר משתנים ששונו, tenant_project_id ו-tenant_project_number, במהלך הקצאת היחידה.

  1. יוצרים פרויקט דייר (tenant) שבו יופרסו קובצי terraform-vm.zip:

    gcloud projects create quickstart-tenant-project --name="SaaS Tenant A Project"
    
  2. מפעילים ממשקי API ומקצים תפקידי IAM בפרויקט הדייר. כדי לפרוס יחידות בפרויקט הדייר, צריך להפעיל את Compute Engine API ולהקצות תפקידי IAM בפרויקט הדייר.

הפעלת ממשקי API בפרויקט הדייר (tenant)

מפעילים את Compute Engine API בפרויקט של הדייר באמצעות מסוף Google Cloud :

  1. עוברים לדף לבחירת הפרויקט.

    כניסה לדף לבחירת הפרויקט

  2. לוחצים על Select a project.

  3. בוחרים באפשרות quickstart-tenant-project.

  4. מפעילים את Compute Engine API, אם הוא עדיין לא מופעל.

    התפקידים שנדרשים כדי להפעיל ממשקי API

    כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    להפעלת ה-API

  5. צריך לוודא שיש לכם בפרויקט את התפקיד או התפקידים הבאים: roles/compute.admin

    בדיקת התפקידים

    1. נכנסים לדף IAM במסוף Google Cloud .

      כניסה לדף IAM
    2. בוחרים את הפרויקט.
    3. בעמודה Principal, מחפשים את כל השורות שמזהות אתכם או קבוצה שאתם נכללים בה. כדי לברר לאילו קבוצות אתם שייכים, אתם יכולים לפנות לאדמין.

    4. בודקים את העמודה Role בכל השורות שבהן מצוין או מופיע השם שלכם, כדי לראות אם רשימת התפקידים כוללת את התפקידים הנדרשים.

    מתן התפקידים

    1. נכנסים לדף IAM במסוף Google Cloud .

      כניסה לדף IAM
    2. בוחרים את הפרויקט.
    3. לוחצים על Grant access.
    4. בשדה New principals, מזינים את מזהה המשתמש. ‫ בדרך כלל מזהה המשתמש הוא כתובת האימייל של חשבון Google.

      ‫
    5. לוחצים על Select a role ומחפשים את התפקיד.
    6. כדי לתת עוד תפקידים, לוחצים על Add another role ומוסיפים אותם.
    7. לוחצים על Save.

הקצאת יחידה עם משתנים של פרויקט דייר (tenant)

בפרויקט של השירות המנוהל, מקצים יחידה חדשה עם משתני הקלט של פרויקט הדייר:

  1. עוברים לדף לבחירת הפרויקט.

    כניסה לדף לבחירת הפרויקט

  2. לוחצים על בחירת פרויקט.

  3. בוחרים את הפרויקט של ספק השירות.

  4. במסוף Google Cloud , עוברים אל App Lifecycle Manager‏ > Units.

    מעבר אל "יחידות"

  5. בוחרים משאב אחד (vm-quickstart-unit).

  6. לוחצים על הקצאה ידנית.

  7. בוחרים את המשאב vm-quickstart-tenant-release.

  8. בוחרים את חשבון השירות להפעלה שנתתם לו הרשאות בפרויקט הדייר (tenant).

  9. בקטע משתני קלט:

    • המשתנה tenant_project_id מופיע כמו שהגדרתם אותו ב-variables.tf.
    • בתיבה מזהה פרויקט הדייר, מזינים quickstart-tenant-project.
  10. לוחצים על הקצאה ידנית.

‫App Lifecycle Manager מפעיל את Infrastructure Manager באמצעות חשבון השירות שצוין להפעלה. הכלי Infrastructure Manager קורא את המשתנה tenant_project_id ויוצר את המכונה הווירטואלית בתוך פרויקט הדייר (tenant) הזה.

הסרת המשאבים

כדי לא לצבור חיובים בחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, מבצעים את הפעולות הבאות.

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. בהודעה שמופיעה, מקלידים את מזהה הפרויקט ולוחצים על Shut down.

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