أدوات DevOps التي يجب أن يتعلمها الجميع في عام 2020

ابدأ في استخدام أفضل أدوات DevOps اليوم!

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

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

دعونا نقسم أدوات DevOps إلى فئات ونقارنها مع نظائرها:

  • أدوات التطوير والبناء
  • أدوات أتمتة الاختبار
  • أدوات لتنظيم النشر
  • أدوات وقت التشغيل
  • أدوات التعاون.

التنفيذ الناجح والمدروس ممارس DevOps يتضمن أدوات من جميع المجموعات الخمس المذكورة أعلاه. قم بتحليل مجموعة الأدوات الحالية في مشروعك حتى لا يفوتك عنصر مهم في مسار CI/CD.

أدوات التطوير والبناء

أدوات DevOps التي يجب أن يتعلمها الجميع في عام 2020
هذا هو أساس مكدس خط أنابيب CI/CD. كل شيء يبدأ هنا! يمكن لأفضل الأدوات في هذه الفئة إدارة تدفقات الأحداث المتعددة والتكامل بسهولة مع المنتجات الأخرى.

في هذه المرحلة من دورة حياة التطوير، هناك ثلاث مجموعات من الأدوات:

  • نظام التحكم في الإصدار (SCM)
  • التكامل المستمر (CI)
  • إدارة البيانات

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

أداة SCM + CI رقم 1

الفائز: GitLab وGitLab-CI

أدوات DevOps التي يجب أن يتعلمها الجميع في عام 2020
أفضل أداة في دورة DevOps لعام 2020 هي بلا شك GitLab، وستستمر بالتأكيد في قيادة الابتكار في المستقبل القريب.

تتمثل الوظيفة الرئيسية لـ GitLab في توفير إدارة مريحة لمستودع Git. واجهة الويب بديهية وسهلة الاستخدام. يوفر GitLab كل ما تحتاجه في إصدار مجاني ويأتي كخدمة SaaS ومحليًا (باستخدام مواردك الخاصة لاستضافة البرامج).

لم تستخدم أي أداة SCM أخرى التكامل المستمر (CI) مباشرة في مستودعك، وكان GitLab يفعل ذلك لفترة طويلة. لاستخدام GitLab-CI، يجب عليك إضافة ملف .gitlab-ci.yml إلى جذر التعليمات البرمجية المصدر، وأي تغييرات على المشروع ستؤدي إلى تشغيل الإجراءات بناءً على ما حددته بالضبط. يتم الاعتراف بجدارة بـ GitLab وGitLab-CI كقادة في مجال التكامل المستمر (CI-as-code).

الفوائد الرئيسية

  • الموثوقية - المنتج موجود في السوق منذ عام 2013؛ مستقر؛ دعما جيدا.
  • المصدر المفتوح - لا يحد الإصدار المجاني من GitLab من الوظائف الأساسية التي تحتاجها فرق التطوير. توفر حزم الخدمات المدفوعة ميزات إضافية مفيدة للشركات ذات الأحجام والاحتياجات المختلفة.
  • Engrained CI - لم تقم أي أداة أخرى في السوق ببناء تكامل مستمر مباشرة في SCM مثل GitLab-CI. يضمن استخدام Docker إنشاءات معزولة خالية من المتاعب، وتسهل التقارير المضمنة تصحيح الأخطاء. لا نطلب تكاملًا معقدًا وإدارة أدوات متعددة في نفس الوقت.
  • عمليات تكامل غير محدودة - يُسهل GitLab عملية دمج جميع أدوات DevOps التي تحتاجها. وهذا يضمن أن فرق التطوير والصيانة لديها مصدر واحد للمعلومات حول تطبيقها في أي بيئة.

المنافسين

شارك في المعركة لكنه لم ينتصر

هناك أدوات شائعة أخرى في هذه الفئة، لكنها ليست بجودة GitLab. ولهذا السبب:

