إلى بداية نظام المسؤول: كيفية جعل النظام من الفوضى



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

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

أعمدة إدارة النظام


ومع ذلك ، قبل البدء في حل المشاكل ، يجدر التعرف على الركائز الأربع الرئيسية للإدارة:

  1. توثيق
  2. التقييس
  3. الأمثل
  4. أتمتة

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

الوثائق


لا تعني الوثائق قراءة الوثائق (على الرغم من عدم وجودها في أي مكان) ، ولكن أيضًا الاحتفاظ بها.

كيفية الاحتفاظ بالسجلات:

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

الفكرة الرئيسية: لا تثق في ذاكرتك تمامًا في تطوير وتطبيق واحدة جديدة.

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

  1. لا تكن طويلاً تسليط الضوء على الأفكار والأساليب والأدوات الرئيسية. إذا كان فهم المشكلة يتطلب الغوص في الميكانيكا المنخفضة لتخصيص Linux للذاكرة ، فلا تعيد كتابة المقالة التي تعلمتها منها - أعط رابطًا إليها.
  2. يجب أن تكون الإدخالات مفهومة لك. إذا كان race cond.lockup الخط race cond.lockup لا يسمح لك بفهم ما وصفته بهذا السطر على الفور - فسر ذلك. التوثيق الجيد لا يحتاج إلى فهم لمدة نصف ساعة.
  3. البحث هو ميزة جيدة جدا. إذا كنت تقوم بالتدوين ، فأضف العلامات ؛ إذا كان في دفتر ملاحظات المادية - عصا صغيرة بعد ذلك مع الأوصاف. لا توجد فائدة كبيرة في الوثائق إذا كنت تقضي وقتًا طويلاً في البحث عن إجابة فيها كما لو كنت تنفق على حل مشكلة من الصفر.



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



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

التقييس


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

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

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

الأمثل


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



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

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

أتمتة


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

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

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

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

مسؤول النظام التعليم الذاتي


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

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

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

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

الوصايا العشر لإدارة النظام


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

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

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



  5. "التحكم" . قلل جميع العمليات التي لا تتحكم فيها. يمكن لأحد منحنى التبعية في الحزمة أن يسحب نصف النظام إلى الخلف ، وتمنحك علامة yy للإزالة yum الفرصة لتدريب مهارات استرداد النظام من البداية. إذا كان الإجراء لا يحتوي على بدائل غير خاضعة للرقابة ، فإن النقطة التالية ونسخة احتياطية جاهزة.
  6. "التحقق من ذلك . " تحقق من عواقب أفعالك وما إذا كنت بحاجة إلى الرجوع إلى النسخة الاحتياطية. تحقق مما إذا كانت المشكلة قد حلت حقًا. تحقق ما إذا كان يتم تكرار الخطأ وتحت أي ظروف. تحقق من أنه يمكنك الانفصال عن أفعالك. الثقة في عملنا أمر لا لزوم له ، ولكن لا يمكن التحقق منه أبدًا.
  7. "التواصل" . إذا لم تتمكن من حل المشكلة ، اسأل زملائك عما إذا كانوا قد واجهوا مثل هذه المشكلة. ترغب في تطبيق قرار مثير للجدل - معرفة رأي الزملاء. ربما سيقدمون حلاً أفضل. لا توجد ثقة في تصرفاتك - ناقشها مع زملائك. حتى لو كان هذا هو مجال خبرتك ، فإن نظرة جديدة على الموقف يمكن أن توضح الكثير. لا تخجل من جهلك. من الأفضل طرح سؤال غبي ، أن يبدو كأنه أحمق وأن يحصل على إجابة عليه ، بدلاً من طرح هذا السؤال ، وليس للحصول على إجابة والبقاء في البرد.
  8. "لا ترفض المساعدة بشكل غير معقول" . هذا العنصر هو الجانب الآخر من الجانب السابق. إذا طُلب منك سؤال غبي - وضح وشرح. اطلب المستحيل - اشرح أنه من المستحيل ولماذا ، تقديم البدائل. إذا لم يكن هناك وقت (في الحقيقة لا يوجد وقت ولا رغبة) - فقل أن لديك سؤالًا عاجلاً \ كمية كبيرة من العمل ، لكنك ستكتشف ذلك لاحقًا. إذا لم يكن لزملائك مهام عاجلة ، فعليك الاتصال بهم وتفويض السؤال.
  9. "هيا ردود الفعل . " بدأ بعض الزملاء بتطبيق تقنية جديدة أو برنامج نصي جديد ، وهل واجهتم العواقب السلبية لهذا القرار؟ تقرير هذا. ربما يتم حل المشكلة في ثلاثة أسطر من التعليمات البرمجية أو خمس دقائق من تحسين المنهجية. تعثرت على خطأ في البرنامج؟ الإبلاغ عن خطأ. إذا كان يتم إعادة إنتاجه أو إذا لم يكن من الضروري إعادة إنتاجه ، فمن المحتمل أن يكون ثابتًا. قل رغباتك ومقترحاتك ونقدك البناء ، ثم أرسل أسئلة للمناقشة إذا بدا أنها مناسبة.
  10. "اسأل عن ردود الفعل" . كلنا غير كاملين ، وكذلك قراراتنا ، وأفضل طريقة للتحقق من صحة قرارنا هي طرحه للمناقشة. لقد قمنا بتحسين شيء ما على العميل - اطلب تتبع العمل ، وربما لا يكون "عنق الزجاجة" في النظام هو المكان الذي كنت تبحث عنه. لقد كتبوا سيناريو مساعدة - أظهروا زملائك ، ربما سيجدون طريقة لتحسينه.

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

