4 مهندسين و 7000 خادم جائحة عالمي واحد

يا هبر! أقدم انتباهكم إلى ترجمة المقال "4 مهندسين و7000 خادم وجائحة عالمية واحدة" بواسطة أديب ضو.

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

من نحن

نحن فريق من 4 طيور البطريق الذين يحبون كتابة التعليمات البرمجية والعمل مع الأجهزة. في أوقات فراغنا، نحن مسؤولون عن نشر وصيانة وتشغيل أسطول يضم أكثر من 7000 خادم فعلي يعمل بنظام التشغيل Linux، موزعة عبر 3 مراكز بيانات مختلفة في جميع أنحاء الولايات المتحدة.

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

قضايا الحجم

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

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

السيطرة على المجالات الخاصة بك

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

لقد أتاح لنا اعتماد هذا النهج حل العديد من المشكلات بشكل صحيح - من خلال إنشاء الأدوات والأتمتة.

بحاجة المجال

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

  • القدرة على تخصيص عرض الحقول ذات الصلة فقط (بسيط)
  • واجهات برمجة التطبيقات المفتوحة (قابلة للتوسعة)
  • معروف لفريقنا (مفهوم)
  • التكامل مع سير العمل الحالي لدينا (موحد)

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

4 مهندسين و 7000 خادم جائحة عالمي واحد
لوحة كانبان في جيرا

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

مجال دورة حياة المعدات

حاول أن تتخيل مدى تعقيد إدارة الأجهزة المستخدمة في كل حامل خادم. والأمر الأسوأ من ذلك هو أنه يمكن نقل العديد من قطع الأجهزة (RAM، ROM) من المستودع إلى غرفة الخادم والعودة. كما أنها تفشل أو يتم شطبها واستبدالها وإعادتها إلى المورد لاستبدالها/إصلاحها. يجب إبلاغ كل هذا إلى موظفي خدمة الموقع المشتركين في الصيانة المادية للمعدات. لحل هذه المشاكل، قمنا بإنشاء أداة داخلية تسمى Floppy. مهمته هي:

  • إدارة الاتصالات مع الموظفين الميدانيين، وتجميع كافة المعلومات؛
  • تحديث بيانات "المستودع" بعد إتمام كل مهمة صيانة للمعدات والتحقق منها.

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

4 مهندسين و 7000 خادم جائحة عالمي واحدلوحة التحكم لمعدات المستودعات في جرافانا

بالنسبة لأجهزة الخادم التي تخضع للضمان، نستخدم أداة أخرى نسميها المرسل. هو:

  • يجمع سجلات النظام.
  • إنشاء التقارير بالتنسيق الذي يطلبه البائع؛
  • إنشاء طلب من البائع عبر واجهة برمجة التطبيقات؛
  • يتلقى ويخزن معرف التطبيق لمزيد من التتبع لتقدمه.

بمجرد قبول مطالبتنا (عادةً خلال ساعات العمل)، يتم إرسال قطعة الغيار إلى مركز البيانات المناسب ويتم قبولها من قبل الموظفين.

4 مهندسين و 7000 خادم جائحة عالمي واحد
إخراج وحدة التحكم جنكينز

مجال الاتصالات

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

يتطلب استخدام نهج جديد أيضًا أدوات جديدة تتيح التفاعل بشكل أكثر راحة مع موظفي مركز البيانات. وكانت هذه الأدوات مطلوبة من أجل:

  • بساطة؛
  • استقلال؛
  • كفاءة؛
  • الموثوقية.

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

ولتحقيق ذلك، قمنا بتركيب أجهزة iPad في كل مركز بيانات. بعد الاتصال بالخادم سيحدث ما يلي:

  • يؤكد الجهاز أن هذا الخادم يحتاج بالفعل إلى بعض الأعمال؛
  • يتم إغلاق التطبيقات التي تعمل على الخادم (إذا لزم الأمر)؛
  • يتم نشر مجموعة من تعليمات العمل على قناة Slack مع شرح الخطوات المطلوبة؛
  • عند الانتهاء من العمل، يقوم الجهاز بالتحقق من صحة الحالة النهائية للخادم؛
  • إعادة تشغيل التطبيقات إذا لزم الأمر.

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

4 مهندسين و 7000 خادم جائحة عالمي واحد
iPad في أحد مراكز البيانات لدينا

مجال الأجهزة

يتطلب توسيع نطاق البنية التحتية لمركز البيانات لدينا رؤية جيدة لكل مكون، على سبيل المثال:

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

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

4 مهندسين و 7000 خادم جائحة عالمي واحد
لوحة معلومات الطاقة في جرافانا

ومن ثم ظهر كوفيد-19..

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

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

ولكن، كما قلنا، نموذجنا يفترض بالفعل ما يلي:

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

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

باختصار، أود أن أقول إن نهجنا في العمل في صناعة مراكز البيانات يثبت أنه من الممكن تطبيق مبادئ تصميم التعليمات البرمجية الجيدة على الإدارة المادية لمركز البيانات. وربما تجدها مثيرة للاهتمام.

الأصل: tyts

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

إضافة تعليق