آشنایی با میزبانی برنامه و نحوه عملکرد آن

App Hosting مجموعه پیچیده ای از وظایف پس زمینه را انجام می دهد تا استقرار برنامه شما را ساده کند. این صفحه بخش‌های کلیدی آن جریان کار را شرح می‌دهد و اطلاعاتی درباره نقاطی که ممکن است بخواهید جریان را بسته به نیاز برنامه‌تان سفارشی کنید، ارائه می‌کند.

معماری Google Cloud و App Hosting

App Hosting مجموعه‌ای از محصولات Google Cloud را تنظیم می‌کند تا بتوانید برنامه وب خود را مستقر، ارائه و نظارت کنید. برنامه ها با Cloud Build ساخته می شوند، در Cloud Run ارائه می شوند و در Cloud CDN ذخیره می شوند. سرویس های یکپارچه مانند Cloud Secret Manager کلیدهای API شما را ایمن نگه می دارند.

نموداری از معماری که در این صفحه توضیح داده شده است.

  1. وقتی یک تعهد به شعبه زنده شما فرستاده می‌شود، Google Cloud Developer Connect رویدادی را به Firebase App Hosting ارسال می‌کند.
  2. در پاسخ به این رویداد، Firebase App Hosting یک عرضه جدید برای هر پشتیبان متصل به مخزن آغاز می کند.
  3. Firebase App Hosting یک ساخت جدید Cloud Build برای commit شما ایجاد می کند. در این کار، بسته‌های ساخت Google Cloud تعیین می‌کنند که کدام چارچوب در برنامه شما برای ایجاد یک کانتینر و پیکربندی (شامل متغیرهای محیط، اسرار، نمونه‌های حداقل یا حداکثر، حافظه همزمان، CPU و پیکربندی VPC) استفاده می‌شود که مناسب برنامه شما باشد.
  4. پس از تکمیل کار Cloud Build ، کانتینر شما در یک مخزن Artifact Registry که به Firebase App Hosting اختصاص داده شده است، ذخیره می شود. سپس Firebase App Hosting یک ویرایش جدید Cloud Run را با استفاده از تصویر و پیکربندی شما به سرویس Cloud Run اضافه می کند. هنگامی که نسخه Cloud Run شما سالم تأیید شد، Firebase App Hosting پیکربندی ترافیک خود را تغییر می‌دهد تا همه درخواست‌های جدید را به نسخه جدید Cloud Run شما نشان دهد. در این مرحله، عرضه کامل شده است.
  5. وقتی درخواستی به وب‌سایتی که در Firebase App Hosting میزبانی می‌شود ارسال می‌شود، درخواست توسط Google Cloud Load Balancer با Cloud CDN فعال ارائه می‌شود. درخواست های ذخیره نشده به سرویس Cloud Run شما ارسال می شود.

یکپارچه سازی چارچوب

App Hosting پشتیبانی از ساخت و استقرار از پیش تنظیم شده را برای برنامه های وب توسعه یافته در این چارچوب ها ارائه می دهد:

  • Next.js 13.5.x و بالاتر
  • Angular 18.2.x و بالاتر

برای جزئیات بیشتر در مورد نسخه های خاص و سطوح پشتیبانی، به برنامه های پشتیبانی مراجعه کنید.

علاوه بر Next.js و Angular، App Hosting همچنین از هر چارچوب وب که قادر به ارائه خروجی ساخت مطابق با مشخصات بسته خروجی ما باشد، پشتیبانی می‌کند. برای اطلاعات بیشتر در مورد چارچوب‌ها، آداپتورهای چارچوب، و ابزارهای مرتبط پشتیبانی‌شده توسط App Hosting به Frameworks and tooling for App Hosting مراجعه کنید.

چگونه یکپارچه سازی مخزن App Hosting کار می کند

ارتباط مهم بین مخزن GitHub شما و باطن App Hosting توسط Developer Connect ، پلت فرم اتصال Google Cloud برای ابزارهای DevOps خارجی انجام می شود. در طول ایجاد پشتیبان App Hosting ، گردش کار رابط کاربری Developer Connect شما را از طریق نصب برنامه Firebase GitHub راهنمایی می کند. مراحل کلیدی در این فرآیند عبارتند از:

  1. شما به Developer Connect نقش مدیر Secret Manager را می دهید. این به سیستم اجازه می‌دهد تا اعتبارنامه‌ها را به‌عنوان «اسرار» در Cloud Secret Manager به‌طور ایمن ذخیره کند.
  2. شما به برنامه Firebase GitHub اجازه دسترسی به مخزن GitHub خود را می دهید.
  3. Developer Connect یک توکن مجوز اختصاصی GitHub را در مخزن مخفی مدیر پروژه شما ذخیره می کند. این نشانه را اصلاح یا حذف نکنید.

