ما المقصود بـ Jaeger؟

Jaeger عبارة عن برنامج يتيح لك مراقبة مكونات البرمجيات المترابطة المسماة بـ "الخدمات المصغرة" واستكشاف مشكلاتها وإصلاحها. تتواصل خدمات مصغرة عديدة مع بعضها البعض بهدف إكمال وظيفة برمجية واحدة. يستخدم المطورون برنامج Jaeger من أجل عمل عرض مرئي لسلسلة الأحداث في تفاعلات الخدمات المصغرة هذه، ما يتيح لهم عزل المشكلة في حالة حدوث خطأ ما. يُطلق على برنامج Jaeger أيضًا اسم Jaeger Tracing لأنه يتبع مسار الطلب أو يتعقبه من خلال سلسلة من تفاعلات الخدمات المصغرة.   

لماذا يُعد Jaeger مهمًا؟

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

الخدمات المصغرة

تكون التطبيقات الحديثة بمثابة مجموعة من الوحدات المستقلة الأصغر تُسمى الخدمات المصغرة. على سبيل المثال، قد يتكون تطبيق طلب الطعام الحديث من الأجزاء التالية:

  • خدمة تحديد الموقع الجغرافي لاكتشاف مكان العميل 
  • خدمة تجمع الطلبات وترسلها إلى المطاعم  
  • بوابة دفع بخيارات متعددة للدفع

 

تعمل كل خدمة مصغرة باعتبارها تطبيقًا مستقلاً، ولها إمكانية الوصول إلى قاعدة البيانات والمنطق الخاصين بها. تتواصل الخدمات المصغرة مع بعضها باستخدام الطلبات والاستجابات، مثل تطبيق الويب. يُسمى النظام الأساسي للخدمات المصغرة أيضًا بالنظام الموزَّع.

استكشاف أخطاء هيكلة الخدمات المصغرة وإصلاحها

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

 

Jaeger عبارة عن أداة برمجية تستخدمها فرق تكنولوجيا المعلومات لتحقيق الرؤية والوضوح فيما يخص سلسلة الأحداث بأكملها. ومن ثمَّ يمكنهم حل المشكلات أسرع وتحسين تجربة العميل.

في أي شيء يُستخدم Jaeger؟

يستخدم المطورون Jaeger لتحسين أداء النظام الموزَّع بعدة طرق مختلفة. وإليك بعض الأمثلة أدناه.

مراقبة المعاملات الموزَّعة

يتضمن Jaeger ميزات تراقب تحركات البيانات فيما بين الخدمات المصغرة. يمكن للمطورين اتباع نهج استباقي لاكتشاف المشكلات وحلها قبل مقاطعة تجربة المستخدم.

تحسين وقت الاستجابة

يمكن لتحليلات Jaeger تحديد المعوقات في الخدمات المصغرة التي تبطئ التطبيق. يستخدم المطورون Jaeger لفحص سلوك الخدمات المصغرة وإيجاد طرق لتسريعها.

تحليل السبب الجذري

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

تحليل تبعية الخدمة

تعني تبعية الخدمة اعتماد تشغيل التطبيق على عدة مكونات. على سبيل المثال، يعتمد تطبيق الملاحة على خدمات الموقع على تطبيق الهاتف المحمول. يستخدم المطورون Jaeger لفهم العلاقات المعقدة بين الخدمات المصغرة المختلفة. 

انتشار السياق الموزَّع

انتشار السياق الموزَّع هو الطريقة التي يمرر بها تطبيق ما المعلومات الوصفية مع البيانات. وهذا يساعد المطورين في تقييم أداء الخدمات المصغرة ككل. على سبيل المثال، يضع Jaeger علامات على الطلبات باسم العميل حتى يتمكن المطورون من ربط مسار الطلب بالعميل المحدد. 

كيف يعمل Jaeger؟

يعمل Jaeger على مبادئ التتبع الموزَّع، ويستخدم إطار عمل OpenTracing.

التتبع الموزَّع

