APISIX حسّن بشكل كبير من كفاءة تطوير Junrunrenli
Peng Yuan
December 12, 2022
نظرة عامة
التحديات
- كثرة أنظمة الأعمال، توجيه حركة المرور لـ CLB (كتلة منطقية قابلة للتكوين)، والتغييرات المتكررة في التكوين تستهلك الكثير من وقت التطوير والصيانة.
- الأعمال ذات الازدحام العالي، عدم استقرار قاعدة البيانات عند تصدير بيانات كبيرة بمليارات، ولا يمكن حل المشكلة إلا بإعادة تشغيل الخدمة أو إصدار نسخة جديدة.
- عدم وجود منصة موحدة للإشراف على بيانات الأعمال التي تم الوصول إليها.
- حركة مرور كبيرة ومعقدة، مع عدم وجود استراتيجية فعالة لإدارة حركة المرور.
- هناك عشرات الملايين من طلبات API يوميًا، كمية كبيرة من بيانات السجلات، وقدرة محدودة على تحميل القرص.
النتائج
- Apache APISIX يوفر لـ Junrunrenli طرقًا متنوعة لمراقبة الأمان والحماية، مما يدعم بشكل فعال عشرات الملايين من الزيارات يوميًا.
- تحسن كبير في كفاءة تسليم البحث والتطوير: تكوين النطاق العام يصبح فعالًا في ثوانٍ، ويقلل مستوى التحكم من عبء تكوين DevOps.
- تقليل موازنات الأحمال من 200+ إلى 10+ فقط، مما يوفر الكثير من المال.
حول Junrunrenli للموارد البشرية
Junrunrenli للموارد البشرية هي مزود خدمة حلول الموارد البشرية المدعومة بالتكنولوجيا، وتقدم بشكل رئيسي خدمات الموارد البشرية الشاملة لسوق التوظيف للعمال ذوي الياقات الزرقاء.
تأسست Junrunrenli في عام 2019، وقدمت خدمات لـ 1000+ عميل، تغطي 300W+ من العمال ذوي الياقات الزرقاء. في ثلاث سنوات، نما فريق البحث والتطوير من أقل من 20 شخصًا إلى 250+ وطور 15+ منصة خدمة موارد بشرية بشكل مستقل. بالإضافة إلى ذلك، قامت Junrunrenli ببناء نظام بيئي متكامل لخدمات الموارد البشرية، بما في ذلك تطبيقات SaaS للجانب B وتطبيقات C للعمال ذوي الياقات الزرقاء.
وتؤدي وتيرة الابتكار إلى متطلبات أعلى لهندسة النظام. بالإضافة إلى التوفر العالي، الازدحام، والأداء، تتطلب Junrunrenli قابلية التوسع المرنة.
إذن، كيف تختار Junrunrenli بوابة API؟
كيف تبرز APISIX؟
قام فريق Junrunrenli بإنشاء قائمة مختصرة ثم أجرى تحقيقًا في العديد من بوابات API. تم استبعاد العديد منها لأنها لم تلبِ تمامًا احتياجات Junrunrenli. يمكننا النظر عن كثب إلى الصورة التالية لاختيار بوابة API لـ Junrunrenli.
توضح الصورة أعلاه ميزات Apache APISIX، بينما تلك باللون الأحمر هي النقاط التي تؤكد عليها Junrunrenli لأن:
-
لدى Junrunrenli العديد من أنظمة الأعمال الداخلية ونظام بيئي داخلي مدمج. لذلك، هناك حاجة إلى بوابة API قوية لدعم التغييرات السريعة في أعمال Junrun لأن Junrunrenli تحتاج إلى تكوين وتعديل المسارات بشكل متكرر. تسمح APISIX لـ Junrunrenli بتقسيم الطرق المختلفة للتحكم في الوصول إلى API.
-
تركز أعمال Junrunrenli على القيام بنفس الشيء في نفس الوقت، على سبيل المثال، دفع مليارات الرواتب أو سحب هذا المبلغ من الأموال. مئات الآلاف من المستخدمين ذوي الياقات الزرقاء يسجلون الدخول، يوقعون العقود، ويتلقون المهام والأجور في نفس الوقت. وبالتالي، حركة المرور المتزامنة ضخمة، خاصة خلال "الجمعة السوداء" في الصين، والتي تتضاعف مقارنة بالوضع المعتاد.
-
أنظمة متنوعة واحتياجات شخصية تؤدي إلى التطوير الذاتي لـ Junrunrenli. "يمكن لـ APISIX تلبية 99% من احتياجاتنا، ولكن الـ 1% المتبقية تحتاج إلى التطوير من قبلنا." قال يوان، الخبير الفني في Junrunrenli. يعلم الجميع أن Kong و APISIX تم تطويرهما بناءً على OpenResty NGINX + Lua. سيكون هناك تكلفة إضافية إذا قامت Junrunrenli بتطوير الإضافات باستخدام Lua. لحسن الحظ، تدعم الإضافة الخارجية لـ APISIX لغة برمجة Java لتوفير تكاليف التعلم. علاوة على ذلك، مجتمع APISIX نشط بشكل خاص.
تعزيز أنظمة Junrunrenli باستخدام APISIX
فيما يلي نظرة عامة على مخطط هندسة Junrunrenli.
حققت Junrunrenli أربعة إنجازات بعد استخدام APISIX.
1. إنشاء استراتيجيات مبتكرة للمسارات لإدارة فعالة للمسارات
بناءً على Radixtree و etcd، تتمتع Apache APISIX بالقدرة على مطابقة المسارات بسرعة عالية ومزامنة التكوين بسرعة. كل هذا مصمم لتحقيق أداء سريع واستجابة بزمن تأخير منخفض للغاية.
خلال فترة الذروة لاستخدام الأنظمة، لم تتمكن قاعدة بيانات MySQL من الاستجابة عند تصدير ملايين البيانات من التقارير، مما تسبب في تعطل الخدمة، والتي لا يمكن استئناف عملها إلا بعد إعادة التشغيل. علاوة على ذلك، ستتفاقم الحالة إذا استمر التصدير ولا يمكن حلها إلا بإصدارات جديدة.
تمكن APISIX من الإدارة الذكية للمسارات من خلال دعم Junrunrenli بـ تكوين أولوية المسارات و إغلاق API الطارئ باستخدام إضافة serverless في غضون دقائق قليلة من التكوين.
بالإضافة إلى ذلك، تحتاج أنظمة أعمال Junrunrenli، خاصة أنظمة SaaS، إلى دعم الوصول إلى النطاقات المخصصة للعملاء. وبالتالي، قام فريق Junrunrenli بتوحيد المدخل من خلال تكوين نطاقات متعددة لنفس الخدمة. يمكن استخدام التكوينات في الأنظمة العامة من خلال التكوين مرة واحدة فقط.
2. فصل منصة PaaS للتحكم الشامل في الأمان
تستخدم Junrunrenli خصائص APISIX، مثل الإصدار التدريجي، التحكم في الأمان، والتعرف على الهوية، لتعيين بوابة PaaS للتحكم في الأمان لنظام الأعمال العلوي.
توضح الصورة أدناه أن Junrunrenli قامت بإنشاء بنية بوابة ذات طبقتين بناءً على APISIX وعزلت منطقيًا بوابة عليها - منصة PaaS.
يصل المستخدم إلى CLB ثم تقوم APISIX بتوجيه الطلب إلى نظام الأعمال. إذا كانت الوظيفة التي يستخدمها المستخدم تحتاج إلى استخدام قدرات PaaS، فسيتم الوصول إليها من خلال بوابة خدمة PaaS. منصة PaaS هي منطقة مغلقة داخل k8s، تحتوي على العديد من الخدمات الأساسية.
3. مكنت إضافة تقسيم حركة المرور لـ APISIX Junrunrenli من إدارة حركة المرور تلقائيًا
تمنح إضافة تقسيم حركة المرور لـ APISIX Junrunrenli القدرة على إدارة حركة المرور لخدماتها الأساسية، مثل SSO (الدخول الموحد)، خدمة PaaS، وخدمة الرواتب.
هناك سيناريوهان:
- تصفية العلامات: يمكن توجيه حركة مرور المستخدمين الاختبارية إلى خدمات ما قبل الإنتاج بناءً على العلامات مثل الرأس وبعض المعلمات الأخرى. ثم يمكن للمهندسين الاختبار أولاً في بيئة ما قبل الإنتاج ثم في بيئة الإنتاج لاحقًا.
بعد اجتياز التحقق، يمكن للمهندسين تقسيم حركة المرور بناءً على الوزن ثم تحويل كل حركة المرور إلى الإصدار الجديد بعد فترة من المراقبة.
- تعايش إصدارات متعددة: هناك العديد من الإصدارات لخدمة واحدة. بهذه الطريقة، يمكن لأنظمة الأعمال المختلفة زيارة إصدارات مختلفة. يمكن توجيه حركة المرور إلى الخدمات الصحيحة باستخدام العلامات.
4. مكنت إضافة Kafka لـ APISIX Junrunrenli من مراقبة بيانات السجلات بشكل شفاف
كما يظهر في هذه الصورة، يتم نشر APISIX وخدمات pod على k8s، وجميع المسارات الخلفية مرتبطة بنفس الخدمة. تبدو إضافة Kafka لـ APISIX مصممة خصيصًا لجمع بيانات السجلات.
تشير بيانات المراقبة إلى وجود عشرات الملايين من طلبات API يوميًا، مما يولد 30GB من بيانات السجلات يوميًا، وإجمالي كمية السجلات يتجاوز 1TB.
تم أيضًا تكوين Skywalking و Sky Agent في نص بدء الخدمة على pod. بالإضافة إلى إضافة Kafka، يمكن مراقبة رابط الاتصال بالكامل على Skywalking وسحابة السجلات وفقًا لـ requestId
و traceId
، وأصبحت سجلات السجلات ووقت استهلاك طلبات API لكل رابط شفافًا لمراقبة بيانات السجلات.
الفوائد بعد استخدام Junrunrenli لـ APISIX
1. دعم تطوير الأعمال
بعد استخدام APISIX، أصبحت ميزات نظام Junrunrenli أكثر ثراءً، والأداء أكثر قوة. يوفر طرقًا متنوعة لمراقبة الأمان والحماية لخدمات API، ويدعم بشكل فعال عشرات الملايين من حركة المرور اليومية.
2. تحسين كفاءة تسليم البحث والتطوير
قبل استخدام APISIX، كانت Junrunrenli تستغرق 10 دقائق لتكوين كل DNS، ولكن الآن يستغرق الأمر ثوانٍ فقط لتكوين النطاقات العامة. هناك أكثر من 10 أنظمة وأكثر من 100 خدمة مع العديد من التكوينات. يحتاج المطورون إلى تعديل التكوين في كل من CLB و NGINX. يوفر APISIX مستوى بيانات مركزي لتعديل التكوين، مما يقلل بشكل كبير من عبء عمل DevOps.
3. توفير التكاليف
تم توفير تكلفة عالية لموازنات الأحمال وتقليل 200+ خدمة إلى 10+ فقط.
خطة Junrunrenli المستقبلية
-
ستقوم Junrunrenli بتخصيص java-plugin-runner ودمج sentinel لتمكين خدمة التحكم الديناميكي في معدل التدفق القابل للتوصيل ودعم التحكم في حركة المرور اليومية والشهرية.
-
يفكر فريق Junrunrenli أيضًا في تخزين بيانات سجلات طلبات API ثم إجراء تحديد التحكم في المخاطر بناءً على محرك القواعد، ودفع معلومات الإنذار، والتدخل السريع في العمليات والصيانة.
-
ستقوم Junrunrenli بإدارة طبقات. حاليًا، هناك مدخل واحد فقط، وسيتم توفير مجموعات متعددة من مجموعات APISIX لاحقًا. على سبيل المثال، يمكن لل