8 التحديات الرئيسية في اعتماد DevOps: الجزء 2 - الحلول

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

التغيير أصعب في البداية ، الأكثر فوضى في المنتصف والأفضل في النهاية. - روبن س. شارما

1. صنع وظيفة الثقافة وفقًا لمبادئ DevOps

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

التعلم ومجتمعات الممارسة

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

قاعدة معارف DevOps والأسئلة الشائعة

يمكن لفرق DevOps إنشاء قاعدة معرفية أو أسئلة متكررة ومشاركتها مع جميع الأشخاص داخل المؤسسة ، وبالتالي يعرف الجميع مكان الحصول على معلومات تتعلق بـ DevOps حيثما يحتاجون إليها. الرؤية وسهولة الوصول إلى المعلومات التي تحفزهم على البحث وقراءتها بأنفسهم وحتى المساهمة. يمكن الاحتفاظ بهذا النوع من المعلومات في منصات تعاونية مثل Atlassian Confluence أو Microsoft Teams.

تطبيق الممارسات الثقافية لمنظمة Westrum

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

هنا كيف يمكنك بناء ثقافة توليدية ؛

2. معالجة مقاومة التغيير

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

غير مرتب

مشاهدون

المتهكمون

النقاد

المتحمسون

المدافعون (أبطال / خبراء)

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

3- إضفاء الوضوح على رؤية DevOps

يمكن أن يساعد تقديم إطار عمل DevOps CALMS في تحديد خارطة طريق وأهداف DevOps. CALMS هو إطار مفاهيمي لتكامل فرق ووظائف وأنظمة التطوير والعمليات (DevOps) داخل المنظمة.

يحتاج قادة DevOps إلى تطوير خارطة طريق واضحة لتطور DevOps مع مراحل تحسين واضحة. يجب عليهم مشاركتها وجعلها مرئية للجميع داخل المنظمة ؛

4-إنشاء التعاون عبر الفريق

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

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

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

فيما يلي بعض أدوات التعاون التي يمكنك استخدامها وبدء التعاون داخل مؤسستك ؛

5. البيئات القياسية

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

تشمل مزايا وجود بيئة محددة جيدًا ما يلي ؛

  1. سجل / سجل النشر - يتم تسجيل جميع تفاصيل تشغيل خط الأنابيب في أدوات CI / CD لمواردها.
  2. إمكانية التتبع - تسمح للمرء بتتبع ما إذا كان تغيير الرمز (الالتزام) أو إصلاح الميزة / الخطأ (عناصر العمل) قد وصل إلى البيئة.
  3. إذن / تحكم - بيئة آمنة من خلال تحديد المستخدم المسموح به وأي بيئة مستهدفة سيتم نشرها.

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

1. البنية التحتية

2. التكوين

3. التبعيات

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

التكوين هو الجانب التالي الأكثر تبعية لبيئة التطبيق. تملي التكوين كلاً من كيفية توافق التطبيق في بنية أساسية معينة وكيفية توافق البنية التحتية في الإدراك مع التطبيق الأساسي.

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

الاستفادة من توفير البيئة الآلي على النحو التالي ؛

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

لدينا العديد من الأدوات المتوفرة في السوق سواء كانت مفتوحة المصدر أو مؤسسة يمكننا استخدامها للقيام بالتوفير التلقائي لجميع المجالات الثلاثة المذكورة أعلاه مثل أدناه ؛

6- توحيد سلسلة أدوات DevOps وتوفيرها كخدمة ذاتية

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

** ما عليك سوى تسمية بعض سلاسل الأدوات المتاحة في السوق للأقسام المذكورة أعلاه.

7. تسريع إدارة الإصدار

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

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

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

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

  1. Atlassian JIRA - أداة لتعاون الفريق من تراكم المنتج وتخطيط Sprint وتقرير الإصدار ومدى أداء فريق Agile في كل سباق.
  2. Github - نظام التحكم في الإصدار الموزع (DVCS) حيث يتواصل المطور مع بعضها البعض ويتعاون لجعل كود ميزات المنتج أفضل ورؤية التغييرات وإصدارات التعليمات البرمجية. يجب مراجعة أي تغييرات من قبل المطورين الآخرين أو مراجع القانون مما جعل الشفرة أكثر نظافة وأقل خطأ / خطأ.
  3. Azure DevOps - إنها أداة نستخدمها لتنظيم خط أنابيب CI / CD الخاص بنا وهي أيضًا المكان الذي يوجد فيه المزيد من التعاون بين DevOps Engineer و Developer و Release Manager وفريق QA. إنه أيضًا المكان الذي تحدث فيه عمليات الدمج من أجل تقديم منتج بجودة جيدة ، ولهذا السبب لدينا تحليل أمان واختبار ضمان الجودة قبل أن ننتشر في بيئة الإنتاج.
  4. Datadog - إنها أداة مراقبة يمكنك من خلالها باستخدام Datadog مراقبة خوادمك وسحبك ومقاييسك وتطبيقاتك وفريقك معًا. إنها بمثابة محطة واحدة لجميع أنواع الشاشات لبيئتك ومنتجاتك.

يمكن لخط أنابيب CI / CD الفعال أن يحسن بشكل كبير الوقت اللازم للتسويق والاستفادة من الحفاظ على استقرار البرامج وتوزيعها.

8. أتمتة الاختبار

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

يتطلب تكامل الاختبار المستمر المؤتمت مع خط أنابيب CI / CD تطبيق اختبار تطبيق يسهل دمجه مع الإنشاءات والاختبار التلقائي وأدوات CI / CD التي تستخدمها بالفعل ولديها دعم شامل لواجهة برمجة تطبيقات الويب. فائدة استخدام الاختبار المستمر الآلي على النحو التالي:

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

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

مقياس. لتوسيع نطاق الاختبار اليدوي ، تحتاج إلى المزيد من المختبرين اليدويين. لتوسيع نطاق الاختبار التلقائي ، ما عليك سوى المزيد من التطبيقات والإصدارات للاختبار.

خاتمة

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