البنية التحتية هي ما يعتمد عليه عمل وأرباح أعمال تكنولوجيا المعلومات. تعتمد جميع العمليات التي تحدث مع رمز من كمبيوتر المطور إلى الإنتاج على التشغيل المتواصل للخوادم والبرامج والخدمات الخارجية. إذا كانت البنية التحتية لا تعمل كما يجب ، فإن الشركة تفقد الربح.
لا تولي الشركات الناشئة الكثير من الاهتمام للبنية التحتية - فهي بحاجة إلى قطع المنتج حتى ينفد المستثمرون من المال. الشركات الكبرى لم تعد قادرة على ذلك - لدينا الآلاف من المهام هنا ، نحن بحاجة إلى العمل.
إن فهم أن البنية التحتية لشركة تكنولوجيا المعلومات هي أيضًا منتج ، وأن لها هدفًا ، وأنه من الضروري النظر في التكاليف وتتبع المقاييس ، في كثير من الأحيان لا تصل.
هل تعرف كم تكلف البنية التحتية الخاصة بك: الخوادم والبرامج والخدمات الخارجية؟ ما رأيك تكلفة ذلك ، بأي مقاييس؟ كم ستخسر إذا وقع شيء ما أو لم يكن هناك نسخة احتياطية؟
يعرف Artyom Naumenko (entsu) من Skyeng إجابات هذه الأسئلة. كان يعمل في الشركات مع اثنين من المطورين في الدولة ، وفي الشركات التي تضم ألف موظف. وهو يدير حاليًا البنية التحتية في Skyeng ، وفي الوقت نفسه ، مركز تعليم الأطفال في Skyeng. سيقول أرتيم كيف تقوم الشركة ببناء البنية التحتية ، وكيف تكسب المال عليها وما هي الأخطاء التي لا ينبغي ارتكابها.
عن الشركة
Skyeng هي شركة شابة ، عمرها 6 سنوات فقط. ولكن كل هذا الوقت كان ينمو 3 مرات كل عام.

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

تتم كتابة معظم خدماتنا بواسطتنا ، ويدور نشاط الشركة بالكامل على البنية التحتية الخاصة بها. يتم مراقبتها من قبل فريق البنية التحتية من 6 أشخاص. نحن نقدم جميع العمليات التي تحدث مع الكود من كمبيوتر المطور إلى الإنتاج. تم تطوير الكود على أجهزتنا الافتراضية والخوادم ونشرها - بمساعدة Jenkins المكونة لدينا وأدوات النشر لدينا ، كما أن التشغيل على الإنتاج موجود أيضًا على خوادمنا التي نديرها.
هدف الشركة هو أن تنمو 7 مرات في 2 سنوات. يجب أن تنمو البنية التحتية بالمثل. لتحقيق الهدف ، يعمل كل عضو في فريق devops مثل الثور. كل عام يجب أن نكون أفضل 3 مرات من العام الماضي ، و 7 مرات أفضل في المستقبل. في Skyeng ، لا أحد مهتم بقصص جميلة "جربت لكنها فشلت". والنتيجة مهمة ، وليس العملية.
مبادئ بناء البنية التحتية
أعمال أي شركة تكنولوجيا معلومات تعمل على البنية التحتية. إذا لم ينجح هذا ، فلن تعمل الشركة ، سواء أكانت Yandex أو Amazon أو Skyeng. نحن ندرك هذا ، وبالتالي فإن أول شيء مهم للبنية التحتية الرائعة هو
وضع هدف . يبدو وكأنه خطاب لتوني روبنز ، ولكن بدون هدف ، لن ينجح شيء.
يجب تحديد الهدف لسببين.
- إذا كان لديك هدف ، فسوف تتحرك نحو ذلك.
- إذا لم يكن هناك هدف ، فلا يوجد مكان نذهب إليه. حتى لو أتيت إلى مكان ما ، فلن تكون قادرًا على الحصول على أعلى مستوى من الهدف الذي تم تحقيقه.
إذا لم يكن هناك هدف ، فمن المستحيل تحقيقه.
مشاكل الشركة
تحديد الهدف وحده لا يكفي. هدف الشركة هو أن تنمو 7 مرات في 2 سنوات. سيكون هناك مشاكل أثناء النمو. أنها تختلف ، اعتمادا على حجم ونوع الشركة.
النوع الأول من الشركات والناس هم الشركات الناشئة . في الصورة أدناه ، "بدء التشغيل النموذجي" - مجموعة كبيرة وفريق صغير يحاول السباحة بعيداً في مكان ما. تتمثل مزايا بدء التشغيل في أن كل عضو في الفريق يفهم أين يتحرك الفريق ، ومن يفعل ماذا ، وما يجب عليه فعله لتحقيق هدف مشترك.

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

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

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

Skyeng هي مدرسة ، والقيمة الرئيسية هي درس. الدرس المتوسط يكلف 800 روبل. من بين هؤلاء ، 12 يذهب إلى البنية التحتية: الخوادم و devops.

نسبة البنية التحتية آخذة في الانخفاض ، ونحن نعمل على ذلك. إنه يفيدنا ، والأعمال التجارية والعملاء. يمكنك أن تأخذ خوادم رخيصة ، لا تقم بنسخ احتياطية وإسقاط هذا الجدول أكثر. ولكن هذا خطأ ، فمن الضروري مراعاة ليس فقط تكاليف البنية التحتية ، ولكن تكاليف البنية التحتية والخسائر المتوقعة من السقوط.
لكل خدمة ، نفكر في مقدار المال في الساعة الذي نخسره بعد سقوطها. نحتفظ بسجل مفصل عن متى وما هي الخدمة التي كانت تكذب ، وكم فقدنا في هذا الصدد.
جدول الخسائر من السقوط على مدى العام الماضي.معظم الخسائر في الربع الثاني من عام 2018 - مرحبا إلى Roskomnadzor! لقد كان الإنفاق على البنية التحتية في العام الماضي 20 مليونًا ، وهبطت النفقات - 5 ملايين ، وإذا كنا قد حجزنا كل شيء ، لكان قد أنقذنا من روسكومنادور ، لكننا سنظل في المنطقة الحمراء بمقدار 15 مليون.
إنه أمر غير مربح للأعمال لتكرار كل شيء على التوالي. يجب على المرء أن يفكر ما لتكرار وما لا.
نحن نكرر تلك الخدمات التي تكون تكلفة خادم أو قاعدة بيانات إضافية فيها أقل من المخاطر المتوقعة من السقوط.
افعلها بسرعة
نقيس النسبة المئوية للمهام التي يتم إكمالها في يوم الإعداد. البنية التحتية تأتي مع العديد من المهام التي تحتاج إلى حل هنا والآن. الفرق الأخرى التي لا تستطيع القيام بعملها تعتمد على هذا. المهام الكبيرة التي تستغرق أسابيع تعتبر منفصلة.
جدولة المهام في يوم الإعداد.وفقًا للجدول الزمني ، يبلغ احتمال إكمال المهمة في يوم الإعداد حوالي 80٪. نرى هذا الرسم البياني ونعتقد أن كل شيء رائع. لكن الفرق الأخرى قد لا تفكر في ذلك وتقيم بشكل مختلف. لذلك ، نجري استطلاعات للفرق الأخرى.
مثال الاستطلاع.نجري استطلاعات عبر نموذج Google المعتاد مع الأسئلة. يستجيب المطورون وعملائنا الآخرون لهم بانتظام.
نتيجة المسح على سرعة البنية التحتية.يتم وصف الوضع الحالي جيدًا من خلال استطلاعات الرأي ، ولكن ليس في المستقبل. لتقييم احتمالية الموقف في المستقبل ، نقيس عدد المهام المنفذة باستخدام طلب السحب. هذا هو ما سوف تستفيد في سنة أو سنتين.
قبل ستة أشهر ، قررنا أن نذهب إلى "البنية التحتية كرمز". نحن هنا نقيس جميع الطلبات على البنية التحتية: قم بتعبئة ملف تفريغ أو جزء من السجلات أو إصلاح نقطة nginx على المنتج أو إنشاء خادم جديد. هذه كلها طلبات ، ونقيمها جميعًا بعدد طلبات السحب. في المستقبل ، نريد حل أي طلب بمساعدة طلب سحب أو حتى لا يتم طلبنا ببساطة.
نحن نعلم أن نهج "البنية التحتية كرمز" يوفر ثلاث مكافآت رئيسية:
- تخفيض تكلفة التغيير ؛
- زيادة معدل التغيير ؛
- الحد من المخاطر.
نحتاج إلى الثلاثة جميعًا ، لذلك نحن نتحرك بهذه الطريقة ونقيس مدى قربنا.

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

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

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

