سؤال ما sysadmin الأشياء يجب أن يعرف كل مبرمج؟


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


96


الأصل




الأجوبة:


سأبدأ بـ:

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

70



توثيق جميع الخطوات هو شيء رأيت sysadmins جيدة القيام به ، وبدأت في القيام بذلك بنفسي. مفيد جدا ، حقا. - Nathan DeWitt
النظر في نظم التوثيق الذاتي. على سبيل المثال ، لماذا تحتفظ بقائمة بأسماء المضيفين في ملف نصي أو wiki في مكان ما عندما يكون ملف Zone الذي تم التعليق عليه جيدًا هو المصدر الأساسي للمعلومات. - Dave Cheney
ديف ، هل هذا ملف منطقة يتم التعليق عليه جيدًا ويمكن للجميع الوصول إليه؟ إذا كنت شخصًا جديدًا قادمًا على متن الطائرة ، فليس من الأسهل إخبارنا "بالانتقال إلى هذا الويكي لجميع إجاباتك" بدلاً من "توثيق كل شيء في كل مكان. تم توثيق DNS في إعدادات DNS. تم توثيق whozit في whozit ملف التكوين تم توثيق قاعدة البيانات في ملف تكوين قاعدة البيانات. " يبدو ذلك ... غير ودي لي. - Nathan DeWitt
ناثان ، ديف: الخدعة هي بالطبع استخدام برنامج نصي لتحديث الويكي من المصدر الكنسي. لقد عملت لعجائب بالنسبة لي ، أنا آسفة حقاً لا أستطيع استخدامها حيث أعمل الآن. - Anders Eurenius
وأود أن أضيف إلى ذلك: بناء نظام اختبار. أنت بحاجة إلى بيئة يكون فيها الإخفاق خيارًا. لدي خادم يقوم بتشغيل VirtualBox لهذا ، لكني استخدمت محطة العمل الشخصية الخاصة بي عند عدم توفر الخوادم - Mark Porter


<إدراج إخلاء مسؤولية كبير آخر هنا>

وقد قيل بعض من قبل ، ولكن الأمر يستحق التكرار.

كابل بيانات:

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

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

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

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

  • الآن لديك النصف الأول خطة استرداد الحالات المستعصية الخاصة بك ، قم بتوثيق بقية؛ كيفية استعادة حالة التطبيق (استعادة الملفات من الشريط ، إعادة تحميل قواعد البيانات من عمليات التفريغ) ، تفاصيل البائع / الدعم ، متطلبات الشبكة ، كيفية الحصول على الأجهزة البديلة ومكانها - أي شيء يمكن أن تفكر فيه يساعدك في استعادة النظام.

التشغيل الآلي:

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

رصد:

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

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

  • معيار ومراقبة وجمع القياسات على كل شيء عاقل للقيام بذلك. تشير المعايير إلى متى تتوقع شيئًا ما سيسمح بدخول الدخان السحري. الرصد يخبرك عندما يكون لديه. تجعل المقاييس والإحصاءات من السهل الحصول على مجموعة جديدة (مع دخان سحري جديد) من خلال الإدارة.

  • إذا لم يكن لديك نظام مراقبة ، فعليك تنفيذ ذلك. نقاط المكافأة إذا قمت بالفعل بفحص الاختبارات من البداية إلى النهاية في ذلك.

الأمان:

  • "chmod 777" (ويعرف أيضًا باسم منح كل الامتيازات / الامتيازات) لا يمثل الحل أبدًا.

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

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

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

المعدات:

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

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

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

ادارة مشروع:

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

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

  • تنفيذ التقادم المخطط في المشروع من اليوم الأول ، وبدء دورة التحديث قبل ستة أشهر من يوم التبديل الذي حددته في وثائق المشروع.

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

