أنماط نشر API Gateway
December 16, 2022
APIs تغير الطريقة التي نبني بها التطبيقات وتعرض البيانات، سواء داخل أو خارج مؤسساتنا. كما أن نجاح واجهات برمجة التطبيقات (APIs) يعتمد على سلامتها، توفرها، وأدائها. باستخدام بوابة API مثل Apache APISIX، يمكننا تحقيق هذه المؤشرات للنجاح.
عندما يتعلق الأمر بنشر بوابات API، هناك 4 أنماط معروفة: بوابة الحافة المركزية، البوابة ذات الطبقتين، البوابة الصغيرة (Microgateway)، والبوابة الجانبية (Sidecar). في هذا المقال، سنستعرض هذه الأنماط ونقدم لك فكرة لاختيار نمط نشر بوابة API المناسب لعملك.
ما هي بوابة API؟
بوابة API هي أداة إدارة تقع على حافة النظام بين المستهلك ومجموعة من الخدمات الخلفية وتعمل كنقطة دخول واحدة لمجموعة محددة من واجهات برمجة التطبيقات (APIs). يمكن أن يكون المستهلك تطبيقًا أو جهازًا نهائيًا، مثل تطبيق ويب أحادي الصفحة أو تطبيق جوال، نظام داخلي آخر، أو تطبيق أو نظام تابع لجهة خارجية.
مكونات نشر بوابة API
يتم تنفيذ بوابة API باستخدام مكونين أساسيين على مستوى عالٍ: مستوى التحكم ومستوى البيانات. يمكن عادةً تجميع هذه المكونات معًا أو نشرها بشكل منفصل. مستوى التحكم هو المكان الذي يتفاعل فيه المشغلون مع البوابة ويحددون المسارات، السياسات، والقياسات المطلوبة. مستوى البيانات هو المكان الذي يتم فيه تنفيذ جميع الأعمال المحددة في مستوى التحكم، حيث يتم توجيه حزم الشبكة، وتطبيق السياسات، وإصدار القياسات. على سبيل المثال، APISIX لديها ثلاثة أنماط نشر مختلفة (تقليدي، منفصل، ومستقل) لحالات استخدام إنتاجية مختلفة.
بوابة الحافة المركزية
عادةً ما يتم نشر بوابة API على حافة النظام، ولكن تعريف "النظام" في هذه الحالة يمكن أن يكون مرنًا جدًا. بالنسبة للشركات الناشئة والعديد من الشركات الصغيرة والمتوسطة، غالبًا ما يتم نشر بوابة API على حافة مركز البيانات أو السحابة. في هذه الحالات، قد تكون هناك بوابة API واحدة فقط (يتم نشرها وتشغيلها عبر عدة نسخ لضمان التوفر العالي) تعمل كبوابة أمامية لكافة الخدمات الخلفية، وستوفر بوابة API جميع وظائف الحافة.
توفر بوابة API متطلبات شاملة مثل المصادقة، التفويض، تحديد معدل الطلبات، التخزين المؤقت، المهلات/إعادة المحاولة، تحويل الطلبات/الاستجابات، ويمكن أن توفر مقاييس، سجلات، وبيانات التتبع لدعم تنفيذ المراقبة داخل النظام.
كما توفر العديد من بوابات API ميزات إضافية تمكن المطورين من إدارة دورة حياة API، وتساعد في إدارة المطورين الذين يستخدمون واجهات برمجة التطبيقات (مثل توفير بوابة للمطورين وإدارة الحسابات ذات الصلة والتحكم في الوصول)، وتوفر حوكمة المؤسسة.
البوابة ذات الطبقتين
بالنسبة للشركات الكبيرة والمؤسسات، عادةً ما يتم نشر بوابة API في مواقع متعددة، غالبًا كجزء من مجموعة الحافة الأولية على محيط مركز البيانات، وقد يتم نشر بوابات إضافية كجزء من كل منتج، خط أعمال، أو قسم تنظيمي. في هذا السياق، ستكون هذه البوابات عادةً تنفيذات منفصلة وقد تقدم وظائف مختلفة اعتمادًا على الموقع الجغرافي (الحوكمة المطلوبة) أو قدرات البنية التحتية (التشغيل على موارد حوسبة حافة منخفضة الطاقة).
كما يوضح الرسم البياني أدناه كيف تجلس بوابة Apache APISIX API عادةً بين الإنترنت العام ومنطقة المنطقة المنزوعة السلاح (DMZ) لشبكة خاصة.
البوابة الصغيرة (Microgateway)
البوابة الصغيرة مصممة بالكامل للاتصال الداخلي بين الخدمات الصغيرة (microservices). قد يكون لكل بوابة صغيرة مجموعة مختلفة من السياسات، وقواعد الأمان، وتتطلب تجميع المراقبة والمقاييس من خدمات متعددة.
الفكرة هي توفير القدرة (بوابة مخصصة) للفريق الفردي الذي يدير الخدمات الصغيرة للتحكم في كيفية تعريض الخدمات بشكل آمن. سيقوم نفس فريق المطورين بإدارة وصيانة خدماتهم الصغيرة وبواباتهم الصغيرة، بحيث يمكنهم إصلاح الأخطاء، توفير التحديثات، إجراء التحسينات بشكل مستقل، ودفع التغييرات إلى الإنتاج بسرعة مع تفاعل أقل مع التبعيات الأخرى ودون التأثير على التطبيقات الأخرى في النشر.
البوابة الجانبية (Sidecar API gateway)
البوابة الجانبية تنفذ بوابة API كحاوية ملحقة بخدمة في وقت تشغيل مستقل، مثل Kubernetes. البوابة الجانبية هي نمط يتوافق مع الدراجة الجانبية الملحقة بدراجة نارية، وبالمثل، يتم إرفاقها بتطبيق رئيسي (مكون برمجي يسمى شبكة الخدمات) وتوفر ميزات داعمة للتطبيق. كما تشارك البوابة الجانبية نفس دورة الحياة مع التطبيق الرئيسي، يتم إنشاؤها وإيقافها جنبًا إلى جنب مع التطبيق الرئيسي، وتقدم ميزات إضافية مثل المراقبة، التسجيل، التكوين، وخدمات الشبكات.
فوائد اعتماد هذا النمط هي أن كل وقت تشغيل خدمة يمكنه تكوين بوابة API الخاصة به بأفضل طريقة. لأن متطلبات تمكين وظائف وإعدادات بوابة API يمكن أن تختلف من خدمة إلى أخرى. في نفس الوقت، يفصل الاهتمامات إذا حدثت مشكلة في بنية بوابة API المشتركة فإن جميع الخدمات لن تتأثر. على سبيل المثال، Amesh هو حل آخر لشبكة الخدمات يعتمد على Apache APISIX.
يوضح الرسم البياني السابق نقطة دخول تعمل كموازن تحميل API وموجه موارد إلى كل نقطة نهاية خدمة. نقطة الدخول للخدمة ليست نقطة النهاية نفسها ولكن بوابة API جانبية. يمكن للبوابة الجانبية بعد ذلك تنفيذ أي من القدرات التي توفرها بوابة API بالإضافة إلى توجيه حركة المرور إلى نقطة نهاية الخدمة.
الخلاصة
كما نفهم، لا يوجد نمط نشر واحد يناسب جميع الظروف. في بعض الأحيان يمكنك استخدام بوابة واحدة أو عدة بوابات في نظامك. يعتمد اختيار النشر على تعقيد واحتياجات عملك. إذا كنت بحاجة إلى مساعدة في تحديد نمط النشر الأفضل لك، يمكنك الانضمام إلى قناة Slack المجتمعية وسيساعدك الخبراء في اتخاذ القرار.
موارد ذات صلة
➔ ما هي بوابة API، ولماذا هي ضرورية في عصر السحابة الأصلية؟.
محتوى موصى به
➔ اقرأ منشورات المدونة: