الفشل: الكمالية تدمرنا و ... الكسل

يخبرنا الكابتن Evidence ، في الصيف ، أن نشاط الشراء وكثافة التغييرات في البنية التحتية لمشروعات الويب تنخفض بشكل تقليدي. لمجرد أنه حتى موظفي تكنولوجيا المعلومات يحدثون في إجازة. و CTO أيضا. الأمر أكثر صعوبة بالنسبة لأولئك الذين يظلون في مناصبهم ، ولكن ليس حول هذا الأمر الآن: ربما هذا هو السبب في أن الصيف هو أفضل وقت للتسرع في مخطط الحجز الحالي ووضع خطة لتحسينه. وفي هذا ستستفيد من تجربة Yegor Andreev من AdminDivision ، والتي تحدث عنها في مؤتمر Uptime day .

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

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



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

Shtosh (ج) نأخذ الموقع الثاني ، نبني نظامًا متطابقًا ... يصبح التعقيد أكبر مرتين - لدينا كيانان. ونقوم أيضًا بتبديل منطق معين لنقل البيانات من نظام أساسي إلى آخر من الأعلى - أي تكرار البيانات ونسخ الإحصائيات وما إلى ذلك. لذلك ، عادة ما يكون منطق النسخ المتماثل معقدًا للغاية ، وبالتالي ، قد لا يكون التعقيد الكلي للنظام 2 ، ولكن 3 ، 5 ، 10 مرات أكثر.

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

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



حان الوقت ل "قصص من ث" ... من الحياة ، بالطبع.

مثال رقم واحد


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

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



مثال رقم اثنين


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



مثال رقم ثلاثة ، أكثر تعقيدا


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

كيف يمكن حجز كل هذا؟ في أي حال ، هناك حاجة إلى سيارة: ساعة من الوقت قليلا جدا. Mysql: النسخ المتماثل ، هناك حاجة بالفعل إلى النسخ المتماثل المباشر هنا ، لأنه في غضون 100 غيغابايت في تفريغ ، على الأرجح ، لن تصب. احصائيات ، صور: مرة أخرى ، في غضون 500 غيغابايت قد لا يكون لديك الوقت لدمج. لذلك ، من الأفضل نسخ الصور على الفور. Redis: أكثر إثارة للاهتمام هنا. الجلسات موجودة في Redis - لا يمكننا ببساطة أخذها ودفنها. لأنه لن يكون جيدًا جدًا: سيتم تسجيل خروج جميع المستخدمين وإفراغ السلال وما إلى ذلك. سيتم إجبار الأشخاص على إعادة إدخال اسم المستخدم وكلمة المرور الخاصة بهم ، وقد ينفصل الكثير من الأشخاص عن عملية الشراء. مرة أخرى ، سوف يسقط التحويل. من ناحية أخرى ، فإن Redis هي صلة مباشرة بواحد ، مع آخر المستخدمين الذين تم تسجيل دخولهم ، على الأرجح ، ليست هناك حاجة أيضًا. والحل الوسط الجيد هو أخذ Redis واستعادته من النسخة الاحتياطية أمس ، أو ، إذا قمت بذلك كل ساعة ، - قبل ساعة. فائدة استعادته من النسخة الاحتياطية هي نسخ ملف واحد. والقصة الأكثر إثارة للاهتمام هي Elasticsearch. الذي أثار أي وقت مضى النسخ المتماثل MySQL؟ الذي رفع من أي وقت مضى تكرار Elasticsearch؟ ومن عملت بشكل طبيعي بعد؟ ماذا أفعل: نرى كيانًا معينًا في نظامنا. يبدو أنه مفيد - لكنه معقد.
معقدة ، بمعنى أن زملائنا المهندسين ليس لديهم خبرة في العمل معها. أو هناك تجربة سلبية. أو نفهم أنه حتى الآن هذه تقنية جديدة إلى حد ما مع الفروق الدقيقة أو الرطوبة. نعتقد ... لعنة ، ومرونة صحية أيضا ، ويستغرق وقتا طويلا لاستعادته من النسخة الاحتياطية ، ماذا علي أن أفعل؟ نحن نفهم أن المرونة في حالتنا تستخدم للبحث. وكيف يبيع متجرنا على الإنترنت؟ نذهب إلى المسوقين ، نسأل ، من أين يأتي الناس. يجيبون: "90 ٪ من سوق ياندكس يأتي مباشرة إلى بطاقة المنتج." وإما شراء أم لا. لذلك ، يحتاج 10٪ من المستخدمين إلى البحث. وللمحافظة على تكرار النسخ المتماثل ، وخاصة بين مراكز البيانات المختلفة في المناطق المختلفة ، هناك الكثير من الفروق الدقيقة. ما هو المخرج؟ نحن نتحلى بالمرونة على موقع محجوز ولا نفعل أي شيء حيال ذلك. إذا استمرت القضية ، فربما سنثيرها في يوم من الأيام ، لكن هذا غير مؤكد. في الواقع ، الاستنتاج الإضافي أو الناقص هو نفسه: نحن ، مرة أخرى ، لا نحتفظ بالخدمات التي لا تؤثر على المال. للحفاظ على الدائرة أبسط.



مثال رقم أربعة ، أصعب


تكامل: بيع الزهور ، استدعاء سيارة أجرة ، بيع البضائع ، بشكل عام ، أي شيء. شيء خطير يعمل 24/7 لعدد كبير من المستخدمين. مع كومة مثيرة للاهتمام كاملة ، حيث توجد قواعد مثيرة للاهتمام ، والحلول ، حمولة عالية ، والأهم من ذلك ، يؤلمه أن يكذب أكثر من 5 دقائق. ليس فقط وليس كثيرًا لأن الناس لن يشتروا ، ولكن لأن الناس سيرون أن هذا الشيء لا يعمل ، فسيكونون منزعجين وقد لا يعودون مرة أخرى.

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

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



مثال رقم خمسة ، المتشددين الكامل


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

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



ربما هذا هو كل شيء. لا تكن كسول ولا تبالغ فيه. وربما يكون الجهوزية معك!

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


All Articles