كيفية تحديد الموارد المطلوبة لـ API Gateway الخاص بك؟

January 25, 2024

Technology

الخلفية

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

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

رسم توضيحي لبوابة API

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

  • اختيار البوابة: QPS أحادي النواة
  • أنواع الأعمال: خدمات مالية أو غير مالية
  • متطلبات التوفر العالي

اختيار البوابة

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

Apache APISIX، وهي بوابة API مفتوحة المصدر، تقدر بشكل متحفظ أن وحدة المعالجة المركزية أحادية النواة يمكنها دعم ما لا يقل عن 10,000 QPS عند تمكين الإضافات الشائعة للمؤسسات مثل المراقبة، والحد من المعدل، وما إلى ذلك. يمكن للشركات إجراء اختبارات محددة لجمع النتائج مع مراعاة الاختلافات في الإضافات الممكنة، والبيئة المادية، وظروف الشبكة، وخصائص طلبات API.

APISIX QPS 15000~18000

أنواع الأعمال

يمكن لمعظم الشركات غير المالية التحكم في استخدام موارد وحدة المعالجة المركزية في بوابة API في نطاق 20-30% في بيئة الإنتاج، وهو سيناريو مثالي. حتى مع زيادة في استدعاءات الخدمات بمقدار 3-5 مرات، يمكنها التعامل معها بشكل فعال. يمكن لصناعات مثل الأخبار، والترفيه، والإنترنت استخدام هذا الحمل.

ومع ذلك، بالنسبة لصناعات مثل البنوك، والتمويل، والأوراق المالية، حيث تكون قيمة API عالية، فإن الحفاظ على حمل وحدة المعالجة المركزية اليومي عند 5-10% هو أمر مثالي. هذا يسمح لبوابة API بالتعامل مع طفرات حركة المرور المفاجئة التي تزيد عن المعتاد بمقدار 10-20 مرة.

متطلبات التوفر العالي

لمتطلبات التوفر العالي، يجب أن تحتوي مثيلات وكيل بوابة API على ما لا يقل عن عقدتين.

أمثلة عملية

مستخدم من قطاع الخدمات المالية

مثال على الشركة:

  • QPS لاستدعاءات API اليومية هو 100,000
  • الحمل اليومي لبوابة API هو 10%
  • اختيار البوابة: Apache APISIX (QPS أحادي النواة: 10,000)

بناءً على المعلومات أعلاه، عدد وحدات المعالجة المركزية المطلوبة هو 100,000 / 10,000 / 10% = 100. إذا تم استخدام أجهزة تحتوي على 4 نوى معالجة مركزية، فإن 25 جهازًا مطلوبًا؛ مع 8 نوى معالجة مركزية، فإن 13 جهازًا مطلوبًا.

مستخدم من قطاع الخدمات غير المالية

مثال على الشركة:

  • QPS لاستدعاءات API اليومية هو 100,000
  • الحمل اليومي لبوابة API هو 25%
  • اختيار البوابة: Apache APISIX (QPS أحادي النواة: 10,000)

بناءً على المعلومات أعلاه، عدد وحدات المعالجة المركزية المطلوبة هو 100,000 / 10,000 / 25% = 40. إذا تم استخدام أجهزة تحتوي على 4 نوى معالجة مركزية، فإن 10 أجهزة مطلوبة؛ مع 8 نوى معالجة مركزية، فإن 5 أجهزة مطلوبة.

الخلاصة

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

Tags: