سؤال كيف يمكن للأولاد الصغار تعلم واستخدام الدمية بفعالية؟ [مغلق]


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

منذ اتخاذ القرار أصبح رجال تكنولوجيا المعلومات لدينا متضايقين بعض الشيء أكثر من اللازم. أكبر اعتراضاتها هي:

  • "نحن لسنا مبرمجين ، نحن موظفون"
  • تتوفر الوحدات عبر الإنترنت ولكن العديد منها يختلف عن بعضها البعض ؛ يتم إعادة اختراع العجلات في كثير من الأحيان ، كيف يمكنك تحديد أي واحد يناسب الفاتورة.
  • إن الشفرة في الريبو ليست شفافة بالقدر الكافي ، لإيجاد كيف يعمل شيء ما لديهم لتكثيف من خلال المظاهر والوحدات التي قد تكون كتبوها حتى قبل فترة من الزمن ؛
  • يتطلب أحد البرامج الجديدة كتابة وحدة نمطية جديدة ، ويجب أن تكون الاتفاقيات مماثلة للوحدات الأخرى ، وهي عملية صعبة ؛
  • "دعونا نديرها ونرى كيف تعمل"
  • أطنان من "الامتدادات" غير المعروفة في الوحدات المجتمعية: "trocla" ، "augeas" ، "hiera" ... كيف يمكن لمواقعنا sysadmins تتبعها؟

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


106
2018-06-06 08:38


الأصل




الأجوبة:


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

بعض الملاحظات على نقاطك ...

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

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

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

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

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

  • لست متأكدًا من مدى الاعتماد على وحدات المجتمع. لقد فعلت ذلك بدء استخدام Augeas لبعض العمل، ونأسف لحقيقة أنها وظيفة اعتبرها أمرا مفروغا منه في CFEngine.

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

تذكر، هذا الموقع مورد جيد ، أيضًا.


101
2018-06-06 09:02



ذهبت من دون تجربة على دمية إلى بيئتي إدارة كاملة في أسبوعين شقة. أنا مسؤول عن 40 جهازًا افتراضيًا ، على الرغم من أن جميع الأجهزة تعمل بنظام التشغيل Ubuntu. تلك الأشياء المبسطة إلى حد ما. أنا مطور حسب المهنة. "التكيف أو أن تترك وراء" - أنا الآن devops + مسؤول النظام + مهندس. إجابة ممتازة! - François Beausoleil
أود أن أوصيهم بالبدء في نشر خدمات صغيرة ، أولاً في وقت مستقل ثم البدء في إجراء المزيد من الخوادم. لا يتعين عليّ العمل مع دمية ، ولكن لديّ VPS صغيرًا وقمت مؤخرًا بعمل وحدات الدمى الخاصة بي. إذا كانوا يرغبون في مواكبة بقية sysadmins في القرن الحالي ، فمن الأفضل أن يكونوا منفتحين. أفعل ذلك لأنني أحب ، وأظن أن الجميع لا يحب تعلم أشياء جديدة ، ولكن هناك شيء واحد مؤكد ، في الوقت الحاضر ، sysadmins أقرب إلى المطورين من أي وقت مضى. - Sergio Galvan
أنا أعمل في شركة صغيرة وأجري أيضا puppetd -t للاختبار على صندوقين قبل الضغط على جميع الخوادم. لا يفشل أبداً في أن يكون للزوجين شيئًا فريدًا يؤدي إلى فشل التحديثات الخاصة بي عليها. الدمى أسهل بكثير عندما يكون لديك بيئة متناسقة ومتناسقة للبداية. - jordanm
whwhite ، لقد عملت طريقي من خلال البرنامج التعليمي العرائس في مستنداتهم ، لكنني كنت أتساءل عن الكتاب الذي استخدمته عند التعلم؟ أشعر أن البرنامج التعليمي المقدم في المستندات يفتقد إلى شيء ما هو حفظ كل شيء من خلال النقر معي وأنا أعمل مع دمية على مضيفي الاختبار لمعرفة ما أفعله. تعديل: أو أي موارد إضافية يمكنك التوصية بها. شكر. - Mike Keller
MikeKeller أنا أحب ذلك في منصبي ... ولكن هذا المتاحة هنا. - ewwhite