التتبع الموزَّع هو تقنية برمجية تراقب تسلسلات الأحداث بين الخدمات المصغرة. وتتبِع هذه التقنية جميع الاتصالات وتوفر مخططات ورسومًا بيانية لعرض مسارات الطلب في أحد التطبيقات مرئيًا. ولأن Jaeger أداة تتبع موزَّع، فهو يتتبع حركات الطلب عن طريق تعيين مُعرِّف فريد لكل طلب وجمع المعلومات عندما تعالِج خدمة معينة الطلب. 

OpenTracing

OpenTracing هو إطار عمل مفتوح المصدر، أي متاح مجانًا، يوفر المعايير اللازمة لجعل التتبع الموزَّع الدقيق والمتكامل حقيقة واقعية عبر أنظمة البرمجيات الحديثة. على سبيل المثال، فهو يوفر معيارًا شائعًا لتحديد هيكل المعلومات الخاضعة للمراقبة التي تنتقل بين الخدمات المصغرة. Jaeger يستخدم OpenTracing لتوفير حل كامل لجمع بيانات الخدمات المصغرة وتخزينها وإدارتها وتحليلها وعرضها مرئيًا.  

نموذج بيانات OpenTracing

يوفر نموذج بيانات OpenTracing التعريف الأساسي لربط البيانات من المكونات المختلفة. المصطلحان الرئيسان اللذان يستخدمهما هما النطاق والتتبع.

النطاق

النطاق هو وحدة منطقية واحدة للعمل المنجَز في نظام تتبع موزَّع. يتكون كل نطاق من المكونات التالية:

  • اسم العملية
  • وقت البدء ووقت التوقف
  • العلامات أو القيم التي تساعد المطورين على تحليل النطاق
  • السجلات التي تخزن أي رسائل تنشئها الخدمة المصغرة
  • سياق النطاق أو الأوصاف الإضافية للنطاق

التتبع

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

  • تقديم العميل للطلب
  • معالجة عملية الدفع
  • تقديم قائمة الطلبات إلى المطعم
  • تجهيز الطعام
  • توصيل الطعام

ما مكونات JRE؟

تشتمل منصة التتبع الموزَّع من Jaeger على المكونات التالية. 

عميل Jaeger 

يضم عميل Jaeger عمليات تنفيذ خاصة باللغة من واجهة برمجة تطبيقات OpenTracing في لغات البرمجة مثل Go، وJavaScript، وJava، وPython، وRuby، وPHP.

يستخدم المطورون واجهات برمجة التطبيقات المذكورة لإنشاء نطاقات Jaeger بدون كتابة التعليمات البرمجية المصدر المخصصة للتتبع الموزَّع. 

وكيل Jaeger

وكيل Jaeger عبارة عن برنامج خفي للشبكة أو عملية تعمل باستمرار في الخلفية لأداء الوظائف التي تتطلبها العمليات الأخرى. وهو يستقبل النطاقات التي يرسلها العميل عبر بروتوكول مخطط بيانات المستخدم (UDP)، وهو نوع من طرق الاتصال التي تسمح للتطبيقات بتبادل الرسائل عبر الشبكة.  

يتصل الوكيل بالعميل في بيئات الحاويات مثل خدمة Kubernetes المرنة بـ Amazon (Amazon EKS). تنشئ مجموعات الوكلاء نطاقات على دفعات وترسلها إلى المجمّع. فهذه الخطوة تتيح للتطبيق بالعمل بدون إرسال معلومات التتبع بشكل نشط إلى واجهة Jaeger. 

مُجمع Jaeger

يُعد مُجمع Jaeger مكونًا برمجيًا يسترد عمليات التتبع من مُجمع Jaeger. وهو يفحص عمليات التتبع الموجودة في قاعدة البيانات ويعالجها ويخزنها.

التخزين

يستقبل نظام تتبع Jaeger النطاقات ويخزنها في خلفية تخزين ثابتة أو قاعدة بيانات. والتخزين الثابت معناه أن البيانات المخزنة تظل سليمة حتى في حالة إيقاف تشغيل الكمبيوتر. على سبيل المثال، يستخدم المطورون AWS OpenSearch Service المخصص للتخزين الثابت لتخزين النطاقات وقبولها.

