You are currently viewing ماهو ديف أوبس DevOps وفوائده؟
ديفوبس, devops

ماهو ديف أوبس DevOps وفوائده؟

يعد تطوير البرمجيات بالكامل أمرا غاية في التعقيد في الكثير من الأحيان وذلك لأسباب متعددة. ولغرض حل هذا المشكل تمت نشأة الـDevOps.

ماهو DevOps؟

الـ ديف أوبس أو DevOps هو مصطلح تقني شائع في مجال برمجة وتطوير المواقع والتطبيقات. تشتق كلمة الـ DevOps بالإنجليزية من كلمتان:

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

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

مميزات الـ ديف أوبس DevOps

لدى الـ DevOps الكثير من الفوائد والمميزات ويمكن أن نتطرق الى بعضها:

  • يسرع كثيرا مدة الإنجاز.
  • يقلل من إتسهلاك الموارد والميزانية.
  • يقلل من مجهود العلم.
  • ينظم فريق العمل.
  • يضمن جودة عالية للمنتوج.
ديفوبس

نشأة الـDevOps، والمبادرات المماثلة:

نشأ مصطلح الديف أوبس سنة 2008 وبالتحديد خلال مؤتمر تورونتو في دردشة حول منهجية الأجايل أو الـ Agile والتي قادها كلا من باتريك دوبوا ويينس واسنا.

خلال العقد التالي تم تطوير المزيد من المبادرات الشبيهة لـ DevOps . ومنها:

  1. OpsDev
  2. WinOps
  3. BizDevOps

مراحل الـ DevOps

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

دورة حياة تطوير البرمجيات والأدوات المستعملة في الـ DevOps

قبل أن نتطرق لحزمة الأدوات، اسمحوا لي أن أوضح لكم أن الـDevOps بحد ذاته لا يمثل حزمة أدوات أو برامج بل يمثل منهجية أو مجموعة من الممارسات أو المراحل. وهذه الأخيرة هي التي قد يعتمد فيها المطور أداة أو أدوات معنية. وهذا يعني أيضا أن ممارسة معية في DevOps قد يعتمد فيها بحد ذاتها خيارات متعددة من الأدوات.

الأدوات التي قد نستعملها في أسلوب الديف أوبس تعتمد بشكل مباشر على كل مرحلة من مراحل الـ DevOps.

مرحلة التخطيط

في هذه المرحلة يتم فيها تحديد الهدف والمتطلبات الضرورية لتحقيقه. يتم فيها أيضا دراسة الجدوى وتاريخ الإصدار.. كل هذه المعلومات يتم توثيقها في أداة معينة مثل: الـ Jira و الـ Confluence الخاصة بأتلاسيان (Atlassian).

مرحلة التطوير

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

لكي نقوم بهذه المهام يقدم لنا المجتمع أدوات متعددة مثل الـ Github و الـ Gitlab و الـ Bitbucket.

مرحلة التجربة أو التدقيق

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

ويمكن تسليط الضوء على مجموعة من الأدوات التقينة التي تمكننا بالقيام بهذه المهام:

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

مثلا يمكن استعمال أداة البوستمان (Postman) لعمل تجارب على API للتأكد بأن الباكند يجيبنا بشكل جيد عند عمل طلبات http بالأفعال GET و POST الخ.. ولعمل تجارب أوتوماتيكية يجب برمجتها بمكتبة الكوكومبر (Cucumber) إذا كانت التجارب على الباكيند والسيلينيوم (Selenium) إذا كانت على الفرونتند. أما لبرهنة ضمان جودة الكود فيمكن الإستعانة بالسونار كيوب (SonarQube).

مرحلة إنشاء الحزمة

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

لإنشاء هذه الحزم يتم غالبا الإستعانة بأداة الـ جينكينز (Jenkins) الذي سيساعدنا في أتمتة المهام الخاصة بالتسليم المستمر. ويدعم الجينكينز أدوات التحكم في الإصدارات كـالـ Git. فمثلا عند عمل دمج للفروع (merge) أو دفع (push) لفرع التطوير الرئيسي (develop branche) من خلال الGitlab يقوم جينكينز بإلقاء مهمة أتوماتيكية يتم فيها عملية التجميع والإنشاء والتثبيت والنشر للحزمة.

عندما تكون هذه الحزم جاهزة يتم تخزينها في مستودع خاص لهذا الغرض. ويعد الـ Artifactory و Nexus من أشهر الأدوات في هذا المجال.

مرحلة تسليم ونشر الحزمة

يتم في هذه المرحلة بشكل عام تسليم ونشر حزمة الإصدار حسب شروط التسليم المقررة. ويعد الدوكر (Docker) والكيوبرنتس (Kubernetes) من أهم الأدوات في هذا المجال.

مرحلة الإعداد

تشمل كل المراحل السابقة كل ما يخص التطوير أو الـ Dev.

كل ما يأتي بعد مرحلة الإعداد يعد معالجات أو Ops. في هذه المرحلة يتم أعداد أدوات البنية التحتية مثل قواعد البيانات أو بعض الإعدادات الخاصة بالتطبيق لكي يعمل بدون مشاكل. ويعد الأنسيبل (Ansible) من أشهر الأدوات في هذا المجال.

مرحلة الرصد والصيانة

يتم في هذه المرحلة رصد المشاكل المتعلقة بعمل التطبيق عندما يكون قيد التنفيد. قد تكون على شكل Bugs أو إجابات الباكيند برمز حالة غير إعتيادي (على سبيل المثال: 500 internal server error)، أو مشاكل قد تخص البنية التحدية كحالة نفاد مساحة التخزين.

لتحليل مثل هذه المشاكل يمكننا الإستعامة بأداة الكيبانا (Kibana) التي تساعدنا بشكل كبير في تحليل السجلات أو Logs.

ولتوثيقها والإجابة عنها يمكننا الإستعانة بأداة الـ Jira أو الـ Mantis Bug Tracker.

خلاصة

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

أضف تعليقاً