تطوير:

  • تأكد من أن أنظمة التطوير والتخطيط الخاصة بك تشبه الإنتاج. إن تقنيات VM أو غيرها من تقنيات المحاكاة الافتراضية (مناطق ، LDOM's ، vservers) تجعل من الإنتاج في العالم الحقيقي بكل معنى ، ولكن الأداء سهل الاستنساخ.

النسخ الاحتياطي

  • البيانات التي لا تدعمها هي البيانات التي لا تريدها. هذا قانون غير قابل للتغيير. تأكد من تطابق الواقع مع هذا.

  • النسخ الاحتياطية أصعب مما تبدو ؛ بعض الملفات ستكون مفتوحة أو مقفولة ، في حين أن الآخرين يجب أن يتم استجداءهم ليكون لديهم أي أمل في التعافي ، وجميع هذه القضايا تحتاج إلى معالجة. تحتوي بعض حزم النسخ الاحتياطي على عوامل أو طرق أخرى للتعامل مع الملفات المفتوحة / المؤمّنة ، والحزم الأخرى لا. إن إلقاء قواعد البيانات على القرص ودعمها يعد شكلاً من أشكال "quiescing" ، ولكنه ليس الطريقة الوحيدة.

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

و الاهم من ذلك...

اختر أوضاع الفشل لديك ، أو سيفعل Murphy ... ولا يعمل Murphy وفقًا لجدولك الزمني.

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


44



+1 إنها مثل شخص ينظر في ذهني - وكان جميلا ؛ ص - Oskar Duveborn
"Benchmark ، ورصد وجمع المقاييس على كل شيء كل شيء عاقل للقيام بذلك. المقاييس يخبرك متى تتوقع شيء ما سوف يخرج الدخان السحري. رصد يخبرك عندما يكون. القياسات والإحصاءات تسهل الحصول على مجموعة جديدة (مع السحر الجديد الدخان) من خلال الإدارة ".  ذهب نقي - T.J. Crowder


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


43



+1 لهذا. ليس لأننا نجعلها نظرة من السهل أنه في الواقع. - Gert M
بصفتي أخصائيًا عامًا في العمل الإداري والبرمجي ، أفهم تمامًا محنتك. +1 - Avery Payne
يذهب بالطريقة الأخرى بالطبع ، لقد وجدت عدد قليل من أنواع مسؤول النظام الذين لا يفهمون حقا الفرق بين هذا النوع من البرامج النصية وبرامج الأدوات الصغيرة التي يمكن أن نطرحها جميعا والبرمجة "الحقيقية". - Rob Moir
+1 روبرت: أو مسؤول النظام الذي يقول "إنه عبارة بسيطة إذا كان" لإيجاد حل بديل لشبكة مصممة بشكل سيئ. الاحترام المتبادل والتفاهم هو المفتاح. - Steven Evers


  • أدرك أن الكثير من الخوادم و / أو معدات الشبكات التي يميلون إليها ، للأفضل أو الأسوأ ، تشبه إلى حد كبير الأطفال من عائلة ثانية. هؤلاء هم أطفالهم.  فهم يميلون إليهم ويساعدونهم عندما يكونون مرضى ويراقبونهم بيقظة من أجل المتاعب. هذه لا ينبغي على هذا النحو ، ولكن بعد سنوات عديدة ، هو في كثير من الاحيان. ضع ذلك في اعتبارك أثناء اتصالك بهم مخاوفك بشأن المعدات التي لا تعمل بشكل صحيح أو توقعات. وإذا تلقيت ردًاًا لا تفهمه ، فجرّب فلترته من خلال هذه النظرة إلى العالم.
  • كن على شروط عمل جيدة. يبدو مضغاً ، لكنه يستحق وزنه بالذهب. في يوم ما ، ستحتاج إلى بعض المميزات الخاصة. وفي يوم من الأيام ، سيسعد مسؤول النظام هذا أن يخرج من طريقه لجعل الحياة أسهل بالنسبة لك ، فقط في هذه المرة.
  • هذه العلاقة تعمل في كلا الاتجاهين. إذا كان مسؤول النظام مشغولاً للغاية ، ويمكنك أن تجعل الحياة أسهل قليلاً عن طريق كتابة نص برمجي صغير أو برنامج ، ثم قم بذلك! سيقدرون ذلك أكثر مما تعرفون.
  • كن واضحا جدا. "هذا المصات" ليست واضحة مثل "وجود اتصال شبكة متقطعة مزعج بعض الشيء ، أي فرصة يمكنك النظر في ذلك؟"
  • إذا كنت تعتقد أن تطبيقك سيتغير ، فاسأل المشرف من قبل على افتراض ستكون. قد "يرون" شيئًا لا تعرفه ، أو يعرفون شيئًا عن حدود الأداء للمعدات التي ستنتشر عليها.
  • إذا كان تطبيقك بحاجة إلى توليف ، ولكن لا يبدو أنه مشكلة في التعليمة البرمجية ، فاطلب بشكل جيد كيفية أداء الخوادم. يميل Sysadmins أجهزتهم مع الرعاية المحبة وليسوا سعداء عندما يكونون "مريض" أو "يسيئون التصرف". سوف يسأل جيد تحويل جهاز المريض حول (أو الحصول عليها إصلاح / استبدال).
  • (كما هو مذكور في مكان آخر) قم بتوثيق الإعدادات التي تستخدمها ، و لماذا ا كنت تستخدمها. مجرد وجود "تحديد خانة الاختيار X" أو "uncomment config file line Y" لا يساعد. يمكنك ضبط الخيار الذي يمحو جميع بياناتك على إعادة التشغيل التالية لكل ما تعرفه.
  • إذا لم يكن لديك الوقت لتوثيق الإعداد على الورق ، فحاول توثيقه في النظام إن أمكن. باستخدام ملفات التهيئة ، يجب أن يكون هذا تقريبًا ممارسة قياسية - يجب تغيير كل تغيير في الإعدادات ، مع الأحرف الأولى ، والتأثير المتوقع لهذا الإعداد ، والسبب لماذا ا تم تغييره (راجع النقطة السابقة). هذه العادة الصغيرة أنقذت لحم الخنزير المقدد أكثر من مرة خلال وقت الحسم. "لماذا فعلنا ذلك؟" "لأننا فوضنا السياسة X ، والإطار Y يمنحنا السلوك الذي نحتاجه للسياسة X".
  • بيرة. أو كولا. أو حتى الماء. المشروبات هي دائما موضع ترحيب. يجري مسؤول النظام هو العمل العطشى.

27



بالنسبة إلى ملف توثيق / تغيير ملف التهيئة ، أوصي بوضع جميع ملفات التهيئة في نظام التحكم في الإصدار. من المفترض أن يكون ذلك سهلاً للغاية بالنسبة للمبرمجين ، لأنهم يأملون بالفعل في استخدام هذا النظام لشفرة المصدر الخاصة بهم. إذا قاموا أيضًا بإضافة تعليق كلما قاموا بإجراء تغيير ، فسيكون من السهل العودة إلى التاريخ ومعرفة ما تم تغييره عندما ولماذا. - Anders Sandvig
+1 لهذا ، لأنه "يغلق الحلقة" على إدارة التغيير. اقتراح عظيم. - Avery Payne
اقتراح ممتاز لتقديم تقارير أخطاء واضحة. لا شيء يحبطني أكثر من أن أخبرك أن هناك مشكلة ، ومعرفة أنه يمكن أن يؤثر على الكثير من الناس ، يجب أن أقوم بتفصيل التفاصيل من مبرمج غير مهتم. - Dave Cheney


الأمن ليس بعد ثانوي. في حين أن التطبيق المخترق يمكن أن يجعل المبرمج يبدو غير كفؤ ، فهو (على الأقل) عطلة نهاية أسبوع تم إنفاقها في التحقق ، والتنظيف ، و / أو الاستعادة من النسخ الاحتياطية لمسؤول النظام sysadmin.

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

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


23





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

  • إيثار ريال، لمشاهدة شفرتك تعمل بطريقة علبة سوداء ، حزمة حسب الحزمة
  • أدوات للاتصال مباشرة بخدمات الشبكة:
    • Telnet أو netcat أو socat لاتصالات عادي عبر TCP أو UDP
    • بينسل لنفس الشيء مع التشفير (تلميح: حاول openssl s_client -connect target-host:port في وقت ما) ، للاتصال يدويًا بخدمات الشبكة
  • حفر (في حزمة BIND 9) لتصحيح أخطاء الاسم
  • القدرة على تحديد الجزء من رصة الشبكة التي فشلت بناءً على التوقيت وخصائص أخرى لاتصال فاشل
  • ربما HTTPFox و / أو Firebug

17



+1. يجب على أي مطور يكتب تطبيقًا يعتمد على أداء الشبكة الصلبة قراءة "TCP / IP Illustrated v1" ، من قبل الراحل الراحل ريتشارد ستيفنز قبل البدء في التعليمة البرمجية. - Murali Suriar
شكرا لجميع اللاعبين upvotes. لقد أزعجني لسنوات لرؤية المبرمجين في حالة توقف عاجز بمجرد فشل الشبكة الأساسية. وهذه الأيام ، كل البرامج تقريبًا هي برمجة الشبكات. - jhs


معرفة كيفية استكشاف المشاكل.

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

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


14



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


توثيق كل ما تستطيع. لا يمكن أن تخبرك كم مرة يعتقد مسؤول النظام الأخير أنه سيكون لطيفًا عدم توثيق شيء ما لـ "أمن الوظيفة" أو شخص ما يريد فقط الدخول والخروج. تماما مثل المبرمج يجب أن يترك تعليقات جيدة ، يجب أن sysadmins الوثيقة. رسم تخطيطي للطوبولوجيا سيكون لطيفًا أيضًا.


8