يا رمز بلدي. كيف تصبح مسؤول النظام

تتحدث نائبة المدير الفني لشركة Mail.Ru Group Tatyana Bakharevskaya عن مسار مسؤول النظام ، ومزايا العمل كمسؤول نظام وميزات التشغيل في شركة كبيرة. كانت تاتيانا مسؤولة ومسؤولة عن خدمات أكبر بوابتين في روسيا.


مضيف البرنامج هو Pavel Shcherbinin.

- قل القليل عن نفسك.

- دخلت المهنة منذ وقت طويل. حصلت على وظيفة كمسؤول نظام مبتدئ في شركة صغيرة كانت تعمل على تطوير محرك البحث الخاص بها وعدد من مشاريع الإنترنت الأخرى. كان ياندكس ، حيث عملت لسنوات عديدة. نشأت لتكون مدير نظام جاد ، ثم ترأست قسم إدارة النظام. في عام 2005 ، عمل 5 أشخاص في هذا القسم ، وبعد 10 سنوات - 250 ، كان هيكلًا كبيرًا ، وتم تشكيل عدة وحدات. تعلمنا كيفية توظيف المهندسين وتوعيتهم ، وأقامنا أحداثًا مثل Root و CIT. في Yandex ، كنت مسؤولاً عن التشغيل المستمر المتواصل للشركة ، والآن ، منذ عام بالفعل ، كنت أفعل نفس الشيء لـ Mail.Ru Group. في البداية بدا أن المهام كانت متشابهة ، ولكن بعد الفحص الدقيق اتضح أن هناك الكثير من القواسم المشتركة ، ولكن كانت هناك اختلافات كافية ، وكان هذا مثيرًا للاهتمام.

- هناك العديد من الشروط المختلفة لتشغيل الخدمة. هذا مجرد استغلال ، ومسؤول النظام ، SRE ، SE ، DevOps. أخبرنا المزيد عن كل منهما. أم هو نفس الشيء؟ كيف تختلف؟

- في الواقع ، يعد مسؤول النظام مفهومًا واسعًا إلى حد ما ، بدءًا من حقيقة أن الشخص يمكن أن يكون مسؤولًا عن بعض المكاتب الصغيرة ذات البنية التحتية للمكاتب الصغيرة للعديد من الموظفين ، وينتهي بالمسؤولية عن التشغيل المستمر لخدمة محملة للغاية. في مرحلة ما ، كانت لا تزال مقسمة إلى اتجاهات مختلفة. في شركات مثل Mail.Ru Group و Yandex و Google ، يكون مسؤول النظام أقرب إلى ما يُطلق عليه الآن الكلمات الطنانة SRE - Site Reliability Engineer ، أي الشخص المسؤول عن توفر الموقع.

يتطلب عملنا الكثير من المعرفة المختلفة حول التقنيات: Linux / Unix والشبكات وقواعد البيانات وخوادم الويب والتقنيات السحابية وتكوين المعدات التي نستخدمها لبناء الخدمات (المعالجات والذاكرة والأقراص) والمزيد. حول التكنولوجيا تحتاج إلى فهم كيفية تطبيقها وكيفية اختلافها. هناك دائمًا الكثير من الأعمال الروتينية التي تحتاج إلى أتمتة. من الضروري أيضًا كتابة الرمز. معظم مديري النظام الحديث / SREs هم في الغالب مبرمجين. في الوقت الحالي ، اللغة الأساسية للأتمتة هي Python ، بالإضافة إلى باش بالطبع. معرفة C كانت دائمًا ميزة إضافية. على سبيل المثال ، أفضل وثائق Linux: افتح رمز النواة وانظر كيف يعمل كل شيء.

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

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

- دعنا نعود قليلا. المرحلة الأولية مثيرة جدا للاهتمام. لماذا اخترت العملية؟

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

- أتساءل في أي نقطة تقرر أن تكون مبرمجًا أو مشرفًا؟

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

كل هذا يتوقف على الشخص ، على ما يحبه ويكره. وهذه المهن متشابهة للغاية وتتداخل في نواح كثيرة.

- تتحدث الأساطير حول Yandex عن أنه في وقت ما كان لديك مفتاح خاص يمكنه إيقاف تشغيل مركز بيانات واحد في أي وقت لاختبار استقرار النظام. أخبرني المزيد.

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

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

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

- ما رأيك ، أين هو الخط الفاصل بين المبرمجين ومسؤولي النظام؟ في أي نقطة يمكن للمبرمج أن يقول إنه ليس مسؤولاً عن ذلك ، ولا يعرف ما هي قاعدة البيانات الموجودة ، وهذا للمسؤولين. أم أن هذا الوجه لا؟

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

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