مقاييس إضافية نقيسها
الرائدة:
- ٪ الدعم ؛
- المهام ٪ مع العلاقات العامة ؛
- ٪ من المهام مغلقة يوميا.
تأخير:
- ٪ من ربح الشركة
- خسائر من السقوط ؛
- استعراض المطور.
هذا جزء فقط من المقاييس ، لدينا المزيد منها.
المهام التي لا نقوم بتقييمها
نحن لا نقيم الخلل. إذا استخدمنا نظامًا ما لدعمه ودعمه ، فنحن نصلح الأخطاء ببساطة لأنه يجب ألا يكون هناك.
الأمر نفسه ينطبق على الدعم. نقيس بشكل عام مقدار الوقت الذي يتم إنفاقه على الدعم ، ولا نسمح له أن يكون أكثر من اللازم. نقوم بتقييم كل نظام ككل لفوائده أو الأضرار. المهام التي هي أسهل في القيام بها أو أنها عاجلة للغاية ، ونحن لا تقييم. كل ما تحدثت عنه لا ينطبق عليهم - نحن فقط نطبق عليهم.
لماذا هو مفيد ومهم لتقييم المهام
الجوائز والإنجازات . مع العمل تحتاج دائمًا إلى التحدث بلغة المال. إنه يفهم المال فقط. إذا قلت إن لديك مشروعًا ، فإنك ستحققه ، فسوف يجلب 5 ملايين دولار ، وسيطلب منك مليون جائزة لكل فريق - سيتفقون معك. لرجال الأعمال ، وهذا أمر مفهوم.
التوظيف. لا تقدم الشركات لتوظيف الموظفين وإدخال تقنيات جديدة ، بل تقدم لكسب المال معًا. ثم سوف يقابلك بالتأكيد. على الأقل ، ستبدأ المناقشة ليس على الطريق "هل لديك وقت أو ليس لديك وقت ، هل تحتاج إلى شخص أم لا" ، ولكن كم هو رائع المشروع الذي تحتاج إليه شخصًا ، وهل سيتولى إدارته ، وهو حقًا يستحق المشروع ملايين كثيرة. ستذهب المحادثة في اتجاه مختلف ، وسوف تفهم أنت مقدمًا ما إذا كان هذا المشروع يستحق التكلفة أم أنه من السهل التخلص منه والبحث عن آخر؟
تحسين التكلفة . إذا فهمنا ما يتم إنفاقه على الأموال ، فيمكننا حسابها بسهولة وتحسين النفقات.
القرارات الإدارية . هذا البند أدركت مؤخرا. بدأت البنية التحتية في النمو وقررت تقسيم الفريق إلى أوامر فرعية. نشأ السؤال عن كيفية القيام بذلك على وجه التحديد ، بهدف زيادة عدد الموظفين. ظهر الحل على أساس المقاييس - قسم جميع مقاييس البنية التحتية الخاصة بنا إلى كتل ، وكل فريق مسؤول عن مقاييسه الخاصة. حصلت على 3 أوامر فرعية. بالنسبة لكل منها ، فإن مجال المسؤولية المشترك مفهوم ، ويفهم جميع المشاركين فيه ما يتحملونه مسؤولية شخصية. هذا مجال مسؤولية مفهوم.
لجعلها باردة
- حدد هدفًا - بدون مكان.
- قسم الهدف إلى مقاييس وقياس.
- تقييم المهام وإكمال أروع.
ثم سيكون لديك بالتأكيد النجاح!
في DevOps Conf 2019 ، سنتحدث عن "البنية التحتية كرمز" بشكل منفصل. مستقبل هذا النهج ، وأنماط Terraform ، ونشر وإدارة البنية التحتية BareMetal و Kubernetes هي أربع ورقات حول هذا الموضوع. سيعقد مؤتمر يجمع العملية والتكنولوجيا في موسكو يومي 30 سبتمبر و 1 أكتوبر . الجدول الزمني جاهز ، يمكنك دراسة البرنامج أو الملخصات أو حجز التذاكر .
اشترك في النشرة الإخبارية وقناة Telegram واستمر في الاطلاع على الأخبار والتقارير الجديدة.