لماذا تحتاج إلى Apache APISIX عند استخدام Amazon Lambda

Xiaolan Cheng

December 9, 2022

Ecosystem

الخادم بدون خادم و Amazon Lambda

ما هو الخادم بدون خادم؟

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

بنية بدون خادم هي طريقة لبناء وتشغيل التطبيقات دون إدارة البنية التحتية. يتم نشر البنية التحتية المطلوبة في مزودي السحابة أو بعض المنصات بدون خادم التي يتم نشرها ذاتيًا للإدارة. بحيث يمكن للمهندسين التركيز على منطق أعمال التطبيق دون بذل الكثير من الجهد في بناء وإدارة وتوسيع البنية التحتية. يظهر مزودو السحابة الكبار (Amazon Web Services و Microsoft Azure و Google Cloud) اهتمامًا كبيرًا بتقديم أفضل خدمات بدون خادم. على سبيل المثال، Amazon Lambda هي خدمة الحوسبة بدون خادم الأساسية لـ AWS (Amazon Web Services).

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

التكنولوجيا المتعلقة بهذا هي BaaS (Backend as a Service)، مما يعني أننا لم نعد نكتب ونقوم بإدارة مكونات الخادم ونقوم بتعهيد جميع أجزاء التطبيق بالكامل. بدون خادم هي بيئة استضافة جديدة يتم فيها تشغيل الكود.

رسم تخطيطي للبنية

لماذا نحتاج إلى بدون خادم؟

بدون خادم لديها العديد من المزايا:

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

لماذا نحتاج إلى بوابة API عند استخدام بدون خادم؟

بدون خادم لديها أيضًا نقاط ضعف:

  • عنوان URL للوظيفة يتم ترميزه بشكل ثابت في التطبيق.
  • منطق التفويض والمصادقة معقد.
  • الاعتماد الشديد على مزود السحابة: إذا تعطل مزود السحابة، تتعطل الخدمة أيضًا.
  • لدى مزودي السحابة المختلفين مخططات مختلفة جدًا دون معايير محددة، حيث أن الانتقال من واحد إلى آخر عادة ما يكون مكلفًا.

بوابات API يمكن أن تحل هذه المشاكل بشكل طبيعي. عند الجمع معًا، يمكن أن تصبح بدون خادم بنية قوية. تصف الصورة أدناه كيفية تجميع خدمة ويب بسيطة مع خدمات بدون خادم من Amazon بسرعة. بوابة API ضرورية في توفير التفويض، تعريف المسار، وطلبات الوكيل. على سبيل المثال، Apache APISIX يوفر دعمًا بدون خادم لـ AWS و Azure. يمكنك تعريف مسار لتمكين مكون إضافي بدون خادم بدلاً من ترميز عناوين URL للوظائف في التطبيقات. مع مرونة تحديث عناوين URL للوظائف بشكل حار، يصبح التحديث إلى مزودي خدمات FaaS (Function as a service) مختلفين سهلاً. علاوة على ذلك، هذا النهج يخفف من ألم التفويض والمصادقة المعقدة.

تجميع خدمة ويب مع خدمات بدون خادم من Amazon

Apache APISIX

Apache APISIX هي بوابة API سحابية تحت مؤسسة Apache للبرمجيات (ASF). كونها ديناميكية، في الوقت الحقيقي، وعالية الأداء، توفر APISIX ميزات مثل موازنة الحمل، المنبع الديناميكي، الإصدار التجريبي، كسر الدائرة، المصادقة، والمراقبة. يمكننا استخدام Apache APISIX للتعامل مع حركة المرور التقليدية بين الشمال والجنوب والشرق والغرب بين الخدمات. في نفس الوقت، يمكن أيضًا استخدامها كوحدة تحكم Ingress لـ K8s. توسع APISIX نظامها البيئي من خلال المكونات الإضافية المدمجة، تغطي سيناريوهات استخدام مختلفة لبوابات API، مثل المصادقة، الأمان، المراقبة، إدارة حركة المرور، الوصول متعدد البروتوكولات، إلخ. بالطبع، تشمل أيضًا العديد من المكونات الإضافية ذات الصلة بدون خادم.

مكون aws-lambda الإضافي