علاوه بر این، App Hosting با API چک‌های GitHub ادغام می‌شود تا یک بررسی برای عرضه ارائه کند. این بررسی به شما امکان می دهد وضعیت عرضه خود را در GitHub مشاهده کنید و در صورت بروز هر گونه خطایی، فرآیند استقرار را اشکال زدایی کنید.

ادغام با Firebase و سایر خدمات Google

App Hosting هر دو محیط ساخت و زمان اجرا شما را تنظیم می‌کند تا بتوانید Firebase Admin SDK را با اعتبار پیش‌فرض Google Application راه‌اندازی کنید . به این ترتیب، باطن شما می تواند با سایر محصولات Firebase در زمان ساخت و اجرا ارتباط برقرار کند. برای اطلاعات بیشتر درباره مقداردهی اولیه برنامه و سایر موضوعات مرتبط با Firebase SDK ، به ادغام Firebase SDK در برنامه وب خود مراجعه کنید.

مکان های App Hosting

App Hosting منابع باطن شما را در یک مکان خاص به نام منطقه اصلی شما ایجاد می کند. در حالی که App Hosting برای تحویل سریع با یک CDN جهانی ادغام می شود، محتوای ذخیره نشده از منطقه اصلی برنامه شما ارائه می شود. این انعطاف پذیری در مکان برنامه وب شما دارای مزایای کلیدی است:

  • بهبود عملکرد و کاهش تاخیر با نزدیک کردن داده ها از نظر جغرافیایی به کاربران شما.
  • یک شکست فاجعه بار برای App Hosting در یک منطقه بر برنامه های وب مستقر در مناطق دیگر تأثیر نمی گذارد.

هنگام ایجاد پشتیبان App Hosting از کنسول یا Firebase CLI، می توانید یکی از این مناطق را انتخاب کنید:

  • us-central1 (آیووا)
  • asia-east1 (تایوان)
  • europe-west4 (هلند)

حساب خدمات باطن App Hosting

در حین ساخت و در زمان اجرا، باطن App Hosting شما با سایر سرویس‌های Google با یک حساب سرویس احراز هویت می‌شود. اولین باری که App Hosting در پروژه Firebase فعال می‌کنید، یک حساب سرویس پیش‌فرض برای این اهداف ایجاد می‌شود:

firebase-app-hosting-compute@ PROJECT ID .iam.gserviceaccount.com

این حساب سرویس به طور پیش‌فرض برای همه بک‌اندها اعمال می‌شود و دارای حداقل مجموعه مجوزهایی است که به شما امکان می‌دهد برنامه خود را بسازید، اجرا کنید و نظارت کنید. همچنین مجوز احراز هویت Admin SDK با اعتبار پیش فرض برنامه را برای انجام عملیاتی مانند بارگیری داده از Cloud Firestore دارد. نقش‌های App Hosting Firebase را ببینید.

اگر برنامه شما نیاز به تعامل با سرویس‌های اضافی Google در زمان ساخت یا از یک باطن در حال اجرا دارد، می‌توانید با افزودن نقش‌ها، حساب سرویس پیش‌فرض را سفارشی کنید. برای مثال، اگر برنامه شما به مجوزهای Vertex AI نیاز دارد، ممکن است لازم باشد roles/aiplatform.user یا برخی از نقش‌های مرتبط را اضافه کنید.

اصطلاحات و تعاریف کلیدی

  • Backend : مجموعه ای از منابع مدیریت شده که App Hosting برای ساخت و اجرای برنامه وب شما ایجاد می کند.
  • انتشار : نسخه خاصی از برنامه زنده شما که به یک git commit پیوند داده شده است.
  • شعبه زنده : شاخه ای از مخزن GitHub شما که در URL زنده شما مستقر می شود. اغلب، این شاخه ای است که شاخه های ویژگی یا شاخه های توسعه در آن ادغام می شوند.