دمج اكتشاف الخدمة وتسجيلها مع API7 Enterprise
June 13, 2024
مع الانتشار الواسع لـ بنية الخدمات المصغرة (microservices)، أصبحت العلاقات بين الخدمات أكثر تعقيدًا. في هذا السياق، يكتسب اكتشاف الخدمات أهمية خاصة، حيث يسمح للخدمات بالعثور على بعضها البعض والتفاعل بشكل ديناميكي.
API7 Enterprise، كمنصة غنية بالميزات لإدارة واجهات برمجة التطبيقات (API)، يمكنها التكامل بسلاسة مع سجلات اكتشاف الخدمات لتحقيق الاكتشاف التلقائي والتوجيه الذكي للخدمات العلوية (upstream services).
ما هو اكتشاف الخدمات؟
اكتشاف الخدمات هو آلية لاكتشاف مثيلات الخدمات وعناوينها داخل الشبكة تلقائيًا، بحيث يمكن للخدمات الأخرى أو العملاء العثور عليها والتواصل معها. في أنظمة التوزيع الحديثة وبنية الخدمات المصغرة، يعد اكتشاف الخدمات مكونًا حاسمًا، حيث يمكّن من تحديد موقع الخدمات والاتصال بها بشكل ديناميكي دون الحاجة إلى ترميز عناوين الخدمات يدويًا أو تحديث التكوينات يدويًا.
وظائف اكتشاف الخدمات
-
تحديد موقع الخدمات ديناميكيًا: في بنية الخدمات المصغرة، قد تبدأ مثيلات الخدمات أو تتوقف أو تنتقل أو تتوسع بشكل ديناميكي. يمكن لاكتشاف الخدمات تتبع هذه التغييرات تلقائيًا، مما يضمن أن العملاء يمكنهم دائمًا العثور على مثيلات الخدمات المتاحة.
-
تحمل الأخطاء والتبديل التلقائي (Failover): عندما يفشل مثيل خدمة ما، يمكن لاكتشاف الخدمات اكتشاف عدم توافره وتوجيه العملاء للاتصال بمثيلات أخرى سليمة، مما يمكّن من التبديل التلقائي والتوفر العالي.
-
تبسيط التكوين والإدارة: من خلال اكتشاف الخدمات، لا يحتاج المطورون إلى تكوين عناوين الشبكة لكل خدمة يدويًا وإدارتها. هذا يقلل من احتمالية حدوث أخطاء في التكوين ويبسط نشر الخدمات وإدارتها.
اكتشاف الخدمات في API7 Enterprise
غالبًا ما يتم استخدام اكتشاف الخدمات جنبًا إلى جنب مع موزع الحمل (load balancer) أو بوابة API (API gateway) لضمان توزيع الطلبات بشكل متساوٍ عبر مثيلات الخدمات المتعددة، مما يحسن إنتاجية النظام ووقت الاستجابة. في الأنظمة الموزعة، قد تصبح مثيلات الخدمات غير متاحة لأسباب مختلفة، ويمكن لآلية اكتشاف الخدمات تحديد هذه المشكلات بسرعة وإعادة توجيه الطلبات إلى مثيلات خدمة أخرى سليمة من خلال موزع الحمل، مما يضمن توفر الخدمات بشكل عالي.
في API7 Enterprise، يتم توسيع هذه المرونة من خلال مفهوم "الخدمة العلوية (upstream)". عن طريق تكوين الخدمة العلوية كسجل خدمة، يمكن لبوابة API استرداد قائمة مثيلات الخدمات الخلفية بشكل ديناميكي وضبط استراتيجية توزيع الطلبات حسب الحاجة. هذا يعني أنه حتى عندما يتغير عدد أو حالة مثيلات الخدمات، يمكن لبوابة API التكيف بسرعة دون الحاجة إلى تحديثات تكوين يدوية أو إعادة تشغيل الخدمات.
يوفر التعاون بين اكتشاف الخدمات وبوابة API قدرات قوية لإدارة الخدمات الديناميكية والتحكم في حركة المرور لبنية الخدمات المصغرة. قامت API7 Enterprise بتحسين وتوسيع هذه الميزة، مما يسمح للنظام بأن يكون أكثر مرونة وكفاءة في التعامل مع السيناريوهات والمتطلبات المعقدة المختلفة. علاوة على ذلك، مع الانتشار الواسع لتقنيات الحوسبة السحابية الأصلية (cloud-native) والحاويات (containerization)، أصبح نشر مثيلات الخدمات وتوسيعها أسهل وأسرع.
كيفية تكوين اكتشاف الخدمات في API7 Enterprise؟
إضافة سجلات الخدمات
في مجموعة البوابة، انتقل إلى صفحة سجل الخدمات، وانقر على زر "إضافة اتصال سجل خدمة"، وستظهر لك نموذج الاتصال.

