الخلاصة

  • وصف مؤسسو المشروع في بيان مايو 2019 وجود مبادرتين متشابهتين لا تعملان بتوافق كافٍ بأنه المشكلة الأكبر. جعلوا جسور التوافق أولوية، وخططوا لتحويل المشروعين السابقين إلى وضع القراءة فقط قبل نهاية السنة.
  • في إعلان مايو 2023 قال OpenTelemetry إنه بلغ تكافؤ الوظائف مع OpenCensus في سبع لغات، وحدد 31 يوليو موعداً مخططاً لأرشفة أغلب مستودعاته. بقي مستودع opencensus-python استثناءً معلناً.

مشروعان، وفاتورة توصيل واحدة تُدفع مرتين

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

كتب Ben Sigelman وMorgan McLean في 2019 أن أكبر عيب في المشروعين كان وجود اثنين منهما. لم تكن المشكلة شعارين على منصتين. كانت مسارين للربط داخل البرمجيات، يستهلكان جهداً كان يفترض أن يخففاه. وعندما لا تتوافق أدوات القياس بين مكوّنات الخدمة، يصبح تتبع طلب واحد عبرها عملاً إضافياً ساعة وقوع العطل.

نقل اندماج مايو 2019 العمل المقبل إلى مشروع واحد ضمن CNCF. ضمت اللجان الأولى ممثلين من Google وLightStep وMicrosoft وUber. أصبح هناك مكان لاتخاذ قرارات المواصفات والكود الجديد، لكن التطبيقات المثبتة لم تستبدل تبعياتها في اللحظة نفسها. وصف المؤسسون OpenTelemetry بأنه الإصدار الرئيسي التالي لكل من المشروعين القديمين. وهذا الوصف يفترض طريق ترقية للمستخدمين الحاليين، لا مجرد تبديل الاسم على باب المؤسسة.

الجسر كان في العقد من يومه الأول

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

قد يتوقف المستودع عن استقبال الميزات بينما تواصل الخدمة تحميل مكتبته كل صباح. بين القرارين إصدارات حزم، وترقيات اعتماديات، وتجارب لمسار تصدير البيانات. لم يُخترع الجسر بعد ظهور أزمة غير متوقعة؛ كان في التصميم الأصلي لأن القادة عرفوا أن توحيد الإدارة أسرع من تبديل الكود العامل لدى جميع المستخدمين.

في أغسطس 2021 أعلنت CNCF انتقال OpenTelemetry إلى مرحلة الاحتضان. وصفت واجهات وحزماً برمجية في إحدى عشرة لغة، ودعم الآثار والمقاييس في بروتوكول المشروع. وتحدث الإعلان نفسه عن أرشفة رسمية لاحقة لـOpenTracing والمزيد من إيقاف المشروعين السابقين. بعد عامين من الاتحاد، ظل إنهاء القديم ضمن قائمة العمل المعلنة.

قائمة 2023 تضمنت خانة استثناء

حدد إعلان OpenTelemetry بشأن OpenCensus في مايو 2023 الشروط بصورة أدق. قال المشروع إنه بلغ تكافؤ الوظائف في C++ و.NET وGo وJava وJavaScript وPHP وPython. وخطط لأرشفة معظم مستودعات OpenCensus على GitHub في 31 يوليو. لكنه استثنى opencensus-python لأن أجزاءً منه ظلت موصى بها للاستخدام الإنتاجي. السهم الواحد في رسم الاندماج صار في الواقع قائمة تبعيات لها سطر لا يمكن شطبه.

عرض الإعلان جسور توافق لـGo وJava وJavaScript وPython، مع الإشارة إلى أن بعض المحولات لم تكن قد صدرت بعد. يستطيع المستخدمون إبقاء أدوات القياس القديمة مؤقتاً وإرسال بياناتها عبر مصدّرات OpenTelemetry، ثم إزالة المكتبات السابقة على مراحل. ونبّه المشروع إلى أن النظام الجديد ليس امتداداً مطابقاً تماماً لبيانات OpenCensus؛ قد تتغير بيانات القياس خلال الانتقال. استمرار ظهور رسم بياني لا يثبت بقاء معنى المؤشر نفسه.

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

تندمج اللجان قبل التطبيقات

أنهى قرار 2019 المنافسة على المكان الذي تُبنى فيه أدوات القياس المشتركة. أما نقل الخدمات الموجودة فاحتاج إلى إصدارات لغوية، وجودة جسور، وقرارات عدد كبير من صائني المكتبات. السنوات الأربع حتى خطة OpenCensus لا تثبت فشل هدف «القراءة فقط» في 2019؛ القراءة فقط والأرشفة مرحلتان مختلفتان. لكنها تثبت أن خروج المشروع القديم كان لا يزال يحتاج في 2023 إلى دليل مفصل واستثناء. تغيرت اللوحة على الباب سريعاً، واستغرق نقل الأسلاك وقتاً أطول.