הצגת תוכן דינמי ואירוח מיקרו-שירותים (microservices) באמצעות אירוח ב-Firebase

Firebase Hosting משתלב עם אפשרויות מחשוב ללא שרת (serverless computing), כולל Cloud Functions for Firebase ו-Cloud Run. באמצעות Firebase Hosting עם האפשרויות האלה, אפשר לארח מיקרו-שירותים על ידי הפניית בקשות HTTPS להפעלת הפונקציות והאפליקציות בקונטיינרים בסביבה מאובטחת ומנוהלת.

Cloud Functions for Firebase: כותבים ומפרסים פונקציה, שהיא קוד לקצה העורפי שמגיב לטריגר ספציפי. לאחר מכן, תוכלו להשתמש ב-Firebase Hosting כדי להפנות בקשות HTTPS להפעלת הפונקציה.

Cloud Run: כותבים ומפרסים אפליקציה ארוזת בקובץ אימג' בקונטיינר. לאחר מכן, תוכלו להשתמש ב-Firebase Hosting כדי להפנות בקשות HTTPS להפעלת האפליקציה בקונטיינר.

תרחישים לדוגמה

איך משתמשים באפשרויות של מחשוב ללא שרת עם Firebase Hosting?

  • הצגת תוכן דינמי – בנוסף להצגת תוכן סטטי באתר Hosting, אפשר להציג תגובות שנוצרו באופן דינמי מפונקציה או מאפליקציה בקונטיינר שמבצעת לוגיקה בצד השרת.

    לדוגמה, אפשר להפנות תבנית של כתובת URL (כמו /blog/<blog-post-id>) לפונקציה שמשתמשת בפרמטר של מזהה הפוסט בבלוג בכתובת ה-URL כדי לאחזר תוכן באופן דינמי מהמסד הנתונים.

  • פיתוח ממשקי API ל-REST – אפשר ליצור API של מיקרו-שירותים באמצעות פונקציות.

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

  • שמירה במטמון של תוכן דינמי – אפשר להגדיר שמירת מטמון של התוכן הדינמי ב-CDN גלובלי.

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

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

בחירת אפשרות ללא שרת

Cloud Functions for Firebase ו-Cloud Run משתלבים עם Firebase Hosting ומציעים סביבה מאובטחת ומנוהלת לחלוטין עם התאמה אוטומטית לעומס, אבל אפשר להשתמש בשתי האפשרויות בתרחישי שימוש שונים וברמות שונות של הגדרה מותאמת אישית.

כשמשתמשים באחת מהאפשרויות ללא שרת, מומלץ למקם אותה ליד השרתים של Firebase Hosting על ידי פריסה באחת מהאזורים הבאים:

  • us-west1
  • us-central1
  • us-east1
  • europe-west1
  • asia-east1

בטבלה הבאה מפורטים כמה שיקולים בסיסיים לשימוש ב-Cloud Functions for Firebase לעומת Cloud Run. ברשימה המלאה של המכסות, המגבלות והמדדים תוכלו למצוא מידע מפורט על כל מוצר (Cloud Functions for Firebase או Cloud Run).

התעניינות ברכישה Cloud Functions for Firebase Cloud Run
הגדרה ה-CLI של Firebase מקבצ כמה משימות בפקודות יחידות, החל מהפעלה ועד ליצירה ולפריסה. בקונטיינרים יש יותר אפשרויות להתאמה אישית, ולכן משימות ההגדרה, ה-build והפריסה כוללות שלבים נפרדים.
סביבת זמן ריצה נדרש Node.js, אבל אפשר לציין באיזו גרסה של Node.js להשתמש. כשמפתחים את הקונטיינר, מציינים את סביבת זמן הריצה.
תמיכה בשפות ובמסגרות

JavaScript ו-TypeScript

יש תמיכה במסגרות אינטרנט, כמו Express.js.

כל שפה שתומכת ב-Dockerfiles, כולל Go,‏ Node.js,‏ Python,‏ Java ועוד

יש תמיכה במסגרות אינטרנט לכל שפה.

הזמן הקצוב לתפוגה של בקשה Hosting 60 שניות (ראו הערה בהמשך) 60 שניות (ראו הערה בהמשך)
ביצוע בו-זמנית בקשה אחת לכל מכונה של פונקציה
(אין בו-זמניות לכל מכונה)
עד 1,000 בקשות בו-זמנית לכל מכונה בקונטיינר
חיוב שימוש ב-Cloud Functions

מכסה לשימוש בחינם, אבל נדרש חשבון Cloud Billing. אפשר לעיין בשאלות הנפוצות בנושא Firebase.

שימוש ב-Cloud Run + אחסון ב-Container Registry

מכסה לשימוש בחינם, אבל נדרש חשבון Cloud Billing