في مهمة سابقة ، تم تكليفي بمهمة تنفيذ تطبيق تجريبي للعرائس. الآن ، لدي خلفية برمجة ، لكن ليس روبي ، لذلك ليس لدي الكثير من المشاكل كما يفعل الآخرون.

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

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

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

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

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

  • ANSIBLE: هذا جديد ، لكنه يستند إلى أوامر shell و ssh ، والتي قد تغريه إلى sysadmins التقليدية.
  • طاه: ربما مشكلتهم هو أسلوب التصريح ، وفي هذه الحالة سيكون الشيف أفضل إذا كان لديهم تجربة روبي.
  • SaltStack: تستند بايثون ، ومفتوحة المصدر
  • كفينغين: القديم والسريع والتقليدي - قد يربحهم على تلك الأسس.

29
2018-06-06 15:59



الشيء الجميل في ANSIBLE هو أنه يعمل عبر مسافات المجرة بدون أي تأخير في نقل البيانات! - Kalamane
شكرا لك على ذكر ANSIBLE. لم أكن على علم بها حتى الآن. - ewwhite
ردًا علىewwhite أنا ، نفسي ، اكتشفتها مؤخراً ، لكن الكثير عن ذلك جذب انتباهي. إذا لم يكن لدينا الكثير في الدمى بالفعل ، فسوف أجربه بالتأكيد. - Daniel C. Sobral


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

  1. أدرك أنك تقوم بتطوير برامج لا تعرفها أو لا تفعلها بشكل جيد. هذا متوقع لأنه جديد.
  2. البنية التحتية كرمز هي الحقيقة ، وبمجرد أن تحصل على الحدبة انها قوية جدا. سأدعو بعض المطورين ، أو نعرض لهم عملية التطوير الحالية (أو عدم وجودها) ، لا تأخذ الإهانة عندما تثير الدهشة ، وتأخذ اقتراحاتهم بجدية. إنني أوصي باستخدام أي نظام ومعالجة استخدام مطوريك إلا إذا كان ذلك غير مناسب تمامًا.
  3. وحدات الدمى الخارجية للدماء تمتص 90٪ من الوقت. كنت أقرأها. كنت أسرق الأفكار منهم. لن أسحبهم إلى نظامي بدون تعديلات كبيرة. ومع ذلك أود أن تسحب في stdlib العرائس الذي يضيف بعض وظائف لطيفة.
  4. يوغا و هييرا. تعلم هذين. الأول يسمح بالتحرير المعقد للملفات الموجودة في مكانها. والثاني هو مخزن بيانات خارجي.
  5. فصل رمز من البيانات. هذا هو واحد من المفاهيم الأصعب للتعلم. قيم Hardcoding مثل مراقبة Hosts في التعليمات البرمجية للنموذج الخاص بك سيئة. وضعهم في مخزن بيانات (db ، yaml (يستخدم Hiera هذا افتراضيًا) ، csv ، أيا كان) التي يمكن أن تستهلكها وحداتك أمر جيد. مثال على ذلك webapp يستخدم Mysql. ما يسمح به هذا هو القدرة على دفع الكود والبيانات بشكل منفصل. هذا يجعل عملية التطوير الخاصة بك أكثر بساطة.
  6. محلل الدمى التحقق من صحة و دمية من الوبر كجزء من عملية التحقق من الرمز أو قبلها. قد تكون اختبارات rspec فكرة جيدة بمجرد أن تصل إلى السرعة.
  7. اكتب نمط / دليل التعليمات البرمجية القياسية واستخدامها. "أين الرمز الذي يثبت Apache" مشكلة شائعة. إذا كانت الوحدات الخاصة بك في الغالب هي نفسها يجب أن تكون سهلة.

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


11
2018-06-06 18:04



نشكرك على اقتراحاتك ، خصوصًا augeas و hiera وهما مكونان بدأنا تطبيقهما ، وهذا جعلنا أكثر وعيًا ، حتى أننا واثقون من قدرات Puppet. إذا شكرا :-) - drumfire


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

يبدو وكأنه فكرة جيدة لبدء في وقت مبكر - الدمى هو أكثر من مجرد إدارة التكوين ، وهو شكل من أشكال التوثيق.

منذ اتخاذ القرار أصبح لدينا رجال تكنولوجيا المعلومات قليلا جدا   منزعجا قليلا في كثير من الأحيان.

انهم بحاجة الى تعديل الموقف.

"We're not programmers, we're sysadmins";

مرة أخرى ، الموقف. أنت- can- جعل ملف conf لخادم أليس كذلك؟ يمكنك أن تخفّفي الأشياء التي تشبه "templating / 'programmer" مثل احتياجاتك وتعقيداتك يتطور.