في النموذج، نحتاج إلى ملء المعلومات الأساسية وتكوينات الاتصال ذات الصلة لسجل الخدمات. حاليًا، تدعم API7 Enterprise تكامل سجلات الخدمات من Kubernetes وNacos. هنا، سنستخدم Nacos كمثال. اختر "Nacos" كنوع الاكتشاف، ثم حدد كيف ستحصل API7 Enterprise على الرمز المميز (token) للمصادقة، والذي يمكن أن يتم من خلال اسم المستخدم/كلمة المرور، أو مفتاح الوصول والمفتاح السري، أو عن طريق إدخال قيمة الرمز المميز مباشرة.

بالإضافة إلى تكوينات المصادقة الأساسية، توفر API7 Enterprise أيضًا خيارات تكوين أكثر دقة، مثل مهلة الاتصال ومهلة القراءة/الكتابة. يمكن تعديل هذه التكوينات بشكل مرن بناءً على الاحتياجات الفعلية، مما يساعد على تجنب الطلبات المعلقة لفترات طويلة بسبب اتصالات الشبكة غير المستقلة، ويقلل من الاستخدام غير الفعال لموارد النظام.
بعد إنشاء سجل الخدمات، سيظهر عنصر الاتصال الجديد فورًا في القائمة، ولكن يمكن تمييز حالة الاتصال بأنها صحية بعد فحص النظام. من خلال عنصر الاتصال هذا، يمكن للمستخدمين التحقق بسهولة من حالة اكتشاف الخدمات والتكوينات ذات الصلة لسجل الخدمات.
تكوين اكتشاف الخدمات في الخدمة العلوية
سجل الخدمات هو مورد يتبع مجموعة البوابة. في مجموعة البوابة التي تم فيها إنشاء سجل الخدمات، يمكن لأي خدمة يتم نشرها في تلك المجموعة استخدام تكوين سجل الخدمات هذا. يمكننا تكوين الخدمة العلوية أثناء عملية نشر الخدمة أو على خدمة تم نشرها بالفعل.
اختر قالب خدمة، وقم بنشره في مجموعة البوابة التي تمت إضافة سجل الخدمات إليها، واختر استخدام اكتشاف الخدمات كخدمة علوية، ثم اختر سجل الخدمات Nacos الذي أنشأناه للتو، واختر مساحة الاسم (namespace) والمجموعة (group) والمثيل (instance) المحدد.
بعد نشر الخدمة، يمكنك عرض سجل الخدمات المكون حاليًا في صفحة الخدمة العلوية من تفاصيل الخدمة، وإجراء تغييرات على تكوين اكتشاف الخدمات في أي وقت.
عرض الخدمات المرتبطة، تحديث وحذف تكوينات الاتصال
في قائمة سجلات الخدمات، من خلال قائمة "المزيد" على اليمين، يمكنك إدارة تكوينات الاتصال بسهولة، وعرض تاريخ الاتصال، وتتبع استخدام الخدمة، أو حذف تكوينات الاتصال التي لم تعد هناك حاجة إليها.

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

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

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