كيف يعمل محرك تطبيقات Google بدون خادم؟

جدول المحتويات:

كيف يعمل محرك تطبيقات Google بدون خادم؟
كيف يعمل محرك تطبيقات Google بدون خادم؟
Anonim

App Engine هي خدمة حوسبة بدون خادم مُدارة بالكامل من Google Cloud Platform تجعل إدارة الواجهة الخلفية للخدمات المصغرة أسهل كثيرًا. إنه مبني على قابلية تطوير عالية دون الحاجة إلى إدارة الخوادم الخاصة بك.

ما هو محرك التطبيقات؟

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

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

من الشائع استخدام خدمات الحوسبة بدون خادم مثل وظائف AWS Lambda أو وظائف سحابة GCP لنشر الوظائف الفردية بسهولة كخدمات. App Engine مشابه جدًا ولكنه أقوى بكثير لأنه مصمم خصيصًا للخلفيات للخدمات الدقيقة.

محرك التطبيق
محرك التطبيق

إلى حد كبير مثل وظائف السحابة ، لا تحتاج إلى إدارة أي خوادم أساسية. ما عليك سوى تحميل الكود الخاص بك وتحديد وقت التشغيل والسماح بتشغيله. إذا كنت تستخدم البيئة المرنة ، فيمكنك نشر تطبيقك كحاويات Docker ، مما يتيح المزيد من المرونة.

ومع ذلك ، على عكس وظائف السحابة ، لا تزال بحاجة إلى تشغيل "مثيلات" لكل خدمة. تعتمد الرسوم على هذا ، ولا تستند إلى استدعاءات الوظيفة الفردية ، حيث لا يتوفر شيء مثل البداية الباردة. (يمكنك تقليل الحجم إلى 0 مثيل في البيئة القياسية ، لكن البداية الباردة ستكون بطيئة.)

App Engine يدعم حاليًا بيئات وقت التشغيل التالية ، على الرغم من أنك إذا كنت تستخدم البيئة المرنة ، فيمكنك تشغيل أوقات تشغيل مخصصة في حاويات Docker.

  • بايثون 2.7 ، بايثون 3.7
  • جافا 8 ، جافا 11
  • Node.js 8 ، Node.js 10
  • PHP 5.5 و PHP 7.2 و PHP 7.3 و PHP 7.4 (تجريبي)
  • روبي 2.5 (تجريبي)
  • Go 1.11 و Go 1.12 و Go 1.13 و Go 1.14 (تجريبي)

لتخزين البيانات واستمرارها ، يوجد مخزن بيانات مدمج ، ولكن يتم التخلص منه تدريجياً لصالح Firestore ، وهي قاعدة بيانات NoSQL Document المقدمة كجزء من نظام Firebase الأساسي.يحتوي على وضع Datastore خصيصًا للتوافق مع App Engine المدمج في مخزن البيانات. هناك أيضًا memcache كخدمة ، وقوائم مهام مخصصة ، ووظائف cron متاحة من وحدة تحكم App Engine.

إذا كنت ترغب في البدء ، فإن Google توفر الكثير من البرامج التعليمية المضمنة من وحدة تحكم App Engine.

البيئات القياسية مقابل البيئات المرنة

يحتوي App Engine على بيئتين مختلفتين يمكنك الاختيار من بينهما ، مع كل من مزاياها وعيوبها.

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

ومع ذلك ، مع المعيار ، لا يمكنك الوصول إلى SSH ، ولا تحصل على عمليات الخلفية مثل cron (على الرغم من أن Google توفر هذا كخدمة مُدارة). هناك تكلفة بدء تشغيل وإغلاق لمدة 15 دقيقة من وقت المثيل ، لذلك سترغب في تجنب التحجيم التلقائي المفرط.

تستخدم البيئة المرنة حاويات Docker لتشغيل كل شيء. رغم ذلك ، إذا كنت تستخدم أحد أوقات التشغيل المدعومة ، فقد لا تحتاج إلى إدارة الحاوية بنفسك. يمكنك الوصول إلى SSH ، والمزيد من المرونة (في الاسم) ، ودعم العمليات في الخلفية. ومع ذلك ، فإن عمليات النشر وبدء التشغيل تستغرق بضع دقائق ، ولا يمكنك الوصول إلى بعض خدمات App Engine المضمنة مثل memcached.

موضوع شعبي