لماذا يجب أن يصبح مسؤولو النظام مهندسين لـ DevOps


لا يوجد وقت أفضل للتعلم في الحياة من اليوم.

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

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



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

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

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

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

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

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

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

وبالتالي ، إذا كنت تريد أن تتعلم الأتمتة ، فأنت بحاجة إلى إتقان بعض البرمجة على الأقل ، حتى لو لم تكن مطورًا ، لأن أتمتة البنية التحتية في DevOps في هذه المرحلة من تطويرها تتطلب هذه المهارة.

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

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

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

ولكن ما مدى صحة هذا البيان؟

مسؤول النظام: واحد في مجال المحارب


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

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

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

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

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

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

DevOps: التطوير والخدمة واحدة


DevOps هي نوع من فلسفة عمليات التطوير والصيانة. أصبح هذا النهج في عالم تكنولوجيا المعلومات مبتكرة حقا.

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

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

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

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

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

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

وآخر التفاصيل في هذه الآلية هو جيت . يعد العمل مع Git أحد المسؤوليات اليومية التقليدية لمسؤول النظام. يستخدم نظام التحكم في الإصدار على نطاق واسع من قبل المطورين والمتخصصين في DevOps وفرق Agile والعديد من الآخرين. إذا كان عملك مرتبطًا بدورة حياة البرنامج ، فستعمل بالتأكيد مع Git.

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

إذا كنت مسؤولاً عن النظام ، فأنت بحاجة إلى معرفة Git بشكل أفضل ، وفهم كيفية إنشاء التحكم في الإصدار وتذكر الأوامر الشائعة: حالة git ، و git -m-git ، و git-add-git ، و git pull ، و git push ، و git rebase ، و git branch ، و git diff ، وغيرها . هناك العديد من الدورات والكتب على الإنترنت لمساعدتك على تعلم هذا الموضوع من نقطة الصفر وتصبح محترفًا بمهارات محددة. هناك أيضًا أوراق غش رائعة تحتوي على أوامر Git ، لذا فإن حشرها جميعها أمر اختياري ، ولكن كلما زاد استخدامك Git ، أصبح الأمر أسهل بالنسبة لك.

استنتاج


في النهاية ، عليك أن تقرر ما إذا كنت بحاجة إلى أن تصبح متخصصًا في DevOps أو الأفضل أن تظل مسؤولًا عن النظام. كما ترون ، يتطلب الانتقال التدريب ، ولكن كلما بدأت ، كان ذلك أفضل. اختر لغة البرمجة وأدوات الدراسة مثل Git (التحكم في الإصدار) ، Jenkins (CI / CD ، التكامل المستمر) و Ansible (التكوين والأتمتة). أيا كان الخيار الذي تختاره ، لا تنس أنك بحاجة إلى التعلم وتحسين مهاراتك باستمرار.

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


All Articles