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

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

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

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

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

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

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

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

كيفية عمل التكامل بين مستودع App Hosting

يتولّى Developer Connect، وهو منصة الاتصال من Google Cloud لأدوات DevOps الخارجية، إدارة الاتصال المهم بين مستودع GitHub والخادم الخلفي لخدمة App Hosting backend is handled by Developer Connect, Google Cloud's connectivity platform for external DevOps tools. عند إعداد هذا الاتصال (عادةً أثناء إنشاء خادم خلفي لخدمة 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 لتوفير عملية تحقّق من عمليات الطرح. تتيح لك عملية التحقّق هذه عرض حالة عملية الطرح في GitHub وتحديد المشاكل في عملية النشر في حال حدوث أي أخطاء.

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

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

App Hosting مواقع

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

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

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

  • us-central1 (أيوا)
  • us-east4 (شمال فرجينيا)
  • 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

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

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