انتقال سلس من Elasticsearch إلى OpenSearch

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

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

التاريخ

إيليستيكسيرتش، تم تطويرها أولاً بواسطة شاي بانون في عام 2010، وظهرت كمحرك بحث وتحليلات مفتوح المصدر قوي مبني على أباتشي لوسين. اكتسبت سريعًا شعبية بفضل قابليتها للتوسع، وطبيعتها الموزعة، وقدراتها القوية في البحث الكامل النص، وتحليل السجلات، ومعالجة البيانات في الوقت الحقيقي. عبر السنوات، أصبحت إيليستيكسيرتش جزءًا من مجموعة إيليستيك (المعروفة سابقًا بمجموعة ELK)، مدمجة مع كيبانا، لوغستاش، وبيتس لتوفير حلول إدارة البيانات من البداية إلى النهاية.

ومع ذلك، حدث تحول كبير في عام 2021 عندما قامت إيليستيك بتحويل إيليستيكسيرتش وكيبانا إلى ترخيص أكثر صرامة يسمى SSPL. ردًا على ذلك، قامت أمازون ومجتمع مشروعات مفتوحة المصدر بعمل فروع من إيليستيكسيرتش 7.10 وكيبانا لإنشاء أوبن سيرش، ملتزمين بترخيص أباتشي 2.0. منذ ذلك الحين، تطور أوبن سيرش كمشروع مدعوم من المجتمع، مضمونًا بديلاً حقيقيًا مفتوح المصدر بميزات قابلة للمقارنة وتطوير مستمر مصمم خصيصًا لحالات الاستخدام في مجال البحث، والرصد، والتحليل.

لماذا التحول إلى أوبن سيرش؟

1. الالتزام بالمصدر المفتوح

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

2. كفاءة التكلفة

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

3. التوافق

تحافظ OpenSearch على التوافق مع إصدارات Elasticsearch حتى 7.10، بما في ذلك العديد من واجهات برمجة التطبيقات والأدوات نفسها. يضمن ذلك انتقالًا سلسًا مع الحد الأدنى من الت disruptions للتطبيقات وعمليات العمل القائمة.

4. تطوير نشط ودعم

مدعومة من AWS ومجتمع نشط، تتلقى OpenSearch تحديثات مستمرة، وتعزيزات للميزات، وتصحيحات أمان. يعزز نموذج الحوكمة المفتوح الابتكار والتعاون، مما يضمن تطور المنصة لتلبية احتياجات المستخدمين.

5. قابلة للتخصيص ومرنة

تتيح OpenSearch تخصيصًا ومرونة أكبر مقارنةً بالأنظمة المملوكة، مما يمكّن المنظمات من تخصيص نشراتها لحالات استخدام محددة دون القيود المفروضة من شروط الترخيص.

6. نظام بيئي متطور

تقدم OpenSearch لوحات معلومات OpenSearch (بديل Kibana) والمكونات الإضافية المصممة للرصد، وتحليل السجلات، والبحث النصي الكامل. توسع هذه الأدوات من قابلية استخدامها عبر المجالات مع ضمان الاستمرار في التوافق مع احتياجات المستخدمين.

متى يجب الانتقال

  • مخاوف الترخيص: إذا كنت ترغب في تجنب قيود ترخيص SSPL التي قدمتها Elastic بعد الإصدار 7.10.
  • قيود الميزانية: لتقليل التكاليف المرتبطة بالتراخيص التجارية مع الاحتفاظ بمحرك بحث وتحليلات قوي.
  • ضمان الاستدامة المستقبلية: لاعتماد منصة تتمتع بخريطة تطوير شفافة ودعم قوي من المجتمع.
  • تكافؤ الميزات: عند استخدام الميزات المدعومة في Elasticsearch 7.10 أو الإصدارات السابقة، حيث أنها متوافقة تمامًا مع OpenSearch.
  • احتياجات التخصيص: عندما تكون المرونة الأكبر، والحوكمة المفتوحة، أو الابتكارات التي يقودها المجتمع ضرورية لأهداف منظمتك.