الأدوات الرئيسية التي يجب أن تعمل بها أكثر من 50٪ من الوقت هي grep و vim. ما يمكن أن يكون أسهل؟ البحث عن النص وتحرير النص. ومع ذلك ، يعد grep و vim أدوات متعددة الوظائف قوية تتيح لك البحث عن النص وتحريره بكفاءة. إذا سمح لك بعض برامج Windows notepad بكتابة / حذف سطر ، فيمكنك فعل أي شيء تقريبًا باستخدام النص. لا تصدق ذلك - استدعاء الأمر vimtutor من المحطة والبدء في التعلم. أما بالنسبة لـ grep ، فإن قوتها الرئيسية في التعبيرات العادية. نعم ، تتيح لك الأداة نفسها ضبط شروط البحث وإخراج البيانات بمرونة تامة ، لكن بدون RegExp لن يكون الأمر منطقيًا. وتحتاج إلى معرفة التعبيرات العادية! على الأقل في المستوى الأساسي. بادئ ذي بدء ، أنصحك بمشاهدة هذا الفيديو ، فهو يفهم أساسيات أساسيات التعبيرات العادية واستخدامها مع grep. أوه نعم ، عندما تجمعهم مع vim ، تحصل عليه قوة النهائي القدرة على القيام بمثل هذه الأشياء مع النص الذي يتعين عليك تعليقه باستخدام 18+ رمز.

من ال 50 ٪ المتبقية ، و 40 ٪ من coreutils. بالنسبة إلى coreutils ، يمكنك رؤية القائمة على ويكيبيديا ، ودليل القائمة بأكملها على موقع جنو . ما لم تتم تغطيته بواسطة هذه المجموعة هو في أدوات POSIX المساعدة. ليس من الضروري حفظ هذا مع كل المفاتيح عن ظهر قلب ، ولكن على الأقل معرفة ما يمكن أن تفعله الأدوات الأساسية مفيدة. لا حاجة لإعادة اختراع العجلة من العكازات. بطريقة ما اضطررت إلى استبدال فواصل الأسطر بمسافات في الإخراج من بعض المنفعة ، ولد المخ المريض بناء الشكل sed ':a;N;$!ba;s/\n/ /g' ، زميل اقترب مني أخرجني بمكنسة من وحدة التحكم ، ثم حل المشكلة عن طريق كتابة tr '\n' ' ' .



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

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

كان مسؤول النظام FirstVDS ، كيريل تسفيتكوف ، معك.

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


All Articles