GitHub جيثب: - يعد هذا نظامًا ممتازًا للتحكم في إصدار SaaS للشركات الصغيرة والمراحل الأولى من التطوير. بالنسبة للشركات الكبيرة التي من المهم لها الاحتفاظ بعناوين IP على شبكتها الخاصة، كان الحل الوحيد من GitHub هو الجهاز الظاهري .OVA دون دعم أنظمة التوفر العالي. وهذا يجعل الصيانة المحلية صعبة؛ علاوة على ذلك، فإن نطاق .OVA مناسب فقط للشركات متوسطة الحجم، وإلا فسوف يتعطل الخادم ببساطة تحت ضغط أكبر. إن الافتقار إلى إجراءات GitHub (حتى وقت قريب وليس في إصدار محلي بعد) أو CI-as-code يعني أنك بحاجة إلى اختيار أداة CI منفصلة ثم إدارة هذا التكامل. أخيرًا، يعد GitHub أغلى بكثير من أي إصدار من GitLab.

جنكينز — على الرغم من أن Jenkins يعتبر المعيار بين أدوات التكامل المستمر بشكل افتراضي، إلا أنه كان يفتقر دائمًا إلى إمكانات التحكم في الإصدار. اتضح أنك تستخدم Jenkins بالإضافة إلى نوع من أدوات SCM. يكون الأمر صعبًا للغاية عندما يتمكن GitLab من القيام بالأمرين معًا. تصميم UX المتوسط ​​غير مناسب لتطبيقات الويب الحديثة ويترك الكثير مما هو مرغوب فيه.

بيتبوكت/الخيزران - يجب أن أعترف به باعتباره خاسرًا تلقائيًا: لماذا يوجد أداتان بينما يقوم GitLab بكل شيء بشكل مستقل تمامًا. تدعم BitBucket Cloud وظيفة GitLab-CI / GitHub Action، ولكن لا يمكن لأي شركة أكبر من شركة ناشئة تنفيذها بسهولة. خادم BitBucket المحلي لا يدعم حتى خطوط أنابيب BitBucket!

#1 أداة إدارة البيانات

الفائز: FlywayDB

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

الفوائد الرئيسية

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

المنافسين

شارك في المعركة لكنه لم ينتصر

لا توجد أدوات كثيرة في هذا المجال. دعونا نلقي نظرة على بعض منهم:

LiquiBase — Liquibase يشبه FlywayDB. أرغب في إعداده أعلى Flyway إذا كان لدي شخص في فريقي يتمتع بخبرة أكبر في Liquibase.

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

أدوات أتمتة الاختبار

أدوات DevOps التي يجب أن يتعلمها الجميع في عام 2020
لنبدأ مناقشتنا لأدوات أتمتة الاختبار من خلال تصنيفها بناءً على هرم الاختبار.

يحتوي هرم الاختبار (الاختبارات) على 4 مستويات:

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

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

#1 أداة اختبار التكامل

الفائز: خيار

أدوات DevOps التي يجب أن يتعلمها الجميع في عام 2020
يجمع الخيار بين المواصفات ووثائق الاختبار في وثيقة حية واحدة. المواصفات محدثة دائمًا حيث يتم اختبارها تلقائيًا بواسطة Cucumber. إذا كنت ترغب في إنشاء إطار اختبار تلقائي من البداية ونموذج لسلوك المستخدم في تطبيق ويب، فإن Selenium WebDriver مع Java وCucumber BDD يعد طريقة رائعة لتعلم Cucumber وتنفيذه في المشروع.