تتوفر الوحدات عبر الإنترنت ولكن العديد منها يختلف عن بعضها البعض ؛ عجلات   يتم إعادة اختراعها في كثير من الأحيان ، كيف يمكنك تحديد أي منها يناسب   مشروع قانون؛

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

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

هذا لا يبدو وكأنه مشكلة عميلة ، ولكن مشكلة تنظيمية أو وثائق أكثر من ذلك؟

يتطلب واحد خفي جديد كتابة وحدة جديدة ، يجب أن تكون الاتفاقيات   مماثلة للوحدات الأخرى ، وهي عملية صعبة ؛

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

"Let's just run it and see how it works"

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

أطنان من "الامتدادات" غير المعروفة في وحدات المجتمع: "trocla" ،   "augeas" ، "hiera" ... كيف يمكن sysadmins لدينا تتبع؟

postfix، exim، sendmail، mysql، postgresql، iftop، iptraf، perl، perl modules .. اختر ما تريد واستخدامه؟ أعتقد أن هذا الصوت أشبه شيء موقف مرة أخرى ...

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

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

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


7
2018-06-06 14:04



لمعلوماتك هذا يأتي من شخص ما - مجرد الانتهاء من الحصول على البنية التحتية جاهزة للفة. ﻟذا ، ﻟدﯾﻧﻲ ﺗﺟرﺑﺔ ﺟدﯾدة وﻻ ﯾﻣﮐﻧﻧﻲ اﻟﻘول ﺑﺄن اﻟوﻗت ﮐﺎن ﺿﺎﺋﯾًﺎ. - thinice
بصفتي كاتبًا حديثًا ، أتعرف على نفسي تمامًا في تعليقك. - Martijn Heemels
في حالتي ، كان التغيير في المواقف ضروريًا بالفعل. تحب العمليات الآلية وكثيرًا ما تكون نصوصًا ، لذا فهي في الغالب مسألة استخدام أدوات مختلفة. إنه شعور رائع أن ترى بيان الدمية الخاص بك يقوم بتكوين جهاز كامل أو خدمة جديدة من البداية. حقيقة أن الخطأ يمكن أن يؤثر على أجهزة متعددة في وقت واحد يتطلب التعود على اختبارات أكثر صرامة ، والتي يمكن أن تكون مزعجة ولكن من الواضح أنها شيء جيد. تجربة مع Vagrant ، rspec-puppet ، دمى الوبر ، Geppetto ، وفروع جيت وغيرها من الأدوات المجانية وستكتشف قريبا سير العمل المفضلة لديك. - Martijn Heemels
ساعدني العمل مع Puppet أيضًا في تعلم لغة Ruby ، ​​التي أصبحت تحل محل Bash كلغة أدوات النظام الافتراضية. - Martijn Heemels


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

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


5
2018-06-06 09:18



... لأننا نتوقع أن ينمو عدد خوادمنا بشكل كبير من الآن وحتى عام من الآن. المتطلبات؟ - Jeff Ferland
يعتمد الأمر فعلاً على مدى تأكد هذا التوقع وما إذا كان ما وضعته في مكانه سيظل مناسبًا في الوقت الذي تنشأ فيه الحاجة فعلاً. - JamesRyan
+1 "لاستخدام الحد الأدنى الذي يتطلبه النشر الخاص بك" - الكثير من القضايا العميلة لقد جئت في محاولة من جعل كل شيء تحكم العميل على النظام. - Sirex


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

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

ثانيًا ، بعد التوحيد القياسي لاستخدام الوحدات المدمجة ، بدأنا في استخدام Git و Atlassian's Crucible - مجانًا في حالة عدم الربح - بالمناسبة - لإجراء مراجعات لجميع تغييرات التهيئة. هذا يوفر الشفافية المطلوبة.

ثالثًا ، أتمتة الإعداد التلقائي لـ Puppet بحيث يمكن إضافة المضيفات الجديدة تلقائيًا مع مجموعة افتراضية من الخيارات. هناك عدة طرق لمعالجة هذا. نظرًا لأن لدي بالفعل بيئة Kickstart كاملة ، اخترت إضافة نص برمجي هناك.


5
2018-06-06 13:50





"نحن لسنا المبرمجين ، نحن مسؤولو النظام"

بلدي كيف تغير الزمن ، للأسوأ: كان greybeard مثلي متوقع أن تكون مبرمجًا أفضل من المبرمجين المحترفين ، وإلا لما تمكنت من المرور مدير النظام.

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

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

