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

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

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

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

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

بنية Google Cloud وApp Hosting

تنسّق App Hosting مجموعة من منتجات Google Cloud لتتمكّن من نشر تطبيق الويب وعرضه ومراقبته. يتم إنشاء التطبيقات باستخدام Cloud Build، ويتم عرضها على Cloud Run، ويتم تخزينها مؤقتًا في 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 إطار العمل المستخدَم في تطبيقك لإنشاء حاوية وإعدادات (بما في ذلك متغيرات البيئة والأسرار والحد الأدنى أو الأقصى لعدد المثيلات والذاكرة المتزامنة ووحدة المعالجة المركزية وإعدادات شبكة 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 والإصدارات الأحدث
  • ‫Angular 18.2.x والإصدارات الأحدث

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

بالإضافة إلى Next.js وAngular، تتوافق App Hosting أيضًا مع أي إطار عمل على الويب يمكنه توفير ناتج إصدار يتطابق مع مواصفات حزمة الناتج. يمكنك الاطّلاع على الأُطر والأدوات الخاصة بـ App Hosting لمزيد من المعلومات حول الأُطر ومحوّلات الأُطر والأدوات ذات الصلة المتوافقة مع App Hosting.

طريقة عمل دمج مستودع App Hosting

تتولّى منصة Developer Connect، وهي منصة ربط من Google Cloud لأدوات DevOps الخارجية، إدارة عملية الربط المهمة بين مستودع GitHub وApp Hostingالخادم الخلفي. أثناء إنشاء App Hosting خلفية، يرشدك سير عمل واجهة مستخدم Developer Connect خلال عملية تثبيت تطبيق Firebase GitHub. وفي ما يلي الخطوات الرئيسية في هذه العملية:

  1. تمنح خدمة Developer Connect دور مشرف Secret Manager. يسمح ذلك للنظام بتخزين بيانات الاعتماد بشكل آمن كـ "أسرار" في Cloud Secret Manager.
  2. تمنح تطبيق Firebase GitHub الإذن بالوصول إلى مستودع GitHub. قد تحتاج إلى أذونات إضافية على GitHub للوصول إلى المستودع الصحيح.
  3. يخزّن Developer Connect رمزًا مميزًا مخصّصًا لتفويض GitHub في مستودع "إدارة الأسرار" الخاص بمشروعك، لذا لا تعدّل هذا الرمز أو تحذفه.

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

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

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

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

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

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

يمكنك اختيار أيّ من هذه المناطق عند إنشاء App Hosting خلفية تطبيق من وحدة التحكّم أو واجهة سطر الأوامر Firebase:

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

حساب خدمة الخلفية App Hosting

أثناء عملية الإنشاء وفي وقت التشغيل، تتم مصادقة الخلفية App Hosting مع خدمات Google الأخرى باستخدام حساب خدمة. يتم إنشاء حساب خدمة تلقائي لهذه الأغراض عند تفعيل App Hosting لأول مرة في مشروع Firebase:

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

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

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