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

לרוב, פורסים כמה סביבות מאותה קוד בסיס, עם הגדרות שונות במקצת. לדוגמה, יכול להיות שתרצו להקצות פחות מעבד ופחות זיכרון 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, שמאפשר לנהל את הגדרות זמן הריצה (מעבד, בו-זמניות, מגבלות זיכרון וכו') ומשתני הסביבה של האפליקציה. הוא תומך גם בהפניות לסודות שמנוהלים באמצעות 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 מסוימים, כמו מעבד (CPU) הוחלפו וגם משתני סביבה חופפים.

שלב 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.

השלבים הבאים