حاوية الاستيعاب

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

الاستعلام

تسترجع خدمة الاستعلام معلومات التتبع من قاعدة البيانات. ويستخدم المطورون الاستعلامات للعثور على عمليات تتبع ذات وقت وعلامات ومدة وعملية محددة. 

وحدة تحكم Jaeger

وحدة تحكم Jaeger عبارة عن برنامج ذي واجهة مستخدم يمكنك استخدامها لعرض عمليات التتبع وتحليلها. وهو يعرض بيانات التتبع في رسوم بيانية ومخططات. 

كيف يستخدم المطورون Jaeger؟

عندما يُنشِئ المطورون تطبيقًا ما، فإنهم يستخدمون مكتبات عملاء Jaeger لإنشاء نطاقات. ومن خلال إضافة رموز إلى البرنامج لإنتاج بيانات التتبع، فإنهم ينشئون ما يُعرف بالتطبيق الموجّه. ينشئ التطبيق الموجّه تلقائيًا ما يلي:

 

  1. النطاقات التي تحتوي على مُعرِّف النطاق، ومُعرِّف التتبع، والعلامات، والسجلات، وسياق النطاق 
  2. حالات التتبع لكل طلب

 

يستخدم المطورون وحدة تحكم Jaeger للبحث عن بيانات التتبع الموزَّع هذه وتصفيتها وعرضها مرئيًا وتحليلها. ويمكنهم استخدام برنامج Jaeger UI لعرض معلومات مفصلة مثل مدة العملية والأخطاء والسجلات من الخدمات المصغرة. 

ما إستراتيجيات أخذ عينات Jaeger؟

ينقل التطبيق المجهز تلقائيًا بيانات التتبع عندما يكون التطبيق قيد التشغيل. ويمكنك استخدام بيانات التتبع لقياس أداء التطبيق. وهي تُسمى كذلك بيانات تتبع الاستخدام. لمنع غمر خلفية Jaeger ببيانات تتبع استخدام زائدة، يمكنك تصفيتها أو تسجيل عينات منها، وذلك بتكوين إستراتيجيات عينات في عملية تنفيذ Jaeger الخاصة بك. فيما يلي بعض إستراتيجيات أخذ العينات:

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

ما المقصود بـ AWS App Mesh؟

AWS App Mesh هي شبكة خدمة أو بنية أساسية للبرامج تقوم بالرفع الثقيل بحيث يمكنك إدارة الأنظمة الموزعة القائمة على الخدمات المصغرة بسهولة أكبر. يؤدي AWS App Mesh الدور الآتي: 

  • يوفر ذلك الرؤية الشاملة والتوافر العالي لتطبيقاتك.
  • يتولى ذلك تكوين كل الخدمات بغرض تصدير بيانات المراقبة وتنفيذ منطق التحكم في الاتصالات المتسقة على نطاق التطبيق. 
  • يوفر التحكم في حركة مرور الشبكة لمساعدة المطورين على إنشاء تطبيقات سحابية آمنة. 

يمكنك استخدام AWS App Mesh كحل مستقل لاحتياجات التتبع الموزع. كما أنه يدعم العديد من أدوات الجهات الخارجية غير التابعة لـ AWS، مثل Jaeger، والتي قد تستخدمها لمراقبة اتصالات الخدمات المصغرة أو تسجيلها أو تتبعها.

ابدأ مع Jaeger على App Mesh بإنشاء حساب AWS اليوم.

الخطوات التالية في Jaeger على AWS

التحقق من الموارد الإضافية المتعلقة بالمنتج
تعرَّف على AWS App Mesh 
تسجيل الاشتراك للحصول على حساب مجاني

تمتع بالوصول الفوري إلى الطبقة المجانية من AWS. 

تسجيل الاشتراك 
بدء الإنشاء في وحدة التحكم

ابدأ الإنشاء باستخدام AWS في وحدة إدارة تحكم AWS.

تسجيل الدخول