من الحوادث اليومية إلى الاستقرار: المعلوماتية 10 من خلال عيون المسؤول

من الحوادث اليومية إلى الاستقرار: المعلوماتية 10 من خلال عيون المسؤول

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

إذا كان القراء الأعزاء على دراية بمشروع مستودع البيانات الخاص بنا ومنتج Informatica PowerCenter بشكل عام، فيمكنك الانتقال فورًا إلى القسم التالي.

منذ عدة سنوات، نضجت فكرة إنشاء مستودع بيانات واحد للشركة وبدأ تنفيذها في Rostelecom. تم بالفعل إنشاء عدد من المستودعات التي تحل المشكلات الفردية، لكن عدد السيناريوهات زاد، كما زادت تكاليف الدعم، وأصبح من الواضح أن المستقبل يكمن في المركزية. من الناحية المعمارية، هذا هو التخزين نفسه، الذي يتكون من عدة طبقات، ويتم تنفيذه على Hadoop وGreenPlum، وقواعد البيانات المساعدة، وآليات ETL وBI.

وفي الوقت نفسه، ونظرًا للعدد الكبير من مصادر البيانات غير المتجانسة والموزعة جغرافيًا، تم إنشاء آلية خاصة لتحميل البيانات، ويتم التحكم في تشغيلها بواسطة Informatica. ونتيجة لذلك تنتهي حزم البيانات في منطقة واجهة Hadoop، وبعدها تبدأ عمليات تحميل البيانات من خلال طبقات التخزين Hadoop وGreenPlum، ويتم إدارتها من خلال ما يسمى بآلية التحكم ETL المطبقة في Informatica. وبالتالي فإن نظام المعلوماتية يعد أحد العناصر الأساسية التي تضمن تشغيل المستودع.

سيتم وصف مساحة التخزين لدينا بمزيد من التفاصيل في إحدى المشاركات التالية.

يعتبر Informatica PowerCenter/Big Data Management حاليًا البرنامج الرائد في مجال أدوات تكامل البيانات. هذا منتج من منتجات شركة Informatica الأمريكية، التي تعد واحدة من أقوى اللاعبين في ETL (استخراج تحويل الحمل)، وإدارة جودة البيانات، وMDM (إدارة البيانات الرئيسية)، وILM (إدارة دورة حياة المعلومات) والمزيد.

إن PowerCenter الذي نستخدمه هو خادم تطبيقات Tomcat متكامل حيث يتم تشغيل تطبيقات Informatica نفسها وتنفيذ خدماتها:

نطاق، في الواقع، هذا هو الأساس لكل شيء آخر؛ تعمل الخدمات والمستخدمين ومكونات GRID داخل المجال.

وحدة تحكم المسؤول، أداة إدارة ومراقبة على شبكة الإنترنت، بالإضافة إلى عميل Informatica Developer، الأداة الرئيسية للتفاعل مع المنتج

MRS لتقف علي خدمة المستودع النموذجي، مستودع البيانات التعريفية، هو طبقة بين قاعدة البيانات التي يتم فيها تخزين البيانات التعريفية فعليًا وعميل Informatica Developer الذي يتم فيه التطوير. تقوم المستودعات بتخزين أوصاف البيانات والمعلومات الأخرى، بما في ذلك عدد من خدمات Infromatica الأخرى، على سبيل المثال، جداول تشغيل المهام (الجداول) أو مراقبة البيانات، بالإضافة إلى معلمات التطبيق، على وجه الخصوص، مما يسمح باستخدام نفس التطبيق للعمل مع مصادر البيانات المختلفة والمستقبلات.

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

تكوين الشبكة - بشكل أساسي، خيار إنشاء مجمع باستخدام عدة خوادم، عندما يتم توزيع التحميل الذي يتم تشغيله بواسطة DIS بين العقد (أي الخوادم التي تشكل جزءًا من المجال). في حالة هذا الخيار، بالإضافة إلى توزيع الحمل في DIS من خلال طبقة تجريد GRID إضافية توحد عدة عقد، والتي يعمل عليها DIS بدلاً من العمل على عقدة واحدة محددة، يمكن أيضًا إنشاء مثيلات MRS احتياطية إضافية. يمكنك أيضًا تنفيذ التوفر العالي، حيث يمكن إجراء مكالمات خارجية من خلال العقد الاحتياطية في حالة فشل العقدة الرئيسية. لقد تخلينا عن خيار البناء هذا في الوقت الحالي.

من الحوادث اليومية إلى الاستقرار: المعلوماتية 10 من خلال عيون المسؤول
إنفورماتيكا باور سنتر، التخطيطي

في المراحل الأولى من العمل كجزء من سلسلة توريد البيانات، ظهرت مشكلات بانتظام، بعضها بسبب التشغيل غير المستقر لشركة Informatica في ذلك الوقت. سأشارككم بعض اللحظات التي لا تنسى في هذه الملحمة - إتقان Informatica 10.

من الحوادث اليومية إلى الاستقرار: المعلوماتية 10 من خلال عيون المسؤول
شعار إنفورماتيكا السابق