- ربما لا يعلم الجميع كيف يتم ترتيبه الآن في Mail.Ru Group. أخبرني المزيد.

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

في منزلنا - البريد ، البحث ، البوابة ، نادي التوصيل ، "Yula" ، "My World" ، ICQ وغيرها الكثير. هناك مشاريع تم إطلاقها لفترة طويلة وهي منتجاتنا الأساسية ، على سبيل المثال ، Mail and Portal. هناك مشاريع اشتريناها ونضعها على بنيتنا التحتية ونشاركها في الممارسات التشغيلية. وهناك من ولد معنا ونما بسرعة كبيرة ، على سبيل المثال "يولا". الاقتصاد متنوع للغاية :-)

- كيف تبدو بنية خدمة Mail.Ru Group النموذجية؟

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

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

بعد ذلك ، تبدأ التفاصيل.

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

نحن نقوم بتنفيذ Kubernetes ، لكن هذه العملية تتطلب الكثير من التغيير في عمليات التشغيل والتطوير. لن تسير الأمور بسرعة. نحاول القيام بكل شيء بعناية حتى لا نكسر أي شيء.

دعنا نعود إلى ما يحدث مع المستخدمين. أولاً ، يدخل المستخدم الموازن. لموازنة الحمل ، يتم استخدام بروتوكولات الشبكة BGP و RIP والبرامج التقليدية - ipvs و haproxy و nginx. بعد ذلك ، تظهر خوادم الويب للمستخدمين صفحات جميلة ، تستخدم بشكل رئيسي nginx و Apache.

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

يتم استخدام نظم إدارة قواعد البيانات (DBMS) للمشاريع الجديدة ، خاصةً MySQL و PostgreSQL و Tarantool للتطوير الداخلي. يجب ألا يشعر المستخدمون بفقدان خوادم أي وحدة تخزين أو جزء منها ، فنحن نحاول نسخ البيانات احتياطيًا وتكرارها إلى مراكز البيانات المجاورة.

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

- كم عدد الأشخاص الخاضعين لك؟

- الآن حوالي 70 ، ولكن هذا العدد ينمو بانتظام. نحن الآن بصدد توسيع بنشاط ، وهناك الآن العديد من المواقف المفتوحة.

- كم عدد الخوادم التي تخدمها؟

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

- ما هو حجم القناة؟

"بعض الترابيت." مجموعة Mail.Ru بأكملها لديها شبكة مشتركة ، يتم من خلالها نقل الكثير من المعلومات. خذ على الأقل "VK" و "OK" ، والتي تعرض مجموعة من مقاطع الفيديو ، ولكن لا يزال هناك بريد ، والبحث ، والتحليلات ، والعديد من الخدمات الأخرى المحملة بشكل كبير. لذلك ، تعد الشبكة مكونًا مهمًا.

- ما الذي تحتاج إلى معرفته لتصبح مديرًا جيدًا للنظام؟

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

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

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

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

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

- في الرأي العام ، يتم تقديم المشرفين كرجال ذوي لحية كبيرة في سترة ممدودة. هل من الصعب عليك العمل في فريق الرجال؟

- سؤال صعب ، لأنني أعمل منذ سنوات عديدة. أولاً ، اعتدت على ذلك. ثانيًا ، إذا تحدثنا عن الصناعة ككل ، فهناك بالفعل عدد قليل جدًا من الفتيات العاملات.

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

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

- مسحنا الخاطف. ما هو حاسوبك المحمول؟

- تفاحة.

- أيهما أفضل باش أم بيرل؟

- باش.

- شركة ناشئة أم شركة كبيرة؟

- البدء في شركة كبيرة.

" ما هو آخر شيء لم يكن لديك ما يكفي من المال له؟"

- اليخت.

- إجابة رائعة. سيفهم الجميع على الفور مستوى الراتب في Mail.Ru Group.

- بالضبط.

- ICQ أو TamTam؟

- ICQ.

- "VK" أو "زملاء الدراسة"؟

- VK.

- من هو قدوتك؟

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

- اسم الروس الكبار.

- الكثير جدا. مرة أخرى ، أخشى أنني لن أدرج الجميع. إذا كان هناك شخص ما يحتاج إلى أن يتم تحديده شخصيًا ، فأنا سعيد لأنني تمكنت في الحياة من العمل مع Ilya Segalovich.

Source: https://habr.com/ru/post/ar416849/


All Articles