الفوائد الرئيسية

  • نهج BDD (التطوير القائم على السلوك - "التطوير من خلال السلوك" بدلاً من نهج "التطوير القائم على الاختبار") - تم تصميم Cucumber لاختبار BDD، وقد تم إنشاؤه في الأصل لهذه المهمة بالذات.
  • التوثيق الحي - التوثيق دائمًا مؤلم! نظرًا لأن اختباراتك مكتوبة كرمز، يقوم Cucumber باختبار الوثائق التي تم إنشاؤها تلقائيًا للتأكد من مزامنة الاختبارات والوثائق.
  • الدعم - يمكننا الاختيار من بين العديد من الأدوات، ولكن لدى Cucumber الموارد المالية اللازمة ونظام دعم منظم جيدًا لمساعدة المستخدمين في أي موقف صعب.

المنافسين

شارك في المعركة لكنه لم ينتصر

ومن بين الأطر والأدوات الخاصة بالتكنولوجيا الأخرى، يمكن اعتبار الخيار وحده حلاً عالميًا.

أدوات الاختبار الشاملة

عند إجراء اختبار شامل، تحتاج إلى التركيز على نقطتين رئيسيتين:

  • الاختبار الوظيفي
  • اختبار الإجهاد.

في الاختبار الوظيفي، نتحقق مما إذا كان كل ما نريده يحدث بالفعل. على سبيل المثال، عندما أنقر على عناصر معينة في SPA (تطبيق صفحة واحدة)، املأ النماذج واختر "إرسال"، تظهر البيانات في قاعدة البيانات وتظهر الرسالة "نجاح!" على الشاشة.

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

سيكون غياب هذين النوعين من الاختبارات عائقًا كبيرًا في مسار CI/CD الخاص بك.

أداة الاختبار رقم 1 الشاملة. الاختبار الوظيفي

الفائز: صابون واجهة المستخدم برو

أدوات DevOps التي يجب أن يتعلمها الجميع في عام 2020
لقد كان SoapUI في مجال اختبار واجهة برمجة التطبيقات (API) لفترة طويلة منذ أن كانت خدمات الويب المستندة إلى SOAP هي المعيار. على الرغم من أننا لم نعد نقوم بإنشاء خدمات SOAP جديدة ولم يتغير اسم الأداة، فإن هذا لا يعني أنها لم تتطور. يوفر SoapUI إطارًا ممتازًا لإنشاء اختبارات وظيفية خلفية آلية. يمكن دمج الاختبارات بسهولة مع أدوات التكامل المستمر واستخدامها كجزء من خط أنابيب CI/CD.

الفوائد الرئيسية

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

المنافسين

شارك في المعركة لكنه لم ينتصر

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

أداة الاختبار رقم 1 الشاملة. اختبار الإجهاد

الفائز: بي.

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

الفوائد الرئيسية

  • توثيق شامل - لقد كان LoadRunner موجودًا في السوق لبعض الوقت، لذلك هناك العديد من الموارد عبر الإنترنت لمساعدتك على فهم كيفية إعداد اختبارات التحميل.
  • دعم البروتوكول - يدعم Load Runner كل شيء بدءًا من ODBC إلى AJAX وHTTPS وأي بروتوكول آخر غير تافه قد يستخدمه تطبيقك. نحن نحاول عدم استخدام أدوات متعددة لاختبار التحميل، لأن هذا لا يؤدي إلا إلى تعقيد العملية.

المنافسين

شارك في المعركة لكنه لم ينتصر

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

أدوات النشر

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

أولاً، دعونا نقسم جميع أدوات النشر إلى ثلاث فئات فرعية:

  • إدارة القطع الأثرية
  • إدارة التكوين
  • نشر.

#1 أداة إدارة القطع الأثرية

الفائز: رابطة

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

الفوائد الرئيسية

  • الدعم الفني - منتج موثوق؛ دعما جيدا.
  • مفتوح المصدر - الإصدار المجاني لا يحد من الوظائف الأساسية التي تحتاجها فرق التطوير.

#1 أداة إدارة التكوين

الفائز: Ansible

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

