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

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

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

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

  • بخش پشتی: مجموعه منابع مدیریت‌شده‌ای که App Hosting برای ساختن و اجرای برنامه وب شما ایجاد می‌کند.
  • ساخت: بازبینی خاصی از برنامه شما که معمولاً به یک git commit پیوند داده شده است. فرایند ایجاد ساخت دارای چندین زیرفرایند است، به‌ویژه ساخت برنامه شما در Cloud Build، و استقرار یک بازبینی (در ابتدا ۰٪ ترافیک را تا زمان عرضه ارائه می‌دهد) در Cloud Run.
  • عرضه: فرایند تنظیم یک ساخت برای ارائه فعال ترافیک. وقتی App Hosting به‌طور خودکار توسط git commit راه‌اندازی می‌شود، ابتدا بااستفاده از شاخه فعال شما ساخت ایجاد می‌کند، سپس برای هدایت ترافیک فعال به آن، عرضه ایجاد می‌کند.
  • شاخه فعال: شاخه مخزن GitHub شما که در نشانی وب فعال شما مستقر می‌شود. اغلب، این شاخه همان شاخه‌ای است که شاخه‌های ویژگی یا شاخه‌های توسعه در آن ادغام می‌شوند.

معماری Google Cloud و App Hosting

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

نموداری از معماری شرح‌داده‌شده در این صفحه.

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

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

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

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

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

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

نحوه عملکرد ادغام مخزن App Hosting

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

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

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

ادغام با Firebase و دیگر سرویس‌های Google

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

App Hosting مکان

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

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

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

  • us-central1 (آیووا)
  • us-east4 (N. ویرجینیا)
  • ‫us-east5 (کلمبوس)
  • asia-east1 (تایوان)
  • ‫asia-southeast1 (سنگاپور)
  • europe-west4 (هلند)

حساب سرویس پسای App Hosting

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

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

این حساب سرویس به‌طور پیش‌فرض برای همه باجه‌های پشتی اعمال می‌شود و حداقل مجموعه اجازه‌ها را دارد تا به شما امکان دهد برنامه‌تان را بسازید، اجرا کنید، و پایش کنید. همچنین اجازه دارد «کیت توسعه نرم‌افزار سرپرست» را با «اعتبارنامه‌های پیش‌فرض برنامه» اصالت‌سنجی کند، تا عملیاتی مثل بار کردن داده‌ها از Cloud Firestore را انجام دهد. نقش‌های Firebase App Hosting را ببینید.

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