يضمن الانتقال إلى OpenSearch الاحتفاظ بمنصة قوية مدعومة بالمصدر المفتوح مع تجنب القيود والتكاليف المحتملة المرتبطة بنموذج ترخيص Elasticsearch.

قائمة التدقيق قبل الهجرة

قبل الانتقال من Elasticsearch إلى OpenSearch، اتبع هذه القائمة لضمان انتقال سلس وناجح:

1. تقييم توافق الإصدارات

  • تحقق من توافق إصدار Elasticsearch الخاص بك مع OpenSearch. يدعم OpenSearch إصدارات Elasticsearch حتى 7.10.
  • قم بمراجعة أي تبعيات API أو الإضافات للتأكد من دعمها في OpenSearch.

2. تقييم استخدام الميزات الخاصة

  • حدد أي ميزات خاصة أو إضافات (على سبيل المثال، ميزات التعلم الآلي لشركة Elastic) قد لا تكون لها مكافئات في OpenSearch.
  • قم بتقييم ما إذا كانت الأدوات أو التمديدات من الطرف الثالث المستخدمة في مجموعة Elasticsearch الخاصة بك ستتأثر.

3. قم بنسخ احتياطي لبياناتك

  • إنشاء نسخة احتياطية كاملة من فهارس Elasticsearch الخاصة بك باستخدام واجهة برمجة التطبيقات للنسخ الاحتياطي لتجنب أي فقدان بيانات محتمل:
    Shell

     

  • تأكد من تخزين النسخ الاحتياطية في موقع آمن ويمكن الوصول إليه لاستعادتها.

4. مراجعة إعدادات العنقود

  • قم بتوثيق إعدادات عنقود Elasticsearch الحالي الخاص بك، بما في ذلك تكوينات العقد، تخصيص الشظايا، وقوالب الفهارس.
  • قارن هذه الإعدادات مع OpenSearch لتحديد أي تعديلات مطلوبة.

5. اختبار في بيئة تجريبية

  • قم بإعداد بيئة تجريبية لمحاكاة عملية الهجرة.
  • استعد نسخ البيانات في عنقود OpenSearch التجريبي للتحقق من التوافق والوظائف.
  • اختبر تطبيقاتك واستعلاماتك وسير العمل في البيئة التجريبية لاكتشاف المشكلات مبكرًا.

6. تحقق من توافق API والاستعلامات

  • راجع واجهات برمجة التطبيقات (APIs) الخاصة بـ Elasticsearch وصيغة الاستعلام المستخدمة في تطبيقك. يحتفظ OpenSearch بمعظم توافق واجهات برمجة التطبيقات، ولكن قد توجد اختلافات طفيفة.
  • استخدم وضع توافق API الخاص بـ OpenSearch لانتقالات أكثر سلاسة.

7. تحديث التطبيقات والعملاء

  • استبدل مكتبات عميل Elasticsearch بمكتبات متوافقة مع OpenSearch (مثل opensearch-py لـ Python أو OpenSearch Java Client).
  • اختبر تكامل العميل لضمان تفاعل التطبيقات بشكل صحيح مع عنقود OpenSearch.

8. التحقق من دعم الإضافات

  • تأكد من توفر أي إضافات مستخدمة في Elasticsearch (على سبيل المثال، إضافات التحليل، الأمان، أو التوظيف) أو توافر بدائل لها في OpenSearch.
  • حدد الإضافات الخاصة بـ OpenSearch التي قد تعزز وظائف عنقودك.

9. إبلاغ أصحاب المصلحة

  • قم بتواصل خطة الهجرة، والجدول الزمني، وفترة التوقف المتوقعة (إن وُجد) مع جميع أصحاب المصلحة ذوي الصلة.
  • تأكد من استعداد الفرق المسؤولة عن التطبيقات والبنية التحتية والبيانات للهجرة.