الفوائد الرئيسية

  • عديم الحالة - يتم تشغيل Playbook من جهاز النشر وتنفيذه على الخوادم المستهدفة. لا داعي للقلق بشأن حالة الكائن البعيد باستخدام أداة مثل Packer لإنشاء كائنات قابلة للنشر.
  • المصدر المفتوح - مثل CentOS، يتم دعم Ansible أيضًا بواسطة RedHat. فهو يساعد في الحفاظ على المجتمع ويوفر وحدات عالية الجودة وسهلة الاستخدام.
  • الاختبار باستخدام Molecule (إطار عمل Ansible) - نظرًا لأن إدارة التكوين عبارة عن تعليمات برمجية، مثل أي شيء آخر، فإن الاختبار ضروري. يعمل إطار اختبار الدور Ansible الخاص بـ Molecule بشكل لا تشوبه شائبة، مما يضمن أن التكوين بنفس الجودة ويتبع نفس خط أنابيب CI/CD مثل رمز التطبيق.
  • YAML - بالمقارنة مع الأدوات الأخرى، فإن YAML أسهل في الفهم. نظرًا لأن إدارة التكوين تمثل عادةً تحديًا جديدًا لأولئك الذين يطبقون ممارسات DevOps، فإن البساطة هي الورقة الرابحة لها.

المنافسين

شارك في المعركة لكنه لم ينتصر

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

دمية - لم يكن لدى Puppet الكثير من المعجبين على الإطلاق، خاصة بالمقارنة مع Chef وAnsible. إنه أمر رائع لتوفير الأجهزة والعمل معها، ولكنه يفتقر إلى دعم إدارة التكوين الحديث لتطبيق الويب.

أداة النشر رقم 1

الفائز: Terraform

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

الفوائد الرئيسية

  • حيادية البيئة - يستخدم Terraform وظائف تعمل كواجهة بين كود Terraform وجميع واجهات برمجة التطبيقات والمنطق الداخلي للتواصل مع موفر البنية التحتية. وهذا يعني أنني سوف أتقن أداة واحدة فقط ومن ثم يمكنني العمل في أي مكان.
  • المصدر المفتوح - من الصعب التغلب على الأدوات المجانية! دعم المجتمع على أعلى مستوى.

المنافسين

شارك في المعركة لكنه لم ينتصر

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

أدوات وقت التشغيل

أدوات DevOps التي يجب أن يتعلمها الجميع في عام 2020

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

الفئات الفرعية لأدوات وقت التشغيل:

  • X كخدمة (XaaS)
  • تزامن
  • رصد
  • تسجيل.

أداة X كخدمة رقم 1

الفائز: أمازون ويب سيرفيسز

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

الفوائد الرئيسية

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

المنافسين

شارك في المعركة لكنه لم ينتصر

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

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

# 1 أداة التنسيق

الفائز: فتح

أدوات DevOps التي يجب أن يتعلمها الجميع في عام 2020
من المحتمل أنك تستخدم Docker أو حاويات أخرى في حزمة التطبيقات الخاصة بك. تعد التطبيقات بدون خادم رائعة، ولكنها قد لا تناسب كل بنية. إن تشغيل الحاويات بدون نظام أساسي للتنسيق لن ينجح ببساطة. Kubernetes Core (K8s) لا مثيل له من حيث الأمان والأدوات. OpenShift هو النظام الأساسي الوحيد المستند إلى Kubernetes الذي يمكنه جمع Source2Image، ويدعم النشر الآلي إلى البودات، ويدعم التتبع والمراقبة. يمكن تشغيل OpenShift محليًا أو في السحابة أو محليًا وفي السحابة في نفس الوقت.

