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

للتوضيح ، سنبدأ بمرحلة المراقبة. يتضمن ذلك مراقبة الخوادم الخاصة بك ، ومراقبة التحليلات ، وتحليل السجلات ، وتحديد المشكلات المتعلقة بقاعدة التعليمات البرمجية الخاصة بك. في حين أن جزءًا كبيرًا من هذا مرتبط بالشفرة ، فإن الكثير منه يقع على الجانب التجاري من الأشياء أيضًا. هل تحقق أهدافك بشكل فعال؟ هل عملاؤك سعداء؟ تدور هذه المرحلة حول اكتشاف الخطأ حتى تتمكن من تحديد الأهداف المناسبة. تتضمن أدوات المراقبة الشائعة Nagios و AWS CloudWatch وبرامج التحليلات مثل Google Analytics.
ربما تحصل على تذكرة مباشرة من العميل ، وتبدأ من مرحلة التخطيط. هذا هو المكان الذي ستجلس فيه مع المطورين الرئيسيين وتناقش ما يجب القيام به لإكمال التذكرة. إذا كنت تستخدم برنامجًا مثل Jira ، فمن المحتمل أن تقسم بطاقة كبيرة إلى قصص وقضايا فردية يمكن تتبعها بسهولة أكبر وتخصيصها للمطورين الفرديين.إذا كنت تخطط لسباق رمز سريع للأسبوع أو الأسبوعين المقبلين ، فسترغب في وضع خطتك بوضوح لتقليل الوقت الذي تقضيه في إعادة تكرار الشفرة.
بدلاً من الاختبار والبناء مرة واحدة فقط عند الانتهاء من كل شيء ، في بيئة DevOps ، سيرسل كل مطور بشكل مثالي التغييرات إلى التحكم في المصدر عدة مرات في اليوم ، كلما اكتملت المشكلات أو تم الوصول إلى معلم ثانوي. يسمح ذلك لمرحلتي الإنشاء والاختبار بالبدء مبكرًا ، وتأكد من عدم وجود مطور بعيدًا جدًا عن رأس التحكم في المصدر الرئيسي. تدور هذه المرحلة في الغالب حول الإدارة المناسبة للتحكم في المصدر ، لذا فإن وجود خدمة git فعالة مثل GitHub أو Gitlab أو BitBucket أمر بالغ الأهمية للحفاظ على استمرار التكامل بسلاسة.
لست مضطرًا لنشر كل التزام بالإنتاج على الفور ، ولكن عمليات النشر الآلية السريعة هي جزء رئيسي من القدرة على دفع الإصدارات السريعة. بالإضافة إلى ذلك ، فإنه يأخذ بعض الضغط على فريق العمليات لديك ، مما يسمح لهم بالتركيز على أشياء أكثر أهمية من تحديث الخوادم يدويًا برمز جديد.
بمجرد نشر التغييرات الجديدة ، تبدأ الدورة مرة أخرى. ربما تتسبب هذه الميزة الجديدة التي أضفتها في عمل خادم قاعدة البيانات المرحلي لوقت إضافي ، وقد تحتاج إلى تمييزها لمراجعة الأداء وإصلاحها قبل النشر في الإنتاج. إذا كان كل شيء يتدفق بشكل صحيح ، فإن DevOps يتوقف عن كونه سلسلة ثابتة من الخطوات ويصبح ببساطة ثقافة يتبعها الجميع بشكل طبيعي.
التكامل المستمر / خطوط أنابيب التسليم المستمر
الأتمتة والأدوات هي جزء رئيسي من أي بيئة DevOps. ربما تكون أكبر أداة لدينا هي خط أنابيب التكامل المستمر / التسليم المستمر (CI / CD). هذه عملية آلية تبدأ بكود المصدر وتعالج عملية البناء والاختبار والنشر على الخوادم.
AWS's CodePipeline هو مثال جيد على ذلك. عندما يتم اكتشاف تغيير في التحكم بالمصادر (إما GitHub أو BitBucket أو AWS CodeCommit) ، يتم إرساله إلى AWS CodeBuild للبناء والاختبار. بدلاً من ذلك ، يتم استخدام Jenkins كثيرًا للتعامل مع مرحلة البناء هذه.

عادة ، بمجرد اكتمال البناء ، سترغب في إرساله إلى بيئة اختبار قبل التوجه مباشرة إلى الإنتاج. ومع ذلك ، فإن أتمتة عمليات النشر لكل من خوادم الاختبار والإنتاج ستؤدي إلى تسريع أوقات التكرار بشكل كبير. في خط أنابيب AWS ، يتم التعامل مع هذا بواسطة CodeDeploy. يمكن لـ Jenkins أيضًا التعامل مع النشر ، بالإضافة إلى برامج مثل Ansible.
بشكل عام ، يمكن لخط أنابيب CI / CD أتمتة معظم تدفق DevOps ، من الإنشاء إلى النشر ، مما يجعله جزءًا مهمًا لأي فريق يتطلع إلى العمل بكفاءة.