توصيات لتوحيد الأدوات والعمليات

ينطبق على توصية قائمة التحقق من التميز التشغيلي ل Azure Well-Architected Framework:

OE:04 تحسين عمليات تطوير البرامج وضمان الجودة باتباع الممارسات المثبتة في الصناعة للتطوير والاختبار. لتعيين دور لا لبس فيه، قم بتوحيد الممارسات عبر مكونات مثل الأدوات والتحكم بالمصادر وأنماط تصميم التطبيق والوثائق وأدلة الأنماط.

الدليل ذي الصلة: تحسين سرعة | البناءاستخدم التكامل المستمر

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

استراتيجيات التصميم الرئيسية

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

استخدام أدوات معروفة وناضجة جاهزة

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

  • تخطيط العمل وإدارة التراكم

  • التحكم بالإصدار والمستودعات

  • CI/CD pipelines

  • الاختبار، مثل التكامل والدخان والمستخدم الاصطناعي والمحاكاة والفوضى واختبارات الجودة الأخرى

  • تطوير التعليمات البرمجية

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

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

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

توحيد استراتيجية التفريع الخاصة بك

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

تقييم المقاييس لتحديد فعالية التطوير

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

  • تكرار التوزيع: عدد عمليات التوزيع التي ينشرها كل مطور كل يوم.

  • وقت العميل المتوقع: الوقت الذي تستغرقه مهمة أو قصة مستخدم للانتقال من التراكم إلى توزيع الإنتاج.

  • متوسط وقت الحل: متوسط الوقت المستغرق في إصلاح الأخطاء أو العيوب في التعليمات البرمجية.

  • معدل فشل التغيير: النسبة المئوية للتغييرات التي تؤدي إلى فشل.

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

توحيد كيفية كتابة فريق حمل العمل والمراجعات ورمز المستندات

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

عندما يكون الأمر عمليا، استخدم الأدوات لفرض معايير تنسيق التعليمات البرمجية. على سبيل المثال، يقدم Visual Studio العديد من الأدوات التي تفحص التعليمات البرمجية بحثا عن النمط والجودة وقابلية الصيانة والتصميم وغيرها من المشكلات. بالنسبة للبنية الأساسية كتعليمية (IaC)، يمكنك استخدام Checkov أو Terrascan ل Terraform.

لضمان التناسق وتجنب الارتباك المحتمل، يجب أن يتضمن دليل الأنماط اصطلاحات التسمية القياسية للبيانات الاصطناعية والبيئات والفروع والبناء والتشغيل.

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

استخدم سجلات قرارات البنية (ADRs) للاحتفاظ بسجل تاريخي لقرارات تصميم فريق حمل العمل. تساعد ADRs فرقك على الحفاظ على فهم جديد لحمل العمل. كما أنها تساعد أعضاء الفريق الجدد على التعرف على قرارات التصميم التي يتم اتخاذها أثناء دورة حياة حمل العمل. تأكد من التحكم في إصدار ADRs.

في ADR الخاص بك، قم بتضمين:

  • أدوات وتقنيات محددة، على سبيل المثال باستخدام SQL أو NoSQL، التي يختارها فريقك.

  • أسباب قرارات فريقك.

  • خيارات أخرى تم النظر فيها، مما يساعد على تحديد سياق القرار النهائي.

  • المتطلبات الوظيفية وغير الوظيفية التي يتم أخذها في الاعتبار في القرارات.

  • سياق عملية صنع القرار، مثل المشكلة التي تمت معالجتها.

تنفيذ معايير لمعالجة الديون التقنية

تبني عقلية مفادها أن الديون التقنية مقصودة وضرورية لتسليمات فريق حمل العمل الخاص بك. تحفز هذه العقلية فريقك على النظر في الديون التقنية ومعالجتها بانتظام لتجنب التراكم. معالجة الديون التقنية كمهمة متكررة بانتظام في التراكم.

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

توحيد كيفية تطبيق تعيين الإصدار على البيانات الاصطناعية

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

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

