تعالج App Hosting سلسلة معقّدة من المهام التي تتم في الخلفية لتبسيط عملية نشر تطبيقك. توضّح هذه الصفحة الأجزاء الرئيسية من مسار المهام هذا، وتقدّم معلومات حول النقاط التي قد تحتاج إلى تخصيص المسار فيها وفقًا لاحتياجات تطبيقك.
المصطلحات والتعريفات الرئيسية
لفهم تفاصيل مسار App Hosting، من المفيد تحديد بعض المصطلحات بشكل دقيق جدًا. في ما يلي المصطلحات الأساسية:
- الخادم الخلفي: مجموعة من الموارد المُدارة التي ينشئها App Hosting لإنشاء تطبيق الويب وتشغيله.
- الإصدار: هو مراجعة معيّنة لتطبيقك، وعادةً ما تكون مرتبطة بعملية git. تتضمّن عملية إنشاء إصدار العديد من العمليات الفرعية، وأبرزها إنشاء تطبيقك في Cloud Build ونشر مراجعة (يتم عرضها في البداية بنسبة% 0 من عدد الزيارات إلى أن يتم طرحها) في Cloud Run.
- طرح الإصدار: هي عملية ضبط إصدار لعرض الزيارات بشكل نشط. عندما يتم تشغيل تلقائيًا من خلال عملية git commit، تنشئ App Hosting أولاً إصدارًا باستخدام فرع الإصدار العلني، ثم تنشئ طرحًا لتوجيه عدد الزيارات المباشرة إليه.
- الفرع المنشور: هو فرع مستودع GitHub الذي يتم نشره على عنوان URL المنشور. وغالبًا ما يكون هذا الفرع هو الذي يتم دمج فروع الميزات أو فروع التطوير فيه.
بنية Google Cloud وApp Hosting
تنسّق App Hosting مجموعة من منتجات Google Cloud لتتمكّن من نشر تطبيق الويب وعرضه ومراقبته. يتم إنشاء التطبيقات باستخدام Cloud Build، ويتم عرضها على Cloud Run، ويتم تخزينها مؤقتًا في Cloud CDN. تساعد الخدمات المدمجة، مثل Cloud Secret Manager، في الحفاظ على أمان مفاتيح واجهة برمجة التطبيقات.
- عندما يتم إرسال عملية دمج إلى فرعك النشط، يرسل Google Cloud Developer Connect حدثًا إلى Firebase App Hosting.
- استجابةً لهذا الحدث، تنشئ Firebase App Hosting إصدارًا جديدًا من الخلفية المرتبطة بالمستودع.
- أولاً، ينشئ Firebase App Hosting إصدارًا جديدًا Cloud Build لعملية الدمج. في هذه المهمة، تحدّد حزم الإنشاء في Google Cloud إطار العمل المستخدَم في تطبيقك لإنشاء حاوية وإعدادات (بما في ذلك متغيرات البيئة والأسرار والحد الأدنى أو الأقصى من الآلات الافتراضية والذاكرة المتزامنة ووحدة المعالجة المركزية وإعدادات شبكة VPC) تناسب تطبيقك. لمزيد من المعلومات، يُرجى الاطّلاع على App Hosting عملية التصميم.
- عند اكتمال مهمة Cloud Build، يتم تخزين الحاوية في مستودع Artifact Registry مخصّص لـ Firebase App Hosting. يضيف Firebase App Hosting بعد ذلك Cloud Run مراجعة جديدة إلى Cloud Run خدمة باستخدام الصورة والإعدادات.
- بعد اكتمال مراجعة Cloud Run والتحقّق من سلامتها، تعدّل Firebase App Hosting إعدادات عدد الزيارات لتوجيه جميع الطلبات الجديدة إلى مراجعة Cloud Run الجديدة. في هذه المرحلة، يكون الطرح قد اكتمل.
- عند إرسال طلب إلى موقع إلكتروني مستضاف على 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. وفي ما يلي الخطوات الرئيسية في هذه العملية:
- تمنح خدمة Developer Connect دور مشرف Secret Manager. يتيح ذلك للنظام تخزين بيانات الاعتماد بأمان كـ "أسرار" في Cloud Secret Manager.
- تمنح تطبيق Firebase GitHub الإذن بالوصول إلى مستودع GitHub. قد تحتاج إلى أذونات إضافية على GitHub للوصول إلى المستودع الصحيح.
- يخزّن 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 أو واجهة سطر الأوامر 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 HostingFirebase.
إذا كان تطبيقك بحاجة إلى التفاعل مع خدمات إضافية من Google إما في وقت الإنشاء أو من الخلفية أثناء التشغيل، يمكنك تخصيص حساب الخدمة التلقائي من خلال إضافة أدوار. على سبيل المثال، إذا كان تطبيقك يتطلّب أذونات للوصول إلى Vertex AI، قد تحتاج إلى إضافة
roles/aiplatform.user
أو بعض الأدوار ذات الصلة.