الفوائد الرئيسية

  • الأمان المدمج - قد تتطلب إدارة أمان K8s درجة متقدمة. يجب التفكير بعناية في كل التفاصيل وأخذها بعين الاعتبار! تعمل آليات الأمان المضمنة افتراضيًا في OpenShift على تخفيف العبء عن المطورين وتوفير نظام أساسي أكثر أمانًا للتطبيقات.
  • حل الكل في واحد - على عكس K8s الأساسية، التي لا تتضمن أدوات موازنة التحميل بشكل افتراضي، فإن OpenShift يحتوي على كل شيء. يمكنني استخدامه لإنشاء واستضافة الحاويات، وتشغيل أدوات CI/CD، وإدارة العمليات الخارجية، وإدارة المفاتيح، وغير ذلك الكثير. على الرغم من أن واجهة المستخدم الرسومية لا تزال بعيدة عن الكمال، إلا أن النهج القائم على واجهة برمجة التطبيقات (API) يعني أنه يمكن وصف كل شيء في برنامج نصي. على عكس واجهات المستخدم الرسومية الأخرى لأجهزة K8، فإن OpenShift يجعل تعلم أساسيات Kubernetes أسهل بكثير. لا تحتاج حتى للحصول على درجة علمية!

المنافسين

شارك في المعركة لكنه لم ينتصر

عامل ميناء سرب - حاول Docker Swarm تبسيط K8s من خلال التخلص من العديد من الأشياء. إنه أمر رائع بالنسبة للتطبيقات الصغيرة، ولكنه لا يعمل بالنسبة لتطبيقات المؤسسات. بالإضافة إلى ذلك، تتبع حلول مثل AWS ECS نهجًا مشابهًا ولكنها تسهل العمل مع الخدمات الأخرى التي يمكنني أيضًا التفاعل معها (Lambda، وIAM، وما إلى ذلك).

أداة المراقبة رقم 1

الفائز: بقايا جديدة

أدوات DevOps التي يجب أن يتعلمها الجميع في عام 2020
الإصدارات المبكرة من New Relic فعلت شيئًا واحدًا جيدًا - مراقبة APM (مراقبة أداء التطبيق). إنها الآن أداة مراقبة كاملة الميزات تسمح لك بمراقبة الخادم والحاوية وأداء قاعدة البيانات ومراقبة تجربة المستخدم النهائي وبالطبع مراقبة أداء التطبيق.

الفوائد الرئيسية

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

المنافسين

شارك في المعركة لكنه لم ينتصر

Zabbix — نظام المراقبة الأول والمفضل لدي، لكنه بقي في الماضي بسبب عدم التطور في التقنيات السحابية وفي مجال مراقبة أداء تطبيقات APM. لا يزال Zabbix يقوم بمراقبة البنية التحتية للخادم التقليدي بشكل جيد، ولكن هذا كل ما في الأمر.

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

أداة التسجيل رقم 1

الفائز: Splunk

أدوات DevOps التي يجب أن يتعلمها الجميع في عام 2020
من الصعب التنافس مع Splunk! لقد ظل لفترة طويلة رائدًا في قطع الأشجار، واستمر في القيام بذلك بشكل أفضل من أي شخص آخر. من خلال العروض المحلية وعروض SaaS، يمكنك استخدام Splunk في أي مكان. الجانب السلبي الكبير هو سعره: لا يزال Splunk باهظ الثمن!

الفوائد الرئيسية

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

المنافسين

شارك في المعركة لكنه لم ينتصر

ELK Stack (ElasticSearch وLogStash وKibana) "يبدو أن هذه الأدوات هي المفضلة لأنك لا تحتاج حتى إلى بيع كبدك لاستخدامها." ومع ذلك، مع نمو مجموعة السجلات وزيادة عدد التطبيقات الموجودة على اللوحة، يصبح العمل أكثر صعوبة. مقارنةً بـ Splunk، مع ELK Stack قضيت وقتًا أطول بكثير في إعداد الأدوات قبل إنشاء أي لوحات معلومات أكثر من أي وقت مضى.

أدوات التعاون

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

الفئات الفرعية لأدوات التعاون:

  • تتبع المهمة
  • ChatOps
  • الوثائق.

#1 أداة تتبع المشكلات