تنفيذ نهج التحول إلى اليسار للاختبار

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

  • كتابة الاختبارات في أدنى مستوى ممكن. تفضل الاختبارات بأقل عدد من التبعيات الخارجية، وقم بتشغيل الاختبارات كجزء من البنية.

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

  • تصميم حمل العمل للاختبار. عند تطوير التطبيق الخاص بك، اجعل قابلية الاختبار مطلبا.

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

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

  • أتمتة الاختبارات قدر الإمكان. تخفف التعليمات البرمجية التلقائية العبء على فريق حمل العمل الخاص بك وتفرض جودة متسقة.

للحصول على إرشادات مفصلة حول تنفيذ استراتيجية اختبار DevOps، راجع اختبار Shift المتبقي مع اختبارات الوحدة.

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

تنفيذ معايير تسمية الموارد ووضع علامات لها

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

بعض فوائد استخدام اصطلاحات العلامات والتسمية الموحدة هي:

  • فهي توفر الاتساق والوضوح لتحديد الموارد وإدارتها، مما يسهل الاكتشاف والبحث عبر مدخل Microsoft Azure وPowerShell وCLI وواجهات برمجة التطبيقات.
  • فهي تمكن تصفية الموارد وتجميعها لأغراض الفوترة والمراقبة والأمان والتوافق.
  • وهي تدعم إدارة دورة حياة الموارد، مثل التوفير وإيقاف التشغيل والنسخ الاحتياطي والاسترداد.
  • إنها ضرورية لأغراض أمنية. إذا تعرضت لحادث أمني، فمن الأهمية بمكان تحديد الأنظمة المتأثرة بسرعة والوظائف التي تدعمها هذه الأنظمة وتأثير الأعمال المحتمل.

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

تسهيل Azure

  • Azure DevOps عبارة عن مجموعة من الخدمات التي يمكنك استخدامها لإنشاء ممارسة تطوير تعاونية وفعالة ومتسقة. تجمع Azure DevOps الحلول التالية:

    • توفر Azure Pipelines خدمات الإنشاء والإصدار لدعم CI/CD لتطبيقاتك.

    • Azure Boards هي أداة إدارة عمل مستندة إلى الويب تدعم ممارسات Agile مثل Scrum و Kanban.

    • Azure Repos هي أداة تحكم بالإصدار تدعم نظام التحكم بالإصدار الموزع Git ونظام التحكم في إصدار Team Foundation .

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

    • يتم استخدام Azure Artifacts لتمكين المطورين من مشاركة التعليمات البرمجية الخاصة بهم بكفاءة وإدارة حزمهم.

  • GitHub Actions ل Azure هي أداة يمكنك استخدامها لأتمتة عمليات CI/CD. يتكامل مباشرة مع Azure لتبسيط عمليات التوزيع. يمكنك إنشاء مهام سير عمل تقوم بإنشاء واختبار كل طلب سحب إلى المستودع الخاص بك، أو توزيع طلبات السحب المدمجة للإنتاج.

  • GitHub Projects هي أداة إدارة عمل يمكنك استخدامها لإنشاء لوحات Kanban والتقارير ولوحات المعلومات والوظائف الأخرى.

  • تتضمن أدوات التعليمات البرمجية المنخفضة وغير البرمجية ما يلي:

  • قوالب Azure Resource ManagerوBicep هي أدوات أصلية في Azure يمكنك استخدامها لنشر IaC. Terraform هي أداة IaC أخرى مدعومة من Azure يمكنك استخدامها لنشر البنية الأساسية وإدارتها.

  • Visual Studio هو أداة تطوير قوية تتكامل مع Azure وتدعم العديد من اللغات.

  • GitHub Copilot هي خدمة الذكاء الاصطناعي تعمل كمبرمج مزدوج وتوفر اقتراحات نمط الإكمال التلقائي أثناء التعليمات البرمجية. يتوفر Copilot كملحق في Visual Studio والعديد من أدوات التطوير الأخرى.

  • Azure Load Testing هي خدمة اختبار تحميل مدارة بالكامل يمكنك استخدامها لإنشاء حمل واسع النطاق عن طريق محاكاة نسبة استخدام الشبكة لتطبيقاتك، بغض النظر عن مكان استضافتها.

قائمة التحقق من التميز التشغيلي

راجع المجموعة الكاملة من التوصيات.