النشر الآمن لتعيينات نهج Azure

مع توسع البيئة الخاصة بك، وكذلك الطلب على البنية الأساسية لبرنامج ربط العمليات التجارية للتوزيع المستمر الخاضع للرقابة (CD) مع التحكم في التعرض التدريجي. وفقا لذلك، توصي Microsoft فرق DevOps باتباع إطار عمل ممارسات النشر الآمن (SDP). يساعد النشر الآمن لتعريفات وتعيينات نهج Azure على الحد من تأثير السلوكيات غير المقصودة لموارد النهج.

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

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

خطوات النشر الآمن لتعيينات نهج Azure مع تأثيرات الرفض أو الإلحاق

استخدم المخطط الانسيابي التالي كمرجع بينما نعمل من خلال كيفية تطبيق إطار عمل SDP على تعيينات نهج Azure التي تستخدم deny تأثيرات النهج أو append .

إشعار

لمعرفة المزيد حول تأثيرات نهج Azure، راجع فهم كيفية عمل التأثيرات.

مخطط انسيابي مع الخطوات من 1 إلى 8 يظهر نشر ممارسات النشر الآمنة لتعريف نهج Azure جديد.

أرقام خطوات المخطط الانسيابي:

  1. بمجرد تحديد تعريف النهج الخاص بك، قم بتعيين النهج في النطاق الأعلى مستوى شامل لجميع حلقات التوزيع. تطبيق محددات الموارد لتضييق إمكانية التطبيق على الحلقة الأقل أهمية باستخدام الخاصية "kind": "resource location" . تكوين audit نوع التأثير باستخدام تجاوزات التعيين. محدد العينة مع eastUS الموقع والتأثير ك audit:

    "resourceSelectors": [{ 
      "name": "SDPRegions", 
      "selectors": [{
          "kind": "resourceLocation",
          "in": [ "eastUS" ] 
      }]
    }], 
    "overrides":[{ 
      "kind": "policyEffect", 
      "value": "Audit" 
    }] 
    
  2. بمجرد نشر التعيين واكتمال فحص التوافق الأولي، تحقق من أن نتيجة التوافق كما هو متوقع.

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

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

    على سبيل المثال، يمكنك تكوين التحقق من التوافق باستخدام أدوات أخرى داخل البنية الأساسية لبرنامج ربط العمليات التجارية للتكامل المستمر/النشر المستمر (CI/CD).

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

  3. كرر ذلك عن طريق توسيع قيم خاصية محدد المورد لتضمين الحلقات التالية. المواقع والتحقق من صحة نتائج التوافق المتوقعة وصحة التطبيق. محدد المثال بقيمة موقع مضافة:

    "resourceSelectors": [{ 
      "name": "SDPRegions", 
      "selectors": [{
          "kind": "resourceLocation",
          "in": [ "eastUS", "westUS"] 
      }]
    }]
    
  4. بمجرد تعيين النهج بنجاح لجميع الحلقات باستخدام audit الوضع، يجب أن تشغل البنية الأساسية لبرنامج ربط العمليات التجارية مهمة تغير تأثير النهج إلى deny محددات الموارد وتعيد تعيينها إلى الموقع المقترن بالحلقة 0. محدد المثال مع منطقة واحدة وتعيين التأثير إلى رفض:

    "resourceSelectors": [{ 
      "name": "SDPRegions", 
      "selectors": [{
          "kind": "resourceLocation",
          "in": [ "eastUS" ] 
      }]
    }], 
    "overrides":[{ 
      "kind": "policyEffect", 
      "value": "Deny" 
    }] 
    
  5. بمجرد تغيير التأثير، يجب أن تتحقق الاختبارات التلقائية مما إذا كان التنفيذ يتم كما هو متوقع.

  6. كرر ذلك عن طريق تضمين المزيد من الحلقات في تكوين محدد الموارد.

  7. كرر هذه العملية لجميع حلقات الإنتاج.

خطوات النشر الآمن لتعيينات نهج Azure مع تعديل تأثيراتIfNotExists أو نشرها

خطوات النهج التي تستخدم التأثيرات أو deployIfNotExists مشابهة modify للخطوات الموضحة مسبقا مع الإجراء الإضافي لاستخدام وضع الإنفاذ وتشغيل مهمة معالجة. راجع المخطط الانسيابي التالي مع الخطوات المعدلة من 5 إلى 9:

مخطط انسيابي يعرض الخطوات من 5 إلى 9 في سير عمل ممارسات النشر الآمنة لنهج Azure.