10. التخطيط للتراجع

  • وضِّف خطة تراجع في حال ظهور مشاكل أثناء الهجرة. يجب أن تتضمن هذه الخطة خطوات لاستعادة عنقود Elasticsearch الأصلي والبيانات من النسخ الاحتياطية.

11. رصد الموارد

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

من خلال إكمال هذه القائمة، يمكنك تقليل المخاطر، وتحديد التحديات المحتملة، وضمان نجاح الهجرة من Elasticsearch إلى OpenSearch.

دليل تدريجي لعملية الهجرة

1. تثبيت OpenSearch

  • قم بتنزيل الإصدار المناسب لـ OpenSearch من opensearch.org.
  • قم بإعداد عقد OpenSearch باستخدام الوثائق الرسمية، مع ضمان تكوينات العقد المماثلة لإعداد Elasticsearch الحالي الخاص بك.

2. تصدير البيانات من Elasticsearch

  • استخدم API لإنشاء نسخة احتياطية من فهارس Elasticsearch الخاصة بك:
    شل

     

  • تأكد من أن اللقطة مخزنة في مستودع يمكن الوصول إليه من قبل OpenSearch.

3. استيراد البيانات إلى OpenSearch

  • تسجيل مستودع اللقطة في OpenSearch:
    Shell

     

  • استعادة اللقطة إلى OpenSearch:
    شل

     

4. تحديث التطبيقات والعميل

  • قم بتحديث مكتبات عميل Elasticsearch في تطبيقك إلى عملاء OpenSearch المتوافقين، مثل عميل OpenSearch Python (opensearch-py) أو عميل Java.
  • استبدل نقاط نهاية Elasticsearch في تكوين تطبيقك بنقاط نهاية OpenSearch.

5. التحقق من البيانات والاستعلامات

  • تأكد من أن جميع البيانات قد تم استعادتها بنجاح.
  • اختبر الاستعلامات وعمليات الفهرسة وتدفقات العمل في التطبيق لضمان سلوك كل شيء كما هو متوقع.

6. المراقبة والتحسين

  • استخدم OpenSearch Dashboards (المعروف سابقًا باسم Kibana) لمراقبة صحة وأداء الكلاستر.
  • قم بتمكين ميزات الأمان مثل التشفير، والمصادقة، وضوابط الوصول المعتمدة على الأدوار إذا لزم الأمر.

اعتبارات ما بعد الهجرة

1. المكونات الإضافية والميزات

  • إذا كنت تعتمد على المكونات الإضافية لـ Elasticsearch، تحقق من توفرها أو ابحث عن بدائل OpenSearch.

2. ضبط الأداء

  • قم بتحسين إعدادات كلاستر OpenSearch لتناسب متطلبات عبء العمل الخاص بك.
  • استفد من الميزات المحددة لـ OpenSearch، مثل التخزين الفائق الدفء، لتقليل تكلفة الاحتفاظ بالبيانات.

3. المشاركة المجتمعية

  • انضم إلى مجتمع OpenSearch للحصول على الدعم والتحديثات.
  • راقب ملاحظات الإصدار للبقاء على اطلاع حول الميزات والتحسينات الجديدة.

التحديات والنصائح للانتقال من Elasticsearch إلى OpenSearch

1. توافق الإضافات

التحدي

قد لا تتوفر بدائل مباشرة لبعض إضافات Elasticsearch، خاصة الخاصة.

النصائح

  • قم بمراجعة إضافات Elasticsearch الحالية وتحديد التبعيات.
  • استكشف نظام الإضافات الخاص بـ OpenSearch أو الأدوات مفتوحة المصدر البديلة لتعويض الميزات المفقودة.
  • نظر في ما إذا كانت قدرات OpenSearch المدمجة، مثل لوحات OpenSearch، تلبي احتياجاتك.

2. الفروقات في واجهات البرمجة

التحدي

