التعرّف على خدمة استضافة التطبيقات وطريقة عملها

تتعامل أداة App Hosting مع سلسلة معقّدة من المهام في الخلفية لتبسيط عملية نشر تطبيقك. تصف هذه الصفحة الأجزاء الرئيسية من تدفق المهام، وتوفّر معلومات حول النقاط التي قد ترغب في تخصيص التدفق فيها بناءً على احتياجات تطبيقك.

المصطلحات والتعريفات الرئيسية

لفهم تفاصيل عملية App Hosting، من المفيد تحديد بعض المصطلحات بشكل دقيق جدًا. في ما يلي المصطلحات الأساسية:

  • الخلفية: مجموعة الموارد المُدارة التي تنشئها App Hosting لإنشاء تطبيق الويب وتشغيله.
  • الإصدار: نسخة منقحة محدّدة من تطبيقك، وعادةً ما تكون مرتبطة بعملية git commit. تتضمّن عملية إنشاء إصدار العديد من العمليات الفرعية، لا سيما إنشاء تطبيقك في Cloud Build، ونشر نسخة (تعرض في البداية %0 من عدد الزيارات إلى أن يتم طرحها) في Cloud Run.
  • الطرح: عملية ضبط إصدار لعرض الزيارات بشكل نشط. عندما يتم تشغيلها تلقائيًا من خلال عملية تثبيت git، تنشئ App Hosting أولاً إصدارًا باستخدام فرعك المباشر، ثم تنشئ عملية طرح لتوجيه الزيارات المباشرة إليه.
  • الفرع المنشور: فرع مستودع GitHub الذي يتم نشره على عنوان URL المنشور. غالبًا ما يكون هذا الفرع هو الفرع الذي يتم فيه دمج فروع الميزات أو فروع التطوير.

بنية Google Cloud وApp Hosting

App Hosting orchestrates a set of Google Cloud products so you can deploy, serve, and monitor your web app. Apps are built with Cloud Build, served on Cloud Run, and cached in Cloud CDN. وتحافظ الخدمات المدمجة، مثل Cloud Secret Manager، على أمان مفاتيح واجهة برمجة التطبيقات.

مخطّط بياني للبنية الموضّحة في هذه الصفحة

  1. عند إرسال عملية تثبيت إلى الفرع المباشر، يرسل Google Cloud Developer Connect حدثًا إلى Firebase App Hosting.
  2. استجابةً لهذا الحدث، ينشئ Firebase App Hosting إصدارًا جديدًا للخلفية المتصلة بالمستودع.
    1. أولاً، ينشئ Firebase App Hosting إصدار Cloud Build جديدًا لعملية الإرسال. في هذه المهمة، تحدّد حِزم Google Cloud buildpacks إطار العمل المستخدَم في تطبيقك لإنشاء حاوية وإعدادات (بما في ذلك متغيّرات البيئة والبيانات السرية والحد الأدنى أو الأقصى لعدد الآلات الافتراضية والتزامن والذاكرة ووحدة المعالجة المركزية وإعدادات شبكة 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 مع تفعيل Cloud CDN. يتم إرسال الطلبات غير المخزّنة مؤقتًا إلى خدمة Cloud Run. يمكنك الاطّلاع على تخزين محتوى التطبيق مؤقتًا للحصول على إرشادات حول كيفية تحسين الأداء باستخدام Cloud CDN.

دمج إطار العمل

توفّر منصة App Hosting دعمًا مُعدًّا مسبقًا لإنشاء ونشر تطبيقات الويب التي تم تطويرها باستخدام إطارات العمل التالية:

  • الإصدار 13.5.x من Next.js والإصدارات الأحدث
  • الإصدار 18.2.x من Angular والإصدارات الأحدث

يمكنك الاطّلاع على جداول الدعم للحصول على تفاصيل حول إصدارات ومستويات دعم معيّنة.

بالإضافة إلى 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. يجب منح Developer Connect دور مشرف Secret Manager. يتيح ذلك للنظام تخزين بيانات الاعتماد بأمان على شكل "أسرار" في Cloud Secret Manager.
  2. يجب منح تطبيق Firebase GitHub الإذن بالوصول إلى مستودع GitHub. قد تحتاج إلى أذونات GitHub إضافية للوصول إلى المستودع الصحيح.
  3. تخزِّن خدمة Developer Connect رمز تفويض GitHub مخصّصًا في مستودع Secret Manager الخاص بمشروعك، لذا يُرجى عدم تعديل هذا الرمز أو حذفه.

بالإضافة إلى ذلك، يتكامل App Hosting مع واجهة برمجة التطبيقات GitHub checks API لتوفير عملية تحقّق من عمليات الطرح. يتيح لك هذا التحقّق الاطّلاع على حالة الطرح في GitHub وتصحيح أخطاء عملية النشر في حال حدوث أي أخطاء.

التكامل مع Firebase وخدمات Google الأخرى

تُعدّ App Hosting بيئات الإنشاء ووقت التشغيل لكي تتمكّن من إعداد مدير SDK في Firebase باستخدام "بيانات الاعتماد التلقائية للتطبيق" من Google. بهذه الطريقة، يمكن للواجهة الخلفية التواصل مع منتجات Firebase الأخرى في وقتَي الإنشاء والتشغيل. يمكنك الاطّلاع على دمج حِزم تطوير البرامج (SDK) لمنصة Firebase في تطبيق الويب لمزيد من المعلومات حول إعداد تطبيقك والمواضيع الأخرى ذات الصلة بحِزم تطوير البرامج (SDK) لمنصة Firebase.

App Hosting موقع جغرافي

تنشئ App Hosting موارد الخلفية في موقع جغرافي محدّد يُعرف باسم المنطقة الأساسية. على الرغم من أنّ App Hosting يتكامل مع شبكة توصيل محتوى (CDN) عالمية لتسليم المحتوى بسرعة، يتم عرض المحتوى غير المخزَّن مؤقتًا من المنطقة الأساسية لتطبيقك. توفّر هذه المرونة في موقع تطبيق الويب مزايا رئيسية:

  • تحسين الأداء وتقليل وقت الاستجابة من خلال تقريب البيانات جغرافيًا من المستخدمين
  • ففي حال حدوث عطل كارثي في App Hosting في منطقة واحدة، لن تتأثر تطبيقات الويب المنشورة في مناطق أخرى.

يمكنك اختيار أيّ من هذه المناطق عند إنشاء خلفية "App Hosting" من وحدة تحكّم "Firebase" أو واجهة سطر أوامر "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

ينطبق حساب الخدمة هذا على جميع الخلفيات تلقائيًا، ولديه الحد الأدنى من الأذونات التي تتيح لك إنشاء تطبيقك وتشغيله ومراقبته. ولديه أيضًا إذن مصادقة SDK للمشرف باستخدام بيانات الاعتماد التلقائية للتطبيق، لتنفيذ عمليات مثل تحميل البيانات من Cloud Firestore. اطّلِع على أدوار App Hosting في Firebase.

إذا كان تطبيقك بحاجة إلى التفاعل مع خدمات Google إضافية إما في وقت الإنشاء أو من الخلفية قيد التشغيل، يمكنك تخصيص حساب الخدمة التلقائي من خلال إضافة الأدوار. على سبيل المثال، إذا كان تطبيقك يتطلّب أذونات لـ Vertex AI، قد تحتاج إلى إضافة roles/aiplatform.user أو دور ذي صلة.