פריסת סביבות מרובות מקוד בסיס

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

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

דרישות מוקדמות

  • קוד האפליקציה שלכם כבר מאוחסן ב-GitHub.
  • כבר יצרתם פרויקט נפרד לכל אחת מהסביבות שלכם, למשל my-production-firebase-project ו-my-staging-firebase-project. חשוב לתייג את פרויקט Firebase לסביבת הייצור באמצעות סוג הסביבה 'production'.
  • בכל פרויקט יצרתם קצה עורפי של App Hosting, וההסתעפות הפעילה מוגדרת להסתעפות ב-GitHub שאתם רוצים לפרוס (למשל main). למידע נוסף, ראו תחילת העבודה עם App Hosting.

שלב 0: יצירת הגדרת ברירת מחדל בקובץ apphosting.yaml

App Hosting תומך בקובץ תצורה בשם apphosting.yaml כדי לנהל הגדרות של זמן ריצה (מעבד (CPU), בו-זמניות, מגבלות זיכרון וכו') ומשתני סביבה לאפליקציה שלכם, וגם תמיכה בהפניות לסודות שמנוהלים באמצעות Cloud Secret Manager, כך שתוכלו לבדוק בבטחה את בקרת המקור. למידע נוסף, ראו הגדרת קצה עורפי.

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

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

שלב 1: מגדירים את שם הסביבה

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

כדי להגדיר את שם הסביבה של הקצה העורפי:

  1. במסוף Firebase, בוחרים את פרויקט ה-staging (בדוגמאות האלה, my-staging-firebase-project).
  2. בוחרים באפשרות App Hosting בסרגל הניווט הימני.
  3. לוחצים על View dashboard (הצגת מרכז הבקרה) בקצה העורפי שבחרתם.
  4. בכרטיסייה Settings, בוחרים באפשרות Deployment.
  5. בקטע Environment name (שם הסביבה),מזינים את שם הסביבה. אפשר לתת לסביבה כל שם שרוצים. בדוגמה הזו, השם הוא staging.
  6. לוחצים על שמירה.

כשהשקה של App Hosting מופעלת לקצה העורפי (ב-git push או באופן ידני דרך המסוף), App Hosting יבדוק אם יש קובץ apphosting.ENVIRONMENT_NAME.yaml לפני שהוא יחזור ל-apphosting.yaml.

שלב 2: יוצרים את קובץ apphosting.yaml הספציפי לסביבה

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

בזמן ה-build, App Hosting ממזג את שני הקבצים האלה, כאשר הערכים בקובץ ה-YAML הספציפי לסביבה מקבלים עדיפות על פני הקובץ הבסיסי apphosting.yaml.

בדוגמה הזו, נוצר קובץ בשם apphosting.staging.yaml בספריית השורש של האפליקציה:


runConfig:
  cpu: 1
  memoryMiB: 512
  concurrency: 5

env:
  -   variable: API_URL
    value: api.staging.service.com
    availability:
      -   BUILD

  -   variable: DATABASE_URL
    secret: secretStagingDatabaseURL

נניח שכבר היה לכם apphosting.yaml שנראה כך:

runConfig:
  cpu: 3
  memoryMiB: 1024
  maxInstances: 4
  minInstances: 0
  concurrency: 100

env:
  -   variable: API_URL
    value: api.service.com
    availability:
      -   BUILD
      -   RUNTIME

  -   variable: STORAGE_BUCKET
    value: mybucket.appspot.com
    availability:
      -   RUNTIME

  -   variable: API_KEY
    secret: secretIDforAPI

הפלט הממוזג הסופי, שאפשר לבדוק ביומני Cloud Build, ייראה כך:

runConfig:
  cpu: 1
  memoryMiB: 512
  maxInstances: 4
  minInstances: 0
  concurrency: 5

env:
  -   variable: API_URL
    value: api.staging.service.com
    availability:
      -   BUILD

  -   variable: STORAGE_BUCKET
    value: mybucket.appspot.com
    availability:
      -   RUNTIME

  -   variable: API_KEY
    secret: secretIDforAPI

  -   variable: DATABASE_URL
    secret: secretStagingDatabaseURL

הערה: ערכים מסוימים של runConfig, כמו מעבד, הוחלפו, וגם משתני סביבה חופפים.

שלב 3: פריסת קוד הבסיס

אחרי שמסיימים לערוך את קובץ apphosting.ENVIRONMENT_NAME.yaml הספציפי לסביבה, דוחפים את הקובץ ל-GitHub:

$ git add apphosting.<ENVIRONMENT_NAME>.yaml
$ git commit -m "Added environment specific yaml file"
$ git push

כל קצה עורפי שמתויג בשם הסביבה הזה ישתמש בערכי ההחרגה הספציפיים שציינתם בקובץ ה-YAML התואם, ויעבור לערך apphosting.yaml אם לא יימצא ערך. לקצוות עורפיים ללא שם סביבה משויך, אפשר להמשיך להשתמש בקובץ apphosting.yaml.

השלבים הבאים