بناءً على الحس السليم: تنمية DevOps من الصفر

عشية DevOps Conf Russia 2018 ، تحدثنا مع المدير الفني لـ Uchi.ru Alexei Vakhov حول مراحل تطوير المنصة ، والأدوات التي يستخدمونها ومقدار DevOps ovo.



أليكسي فاخوف - المدير الفني لـ Uchi.ru. عمل كمطور C ++ على أنظمة ضخمة (عشرات الملايين من أسطر التعليمات البرمجية). تقنية الخادم المفضلة - روبي أون ريلز ، هي من بين أكبر 100 مساهم. وهو مغرم بتنظيم إنتاج تكنولوجيا المعلومات وتشغيلها وهندسة تطبيقات الويب.

Uchi.ru عبارة عن منصة تعليمية روسية حيث يدرس الطلاب في الصفوف 1-11 المواد الدراسية بطريقة ممتعة ومسلية. يستخدم المنصة أكثر من 2.5 مليون طالب و 220 ألف مدرس في روسيا والولايات المتحدة والبرازيل والهند وجنوب إفريقيا والصين. تحتل المرتبة 36 في التصنيف العالمي لمنصات التعلم الإلكتروني. لدى الشركة أكثر من 400 موظف.

- كيف بدأ كل شيء؟ كم عدد الأشخاص في الشركة عندما وصلت؟

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

"كيف تسير الأمور الآن؟" كم عدد الفرق وما الأحجام؟ كيف المستقلة؟ كيف يتفاعلون مع بعضهم البعض؟

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

فرق منفصلة لديها بيئتها المعزولة الخاصة بها ، وأنظمة بناء خاصة ، شحذت للمهام التي يؤديها الفريق ، خوادمهم الخاصة ، رموز المصدر. يتواصلون مع بعضهم البعض عند الضرورة فقط.

- مع معدل نمو الشركة هذا ، هل تتمكن من إنشاء موقع wiki خاص بك؟ كيف تدعمها؟

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

- زيادة حادة محفوفة بفقدان السيطرة. كيف تتعامل مع هذا؟ كيف تنسق عمل العديد من الفرق؟

- التنسيق العام يتحقق ببناء هيكل إداري. لدينا منسقون للإحالة ، ولكل فريق قائده الخاص. كل شيء بسيط هنا.

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

- ما هي مراحل تكوين الشركة التي تختارها بنفسك؟

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

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

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

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

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

بدءًا من حوالي 60 تطبيقًا ، نمت بنيتنا التحتية لتصبح منفصلة ، كما نسميها "المواقع". هذه هي غيوم معزولة بشبكاتها الفرعية الخاصة بها ، مع تراساتها الخاصة وتكويناتها الخفية.

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

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

- ما مدى ثباتك على نهج DevOps الأصلي؟ هل يناسبك كل شيء أو قمت بتغيير شيء لنفسك؟ هل كان من الصعب إعادة بناء الفريق؟

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

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

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

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

- سيكون من المثير للاهتمام معرفة مدى صعوبة انضمام المبتدئين إلى عملك باستخدام العديد من الأدوات الحديثة. كيف يتم تنظيم عملك مع الناس؟

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

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

- خطط الأعمال طموحة. اليوم ، يحضر أكثر من مليوني تلميذ بانتظام Uchi.ru ، وهو ما يمثل حوالي 30 ٪ من جميع طلاب المدارس الابتدائية في جميع أنحاء البلاد. سنستمر في جذب مستخدمين جدد إلى النظام الأساسي في روسيا والمشاركة في التنمية الدولية.

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



أيها الأصدقاء ، إذا كنت مهتمًا بتجربة أليكسي ، فإننا نسرع بدعوتنا إلى DevOps Conf Russia 2018 ، الذي سيعقد في 1-2 أكتوبر. في تقريره ، سيتحدث عن تجربة استخدام الغيوم ، وتطبيق منهجية DevOps ، وقيم ومبادئ فريقه.

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

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

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


All Articles