لمسؤول النظام المبتدئ: كيفية إنشاء النظام من الفوضى

لمسؤول النظام المبتدئ: كيفية إنشاء النظام من الفوضى

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

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

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

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

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

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

توثيق

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

كيفية الحفاظ على الوثائق:

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

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

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

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

لمسؤول النظام المبتدئ: كيفية إنشاء النظام من الفوضى

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

لمسؤول النظام المبتدئ: كيفية إنشاء النظام من الفوضى

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

القوالب

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

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

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

الأمثل

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

لمسؤول النظام المبتدئ: كيفية إنشاء النظام من الفوضى

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

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

الأتمتة

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    لمسؤول النظام المبتدئ: كيفية إنشاء النظام من الفوضى

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

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

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

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

لمسؤول النظام المبتدئ: كيفية إنشاء النظام من الفوضى

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

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

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

المصدر: www.habr.com

إضافة تعليق