يسعدنا اليوم أن نعلن عن إطلاق سراح افتح edX Analytics Devstack وتريد أن تأخذ بعض الوقت لشرح كيف جاء المشروع. شكر كبير لفيليب تشيو وبرادن ماكدونالد على جهودهما البطولية في جعل هذا المشروع يؤتي ثماره.

في أول هاكاثون مفتوح لمؤتمر edX العام الماضي ، فيليب تشيو (من إيونيسكس) اقترح مشروعًا رائعًا: للتشغيل مكدس تحليلات edX بالكامل من حاوية Docker. كان الهدف من هذا المشروع هو تطوير شيء مثل مكدس المطور (Devstack) الذي يستخدمه معظم مطوري Open edX عندما يطورون تصحيحات لمنصة edx. قد يحتوي "برنامج Analytics" هذا على جميع التبعيات الخارجية التي تحتاجها أنظمة التحليلات ، والمثبتة في حاوية واحدة معزولة بشكل ملائم. 

رسم تخطيطي يوضح جميع الخدمات الموجودة داخل حاوية devstack للتحليلات

رسم تخطيطي يوضح جميع الخدمات الموجودة داخل حاوية devstack للتحليلات

كان فريق تحليلات edX يقوم بمعظم عمليات التطوير الخاصة بنا على مجموعات Elastic MapReduce (على AWS) ، والتي تتضمن بشكل ملائم جميع التبعيات اللازمة لتشغيل التعليمات البرمجية الخاصة بنا. ومع ذلك ، فإن هذا النهج مرهق ومكلف للغاية بالنسبة للعديد من مساهمي المصادر المفتوحة. بدلاً من ذلك ، أردنا إنشاء حزمة تحليلات داخل حاوية يمكنها استيعاب سجلات التتبع (بيانات تدفق النقر) ومعالجتها وعرض النتائج على حالة الحساب (لوحة معلومات التحليلات المقدمة للمدربين وموظفي الدورة التدريبية العاملين في دورات edX). قضيت أنا و فيليب اليومين التاليين في اختراق كل الأجزاء التي يجب أن تحدث لتحقيق هذا الهدف. في النهاية ، قطعنا شوطا طويلا. تمكنا من تشغيل خط أنابيب البيانات (edx-analytics-pipeline) ، ولكن لا تزال هناك حاجة لتوصيل بعض الخدمات. بعد الهاكاثون ، قضيت بعض الوقت في دفعه للأمام ، غالبًا عن طريق تحويل التكوين المستند إلى Dockerfile إلى أدوار وكتيبات قواعد ثابتة. مكنتنا هذه الإضافة من تشغيل التهيئة غير المرغوبة في أي مكان اخترناه (بما في ذلك أثناء عملية إنشاء صورة عامل ميناء ، أو بناء AMI أو خطوة توفير صورة متشردة).

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

أعجب الفريق الهندسي في edX بهذه المساهمة الهائلة لدرجة أننا اعتقدنا أنه من المنطقي دمجها مع العمل الحالي وإنتاج منتج نهائي يمكنه:

  • يتم تثبيتها في نسخة مفتوحة من برنامج تطوير برامج مفتوح ، أو يتم نسجها في جهاز افتراضي منفصل تمامًا.
  • يعمل على نفس الجهاز مثل LMS ، مما يسمح بتكوين شبكة مبسط بشكل كبير ، دون الحاجة إلى القلق بشأن إعادة توجيه المنفذ والمضاعفات الأخرى.
  • كن مدمجًا بشكل محكم مع edx / config repo ، مما يسمح بالنشر المبسط في المستقبل إلى صناديق الحماية وبيئات تطوير edX الأخرى.
  • استخدم نفس منطق النشر المستخدم في الإنتاج.
  • استفد من البنية التحتية الأخرى لـ edX التي تدعم نشر وإدارة هذه التطبيقات القابلة للنشر بشكل مستقل (IDAs).

النتيجة الصافية هي مجموعة من الأدوار وكتب اللعب الثابتة التي تم دمجها في edx / config repo. الآن ، مع عدد قليل من الأوامر ، يمكن للمطورين الوقوف في بيئة تطوير تحليلات كاملة داخل جهاز افتراضي. ضمن هذه البيئة ، يمكنك النقر فوق في LMS ، وتشغيل مسار البيانات ، ثم تحديث الصفحة في Insights لرؤية المخططات تتغير بناءً على أفعالك!

تريد تجربتها؟ تحقق من الوثائق الموجودة على Analytics Devstack!

هل تريد أن تجعل devstack التحليلات أفضل؟ نأمل في توسيعه بالطرق التالية:

  • نود أن نكون قادرين على تشغيل اختبارات قبول خطوط أنابيب البيانات في هذه البيئة. حاليا ، هناك بعض تبعيات مضمنة في S3. يخطط فريق هندسة edX للقيام بذلك في المستقبل القريب.
  • لدينا بعض عناصر التكوين المتعلقة بالتحليلات في edx / edx-analytics-config repo وأشياء أخرى في edx / config repo. نود أن نتوصل إلى استراتيجية لتقليل تعقيد هذا الموقف ، من خلال نقل المنطق من واحد إلى آخر ، بحيث يكون لديك مكان واحد تذهب إليه للعثور على العناصر التشغيلية المتعلقة بالتحليلات.
  • اجعل إجراء نشر edx-analytics-pipeline أكثر تعبيرًا واتساقًا مع الخدمات الأخرى ، مثل Insights و Analytics Data API.
  • اسمح لـ Insights بعرض بيانات اليوم بدلاً من عرض بيانات الأمس دائمًا. لا تعرض بعض التقارير حاليًا أي تغييرات حتى يوم التقويم التالي.

لا يمكنني أن أشكر Braden و Philippe بما يكفي لتجميع كل هذا معًا وجعل من الممكن لنا جميعًا العمل على مجموعة التحليلات بسهولة وفعالية أكبر. نتطلع إلى رؤية التغييرات التي يضعها مجتمع Open edX في الاعتبار لـ Open edX Insights ، وما هي المشاريع الرائعة التي سيتم تطويرها من 2015 فتح edX Hackathon! نأمل أن نراكم هناك.

Gabe Mulley هو مهندس برمجيات رئيسي في فريق edX Analytics.

 إجمالي المشاهدات 1,077