أرقام خطوات المخطط الانسيابي:

  1. بمجرد تحديد تعريف النهج الخاص بك، قم بتعيين النهج في النطاق الأعلى مستوى شامل لجميع حلقات التوزيع. تطبيق محددات الموارد لتضييق إمكانية التطبيق على الحلقة الأقل أهمية باستخدام الخاصية "kind": "resource location" . تكوين وضع الإنفاذ للتعيين إلى DoNotEnforce. محدد العينة مع eastUS الموقع و enforcementMode ك DoNotEnforce:

    "resourceSelectors": [{ 
      "name": "SDPRegions", 
      "selectors": [{
          "kind": "resourceLocation",
          "in": [ "eastUS" ] 
      }]
    }], 
    "enforcementMode": "DoNotEnforce"
    
  2. بمجرد نشر التعيين واكتمال فحص التوافق الأولي، تحقق من أن نتيجة التوافق كما هو متوقع.

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

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

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

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

    يمكنك أيضا تشغيل مهام المعالجة لمعالجة الموارد غير المتوافقة الموجودة. تأكد من أن مهام المعالجة تجلب الموارد إلى التوافق كما هو متوقع.

  3. كرر ذلك عن طريق توسيع قيم خصائص محدد المورد لتضمين مواقع الحلقة التالية والتحقق من صحة نتائج التوافق المتوقعة وصحة التطبيق. محدد المثال بقيمة موقع مضافة:

    "resourceSelectors": [{ 
      "name": "SDPRegions", 
      "selectors": [{
          "kind": "resourceLocation",
          "in": [ "eastUS", "westUS"] 
      }]
    }]
    
  4. بمجرد تعيين النهج بنجاح لجميع الحلقات باستخدام وضع DoNotEnforce ، يجب أن تشغل البنية الأساسية لبرنامج ربط العمليات التجارية مهمة تغير النهج enforcementMode إلى التمكين الافتراضي وإعادة تعيين محددات الموارد إلى الموقع المقترن بالحلقة 0. محدد المثال مع منطقة واحدة وتعيين التأثير إلى رفض:

    "resourceSelectors": [{ 
      "name": "SDPRegions", 
      "selectors": [{
          "kind": "resourceLocation",
          "in": [ "eastUS" ] 
      }]
    }], 
    "enforcementMode": "Default",
    
  5. بمجرد تغيير التأثير، يجب أن تتحقق الاختبارات التلقائية مما إذا كان التنفيذ يتم كما هو متوقع.

  6. كرر ذلك عن طريق تضمين المزيد من الحلقات في تكوين محدد الموارد.

  7. كرر هذه العملية لجميع حلقات الإنتاج.

خطوات تحديث إصدار التعريف المضمن بأمان ضمن تعيين نهج Azure

  1. ضمن التعيين الحالي، قم بتطبيق التجاوزات لتحديث إصدار التعريف للحلقة الأقل أهمية. نحن نستخدم مجموعة من التجاوزات لتغيير definitionVersion والمحددات ضمن شرط التجاوزات لتضييق إمكانية التطبيق حسب "kind": "resource location" الخاصية. سيستمر تقييم أي موارد خارج المواقع المحددة مقابل الإصدار من definitionVersion خاصية المستوى الأعلى في التعيين. مثال تجاوز تحديث إصدار التعريف إلى 2.0.* وتطبيقه فقط على الموارد في EastUs.

    "overrides":[{ 
      "kind": "definitionVersion", 
      "value": "2.0.*",
      "selectors": [{
        "kind": "resourceLocation",
        "in": [ "eastus"]
      }]
    }] 
    
  2. بمجرد تحديث التعيين واكتمال فحص التوافق الأولي، تحقق من أن نتيجة التوافق كما هو متوقع.

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

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

    على سبيل المثال، يمكنك تكوين التحقق من التوافق باستخدام أدوات أخرى داخل البنية الأساسية لبرنامج ربط العمليات التجارية للتكامل المستمر/النشر المستمر (CI/CD).

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

  3. كرر ذلك عن طريق توسيع قيم خاصية محدد المورد لتضمين الحلقات التالية. المواقع والتحقق من صحة نتائج التوافق المتوقعة وصحة التطبيق. مثال بقيمة موقع مضافة:

     "overrides":[{ 
      "kind": "definitionVersion", 
      "value": "2.0",
      "selectors": [{
        "kind": "resourceLocation",
        "in": [ "eastus", "westus"]
      }]
    }] 
    
  4. بمجرد تضمين جميع المواقع الضرورية بنجاح داخل _selectors، يمكنك إزالة التجاوز وتحديث خاصية definitionVersion داخل التعيين:

"properties": {
        "displayName": "Enforce resource naming rules",
        "description": "Force resource names to begin with DeptA and end with -LC",
        "definitionVersion": "2.0.*",
}

الخطوات التالية