على الرغم من أن OpenSearch يحافظ على التوافق مع واجهات برمجة التطبيقات الخاصة بـ Elasticsearch حتى الإصدار 7.10، إلا أن الفروقات الطفيفة أو نقاط النهاية المهجورة قد تؤثر على الوظائف.

النصائح

  • استخدم وضع توافق واجهة برمجة التطبيقات الخاص بـ OpenSearch لاختبار الواجهات والتكيف تدريجيًا.
  • قم بمراجعة وثائق واجهة برمجة التطبيقات واستبدل نقاط النهاية المهجورة بالبدائل الموصى بها.

3. هجرة البيانات

التحدي

قد تكون هجرة مجموعات البيانات الكبيرة مستهلكة للوقت وعرضة للأخطاء، خاصة إذا كانت هناك فروقات في التنسيق أو النمط.

النصائح

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

4. ضبط الأداء

التحدي

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

نصائح

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

5. تكامل العميل والتطبيق

التحدي

قد تتطلب التطبيقات التي تستخدم مكتبات عملاء Elasticsearch تحديثات للعمل مع OpenSearch.

نصائح

  • استبدال عملاء Elasticsearch بإصدارات متوافقة مع OpenSearch، مثل opensearch-py (Python) أو OpenSearch Java Client.
  • اختبار سير العمل التطبيقي وتنفيذ الاستعلام لضمان التكامل السلس.

6. ميزات محدودة في OpenSearch

التحدي

بعض الميزات الخاصة بـ Elasticsearch (مثل وظائف التعلم الآلي، Elastic Security) غير متوفرة في OpenSearch.

نصائح

  • تحديد الميزات الحرجة المفقودة في OpenSearch وتحديد أهميتها لحالتك الاستخدام.
  • استكشاف بدائل الطرف الثالث أو المفتوحة المصدر لاستبدال الميزات غير المتاحة.

7. التدريب والإلمام

التحدي

فرق التي تعرف Elasticsearch قد تواجه منحنى تعلم عند التحول إلى OpenSearch، خاصة في إدارة العنقود والميزات الجديدة.

نصائح

  • قدم التدريب والوثائق لإلمام فريقك بأدوات وسير عمل OpenSearch.
  • استفد من المجتمع النشط لـ OpenSearch والمنتديات للحصول على دعم إضافي.

8. البيانات في الوقت الحقيقي والتوقف

التحدي

بالنسبة لأنظمة الوقت الحقيقي، يمكن أن يكون من الصعب ضمان توقف أدنى أثناء الترحيل.

نصائح

  • خطط للترحيل خلال فترات منخفضة الحركة.
  • استخدم استراتيجية النشر الأزرق-الأخضر للتبديل بسلاسة بين العناقيد.
  • مزامنة البيانات الجديدة في OpenSearch باستخدام أدوات مثل Logstash أو Beats خلال نافذة الترحيل.

9. التوسعة والنمو المستقبلي

التحدي

ضمان أن العنقود الجديد لـ OpenSearch يمكنه التعامل مع متطلبات النمو والتوسعة المستقبلية.

نصائح

  • خطط للتوسعة من خلال تصميم هندسة العنقود التي تدعم التوسيع الأفقي.
  • استخدم البنية الموزعة لـ OpenSearch لتحسين استخدام الموارد.

10. دعم المجتمع

تحدي

بينما يتمتع OpenSearch بمجتمع متنامي، قد تفتقر بعض القضايا المتقدمة إلى توثيق شامل أو حلول خارجية.

نصائح

  • تفاعل مع مجتمع OpenSearch عبر المنتديات وGitHub لحل المشكلات.
  • راقب تحديثات OpenSearch بانتظام وساهم في المجتمع للحصول على رؤى أفضل.

من خلال توقع هذه التحديات واتباع هذه النصائح، يمكن للمنظمات التنقل في عملية الانتقال بفعالية، مما يضمن انتقالًا سلسًا مع الحفاظ على أداء البحث والتحليلات.

الخاتمة

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

Source:
https://dzone.com/articles/transition-from-elasticsearch-to-opensearch