مكون aws-lambda الإضافي يدمج AWS Lambda مع APISIX كمنبع ديناميكي لوكيل جميع الطلبات لـ URI معين إلى سحابة AWS. عند التمكين، ينهي المكون الإضافي الطلب الجاري لـ URI المكون ويبدأ طلبًا جديدًا إلى بوابة AWS Lambda URI نيابة عن العميل. يحمل هذا الطلب الجديد تفاصيل التفويض المكونة مسبقًا، بما في ذلك رؤوس الطلب، الجسم، والمعلمات (جميعها تم تمريرها من الطلب الأصلي). يعيد الاستجابة مع الرؤوس، رمز الحالة، والجسم إلى العميل الذي بدأ الطلب مع APISIX. يدعم هذا المكون الإضافي التفويض عبر مفتاح API من AWS وأسرار IAM من AWS.

راجع APISIX أو هذه المدونة لمزيد من المعلومات.

المكونات الإضافية ذات الصلة بدون خادم في Apache APISIX

بالإضافة إلى Amazon Lambda، يدعم Apache APISIX أيضًا التكامل مع النظم البيئية ذات الصلة بدون خادم مثل Azure Function، وظيفة Lua، و Apache OpenWhisk، ويوفر المكونات الإضافية بدون خادم المقابلة.

الجدول 1 المكونات الإضافية ذات الصلة بدون خادم في Apache APISIX

اسم المكون الإضافيالوصف
serverlessيمكن للمستخدمين تحميل نصوص Lua مخصصة من خلال المكون الإضافي بدون خادم وتحديد مرحلة تنفيذ الكود وفقًا للإعدادات. على سبيل المثال، تنفيذ التحكم في الوصول للطلبات في مرحلة الوصول، تعديل رأس الاستجابة أو جسم الاستجابة في مراحل تصفية الرأس وتصفية الجسم، طباعة سجلات مخصصة في مرحلة السجل، إلخ. أيضًا، بما أن المكون الإضافي بدون خادم يتم إعادة تحميله بشكل حار، يمكن أن تصبح التعديلات فعالة على الفور دون إعادة تشغيل Apache APISIX.
azure-functionsيستخدم لدمج APISIX مع وظيفة بدون خادم من Azure كمنبع ديناميكي لوكيل جميع الطلبات لـ URI معين إلى سحابة Microsoft Azure. عند التمكين، ينهي المكون الإضافي azure-functions الطلب الجاري لـ URI المكون ويبدأ طلبًا جديدًا إلى Azure Functions نيابة عن العميل. يحمل هذا الطلب الجديد تفاصيل التفويض المكونة مسبقًا، بما في ذلك رأس الطلب، الجسم، والمعلمات (جميعها تم تمريرها من الطلب الأصلي). ثم يعيد الاستجابة مع الرؤوس، رمز الحالة، والجسم إلى العميل الذي بدأ الطلب مع APISIX.
openwhiskيستخدم لدمج APISIX مع منصة بدون خادم مفتوحة المصدر Apache OpenWhisk. عند التمكين، ينهي المكون الإضافي الطلب الجاري لـ URI المكون ويبدأ طلبًا جديدًا إلى نقطة نهاية API Host لـ OpenWhisk نيابة عن العميل، ويعيد المكون الإضافي openwhisk معلومات الاستجابة إلى العميل.
openfunctionيستخدم لدمج APISIX مع منصة بدون خادم مفتوحة المصدر CNCF OpenFunction كمنبع ديناميكي. عند التمكين، ينهي المكون الإضافي الطلب الجاري لـ URI المكون ويبدأ طلبًا جديدًا إلى وظيفة OpenFunction نيابة عن العميل، ثم يعيد المكون الإضافي openfunction معلومات الاستجابة إلى العميل.

العلاقة بين Apache APISIX والمنتجات ذات الصلة بدون خادم

الخلاصة

في السنوات الأخيرة، مع ظهور بنية الخدمات الصغيرة، كل شيء ينتقل إلى السحابة، والعديد من مزودي خدمات السحابة يطلقون أيضًا منتجات ذات صلة بدون خادم. أصبح التطوير القائم على بدون خادم نموذج تطوير مريح للغاية. مواكبةً لاتجاهات السحابة الأصلية، يدعم APISIX الحوسبة بدون خادم من خلال توفير المكونات الإضافية بدون خادم، azure-functions، openwhisk، و openfunction.

إذا كنت ترغب في معرفة المزيد عن بوابة API وميزاتها بدون خادم، اتصل بنا على https://api7.ai/contact.

Tags: