النشر بثقة

مكتمل
الوصول إلى الحالة المطلوبة للتوزيع مع إمكانية التنبؤ.

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

فريق حمل العمل مسؤول عن سلسلة التوريد من حيث صلته بعبء العمل الخاص به.

مثال على السيناريو

طورت شركة Contoso Manufacturing تطبيقا يستند إلى Java يستخدم لمراقبة وتحسين عمليات التصنيع الخاصة بها. تم ترحيل حمل العمل مؤخرا إلى Azure ويعمل الآن على Azure Spring Apps وقاعدة بيانات Azure ل MySQL وAzure IoT Hub.

توزيع البنية الأساسية من خلال التعليمات البرمجية

استخدم البنية الأساسية كتعليق برمجي (IaC) لتحديد الجوانب القابلة للتكرار لسلسلة التوريد الجاهزة للإنتاج. تفضل الأساليب التعريفية على الأساليب الإلزامية.

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

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

تحدي Contoso

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

تطبيق النهج والنتائج

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

تعامل مع IaC بنفس تعليمة التطبيق البرمجية الخاصة بك

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

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

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

يجعل النهج متعدد الطبقات الصيانة أسهل ويخلق حدودا تحدد خطوطا واضحة للمسؤولية.

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

تحدي Contoso

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

تطبيق النهج والنتائج

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

توحيد عمليات التوزيع على بيان واحد

تطوير بيان نشر شائع يستخدم عبر جميع البيئات. استخدم هذا البيان كآلية افتراضية لمشاريع greenfield أو تحديثات حمل العمل المتزايدة أو التعافي من الكوارث.

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

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

تحدي Contoso

  • تستخدم Contoso Manufacturing البنية الأساسية لبرنامج ربط العمليات التجارية المؤتمتة بالكامل لنشر البنية الأساسية ورمز التطبيق وتغييرات التكوين في بيئة التطوير والإنتاج. تم تكوين التطبيق ليكون متوفرا بشكل كبير في منطقة واحدة. معظم مكونات التطبيق عديمة الحالة، باستثناء قاعدة بيانات MySQL. يتم نسخ قاعدة البيانات احتياطيا كما تمليها RTO/RPO المنشأة ويتم نسخ النسخ الاحتياطي إلى منطقة ثانوية.
  • إذا حدث فشل كبير أو كارثي في المنطقة الأساسية، يخطط الفريق لإنشاء بيئة جديدة لاستضافة التطبيق في المنطقة الثانوية. أثناء التدريب المخطط لاختبار إجراءات الاسترداد بعد الكوارث، تفشل البرامج النصية للتوزيع عند محاولة إعادة إنشاء البيئة في المنطقة الثانوية بسبب عدم توفر العديد من الموارد وقيود الخدمة الأخرى.

تطبيق النهج والنتائج

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

‏‫اختبر معلوماتك

1.

كيف يمكن أن يساعدك نشر البنية الأساسية كتعلم برمجي على النشر بثقة؟

2.

كيف ساعد نقل التعليمات البرمجية IaC إلى نفس المستودع مثل التعليمات البرمجية للتطبيق فريق Contoso على النشر بثقة؟

3.

أي مما يلي يمكن أن يساعد في ضمان أن توزيع بيئة الإصلاح بعد الكوارث سيسير بكفاءة؟