الفائز: جيرا

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

الفوائد الرئيسية

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

المنافسين

شارك في المعركة لكنه لم ينتصر

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

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

أداة ChatOps رقم 1

الفائز: MatterMost

أدوات DevOps التي يجب أن يتعلمها الجميع في عام 2020
التفسير: ولعل المفاجأة الكبرى بالنسبة لك في اختياري، وهذه أخبار جيدة! اكتسب MatterMost شعبية من خلال الاستفادة من أفضل الأدوات السابقة ووضعها موضع التنفيذ. هذا مهم جدًا للشركات: يتيح لك MatterMost التحكم في بياناتك ويساعدك أيضًا على دمجها مع الأدوات التي تعمل محليًا. لم نعد بحاجة إلى الخروج من جدار الحماية للتحقق من محادثات العمل.

الفوائد الرئيسية

  • المصدر المفتوح – يعمل الإصدار المفتوح المصدر من MatterMost بشكل رائع لكل من الفرق المتوسطة والكبيرة. على عكس خطة Slack المجانية، التي تحذف سجل رسائلك، فإن تشغيل خادمك الخاص يعني أنك تحتفظ بجميع بياناتك.
  • عمليات التكامل - نظرًا لأن واجهة برمجة التطبيقات (API) تعتمد بنسبة 100% تقريبًا على Slack API، فيمكن استخدام جميع عمليات تكامل Slack تقريبًا مباشرة مع MatterMost.

المنافسين

شارك في المعركة لكنه لم ينتصر

فترة ركود — Slack أمر رائع، لكن هؤلاء الأشخاص قد تطوروا كثيرًا لدرجة أنهم بدأوا في البحث عن الربح. تقترب مرحلة الاسترداد من الأعمال، مما يزيل قيمتها الرئيسية: قدمت Slack خدمات مجانية؛ أهم عيب في النسخة المجانية هو حذف سجل الدردشة.

فرق مايكروسوفت — حاول دمج أحد منتجات Microsoft مع منتج غير مملوك لشركة Microsoft... حظًا سعيدًا! هذا كل ما يجب أن أقوله عن هذه الأداة!

أداة التوثيق رقم 1

الفائز: احتشاد

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

الفوائد الرئيسية

  • سهولة التشغيل - يمكن أن تكون معظم الأدوات المستقلة معقدة بعض الشيء في الإعداد والتشغيل وتتطلب بعض المعرفة للمحافظة عليها. يعمل Confluence Server بشكل رائع خارج الصندوق لعدد 10 أو 10,000 مستخدم.
  • المكونات الإضافية - مجد لـ Confluence للحصول على تنقل جميل وسهل الاستخدام خارج الصندوق، والقدرة على إضافة مكون إضافي لكل شيء تقريبًا يفتح إمكانات تشبه Wiki.

المنافسين

شارك في المعركة لكنه لم ينتصر

اقرأ المستندات - رائع بالنسبة للمصادر المفتوحة، ولكن لا تفكر في تخزين المعرفة المهمة هنا.

تخفيض السعر - رائع لتوثيق التعليمات البرمجية، ولكن من الصعب نشر البنية أو العمليات أو أنواع الوثائق الأخرى بسبب تنسيق MarkDown المحدد.

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

تلخيص

هناك المئات من أدوات DevOps في السوق، مما يجعل من الصعب معرفة أي منها يجب استخدامه ومتى يجب تنفيذه. اتبع هذا الدليل البسيط لاختيار أدوات DevOps لمسار CI/CD كامل.

تأكد من تحديد الأدوات من جميع الفئات الخمس:

  • أدوات التطوير والبناء
  • أدوات أتمتة الاختبار
  • أدوات النشر
  • أدوات وقت التشغيل
  • أدوات التعاون.

التوصية الرئيسية: أتمتة كل شيء!

شكرا زاك شابيرو!

المصدر: www.habr.com

إضافة تعليق