عودة إلى موضوع العرائس [، CFEngine ، الشيف]: بمجرد أن يضع المرء حلاً كهذا ، يخسر المرء. الجميع يخسر. لماذا ا؟ لأن من يأتي بهذه الفكرة غير قادر على تصميم إدارة التهيئة المغلفة في شكل حزم نظام التشغيل Kickstart [، JumpStart ، Automated Installer ، AutoYaST ، Ignite-UX ، NIM]. عندما يكون عليك استخدام أداة قرصنة آلية مثل Puppet (أو Chef ، أو CFEngine) ، فهذا يعني أنك تفتقر إلى التصميم و ل تنفيذ عملية من شأنها ، بنفس التصميم ، فرض البكر بالكامل وإضاءة الأنظمة المدارة ، مؤتمتة بالكامل وغير تفاعلية تمامًا.

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

كما ساعدني العمل مع Puppet في تعلم لغة Ruby ، ​​التي أصبحت تحل محل Bash كلغة أدوات النظام الافتراضية. "

لماذا تحتاج روبي ، عندما يمكن تضمين إدارة تكوين شاملة من طرف إلى طرف في أقسام التثبيت المسبق ، و postinstall ، و preremove ، و postremove من حزم نظام التشغيل ، فقط باستخدام برامج Bourne shell ، و AWK ، و sed؟ أن يذهب شخص ما إلى طول تعلم لغة روبي الباطنية ، ولهجة في سياق العرائس ، هو أمر غير ضروري على الإطلاق. إن مشكلة إدارة التكوين قابلة للحل بسهولة (و إلى الذكاء ، قد تم حلها) مع برامج shell و AWK ، و sed صغيرة (1) هنا وهناك كغراء.

إنه شعور رائع أن ترى بيان الدمية الخاص بك يقوم بتكوين جهاز كامل أو خدمة جديدة من البداية.

إنه شيء أكثر برودة يراها من قبل Kickstart أو AutoYaST أو JumpStart ، دون سطر واحد من التعليمات البرمجية، والقدرة على الاستعلام عن نظام التشغيل باستخدام بنيت في الأدوات ، دون الحاجة إلى أي برنامج مقصور على فئة معينة أو إضافية، لا يوجد معمارية العميل-الخادم المطلوبة (SSH أكثر من جيد ، أكثر من جيد) ، ورؤية نظام التشغيل الخاص بك على دراية بكل تغيير يتم إجراؤه عليه.

5. رمز منفصل من البيانات. هذا هو واحد من المفاهيم الأصعب للتعلم. قيم Hardcoding مثل مراقبة Hosts في التعليمات البرمجية للنموذج الخاص بك سيئة. وضعهم في مخزن بيانات (db ، yaml (يستخدم Hiera هذا افتراضيًا) ، csv ، أيا كان) التي يمكن أن تستهلكها وحداتك أمر جيد. مثال على ذلك webapp يستخدم Mysql. ما يسمح به هذا هو القدرة على دفع الكود والبيانات بشكل منفصل. هذا يجعل عملية التطوير الخاصة بك أكثر بساطة.

... أو يمكنك فقط قالب ملفات التكوين الخاصة بك مع متغيرات shell ، حتى backquotes (على سبيل المثال ls -1 ...) وكتابة برنامج نصي يستخدم shell AWK لاستدعاء eval (1) وتوسيع كل المتغيرات في القالب ، وبالتالي الاستفادة من المحلل اللغوي القوي نفسه الذي يحتوي على الأصداف المدمجة. لماذا يجعل الأمر معقدًا ، في حين أنه يمكن أن يكون بسيطًا حقًا؟ أين ستخزن قيم التكوين؟ لماذا ، في أي مكان تفضله ، على سبيل المثال pkginfo (4) ملفات ، أو قاعدة بيانات مثل Oracle ، أو إلى حد كبير في أى مكان. لا حاجة للحلول ultracomplex. المكتبة التي أذكرها أعلاه يمكن أن تكون ببساطة مع مصدر من أقسام التثبيت المسبق أو التثبيت المسبق في حزم نظام التشغيل ، وبالتالي إزالة التكرار والاستفادة من جزء مركزي من الشفرة ...

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


4
2018-02-11 12:28



يبدو أنك قد نسيت إجابتك على سؤال المؤلفين. - M. Glatki
يبدو أن هذه الإجابة هي في المقام الأول مناقشة حول الآراء والمواقف والأدوات ، ولا تعالج حقًا السؤال المطروح. - JonathanDavidArndt