تشمل مجال مسؤوليتنا أيضًا بيئات Informatica الأخرى، ولديها تفاصيلها الخاصة بسبب الحمل المختلف، ولكن في الوقت الحالي سأتذكر بالضبط كيف تطورت Informatica كمكون ETL لمستودع البيانات نفسه.

كيف حدث هذا

في عام 2016، عندما أصبحنا مسؤولين عن عمل Informatica، وصلت بالفعل إلى الإصدار 10.0، وبالنسبة للزملاء المتفائلين الذين قرروا استخدام منتج بإصدار ثانوي .0 في حل جاد، بدا كل شيء واضحًا - نحن بحاجة إلى استخدام نسخة جديدة! من وجهة نظر موارد الأجهزة، كان كل شيء على ما يرام في ذلك الوقت.

منذ ربيع عام 2016، كان أحد المقاولين مسؤولاً عن عمل Informatica، ووفقًا لعدد قليل من مستخدمي النظام، "كان يعمل بضع مرات في الأسبوع". وهنا لا بد من توضيح أن المستودع كان بحكم الأمر الواقع في مرحلة إثبات المفهوم (PoC)، ولم يكن هناك إداريين في الفريق وكان النظام يتعطل باستمرار لأسباب مختلفة، وبعد ذلك قام مهندس المقاول باستلامه مرة أخرى.

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

أول شيء كان علينا القيام به لمطوري فريقنا والمقاول هو تحقيق الاستقرار في عمل Informatica نفسها، لضمان وظائف وحدة تحكم إدارة الويب (Informatica Administrator).

من الحوادث اليومية إلى الاستقرار: المعلوماتية 10 من خلال عيون المسؤول
هذه هي الطريقة التي التقينا بها كثيرًا بمطوري Informatica

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

من الحوادث اليومية إلى الاستقرار: المعلوماتية 10 من خلال عيون المسؤول
إحدى المحاولات لتشغيل Informatica Monitor

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

من الحوادث اليومية إلى الاستقرار: المعلوماتية 10 من خلال عيون المسؤول
اختيار معلمات جافا لتحقيق الاستقرار في الأداء

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

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

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

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

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

هنا نحتاج أن نشكر الدعم؛ لقد تم تحديد المشاكل وحلها بسرعة نسبية باستخدام EBF (Emergency Bug Fix) - بعد ذلك، شعر الجميع بأن الأداة تعمل حقًا.

لا يزال يعمل!

بحلول الوقت الذي بدأنا فيه العمل في الوضع المستهدف، كانت شركة Informatica تبدو هكذا. إصدار Informatica 10.1.1HF1 (HF1 هو HotFix1، وهو تجميع بائع من مجموعة من EBFs) مع EBF مثبت بشكل إضافي، والذي يصحح مشكلاتنا المتعلقة بالقياس وبعض المشكلات الأخرى، على خادم واحد من أصل ثلاثة خوادم كانت جزءًا من GRID، 20 x86_64 مركزًا والتخزين، على مجموعة ضخمة بطيئة من الأقراص المحلية - هذا هو تكوين الخادم لمجموعة Hadoop. على خادم آخر مماثل - Oracle DBMS الذي يعمل به كل من مجال Informatica وآلية التحكم ETL. تتم مراقبة كل هذا من خلال أدوات المراقبة القياسية المستخدمة في الفريق (Zabbix + Grafana) على كلا الجانبين - Informatica نفسها بخدماتها وعمليات التحميل التي تجري فيها. الآن يعتمد كل من الأداء والاستقرار، دون مراعاة العوامل الخارجية، على الإعدادات التي تحد من الحمل.

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

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

تنشأ مشكلة أخرى من نفس الموقف - في بعض الأحيان تحدث عمليات إطلاق متعددة لآلية التحكم الخاصة بنا.

من الحوادث اليومية إلى الاستقرار: المعلوماتية 10 من خلال عيون المسؤول
يؤدي إطلاق التطبيقات المتعددة إلى فشل الآلية

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

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

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

من الحوادث اليومية إلى الاستقرار: المعلوماتية 10 من خلال عيون المسؤول
الثنائية الزمنية في سجلات MRS "حسب التصميم"

اتضح أن الطوابع الزمنية تكتب بصيغة 12 ساعة، دون تحديد AM/PM، أي قبل الظهر أو بعده. حتى أنه تم فتح طلب بخصوص هذا الأمر، وتم تلقي رد رسمي - هكذا كان المقصود، تتم كتابة العلامات في سجل MRS بهذا التنسيق بالضبط. أي أنه في بعض الأحيان تبقى بعض المؤامرات فيما يتعلق بوقت حدوث بعض الأخطاء ...

نسعى للأفضل

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

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

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

تم إعداد المقال بواسطة فريق إدارة البيانات في Rostelecom

من الحوادث اليومية إلى الاستقرار: المعلوماتية 10 من خلال عيون المسؤول
شعار المعلوماتية الحالي

المصدر: www.habr.com

إضافة تعليق