تعريف jobs.deployment.strategy.rolling

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

rolling:
  maxParallel: string # Maximum number of jobs running in parallel.
  preDeploy: # Pre deploy hook for rolling deployment strategy.
    steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
    pool: string | pool # Pool where pre deploy steps will run.
  deploy: # Deploy hook for rolling deployment strategy.
    steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
    pool: string | pool # Pool where deploy steps will run.
  routeTraffic: # Route traffic hook for rolling deployment strategy.
    steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
    pool: string | pool # Pool where route traffic steps will run.
  postRouteTraffic: # Post route traffic hook for rolling deployment strategy.
    steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
    pool: string | pool # Pool where post route traffic steps will run.
  on: # On success or failure hook for rolling deployment strategy.
    failure: # Runs on failure of any step.
      steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
      pool: string | pool # Pool where post on failure steps will run.
    success: # Runs on success of all of the steps.
      steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
      pool: string | pool # Pool where on success steps will run.

التعريفات التي تشير إلى هذا التعريف: jobs.deployment.strategy

الخصائص

maxParallel سلسله.
الحد الأقصى لعدد المهام التي تعمل بالتوازي.

preDeploypreDeployHook.
ربط النشر المسبق لاستراتيجية النشر المتداولة.

deploydeployHook.
نشر خطاف لاستراتيجية النشر المتداولة.

routeTrafficrouteTrafficHook.
توجيه خطاف نسبة استخدام الشبكة لاستراتيجية التوزيع المتداولة.

postRouteTrafficpostRouteTrafficHook.
ربط نسبة استخدام الشبكة بعد المسار لاستراتيجية النشر المتداولة.

ononSuccessOrFailureHook.
على خطاف النجاح أو الفشل لاستراتيجية التوزيع المتداولة.

الملاحظات

تدعم Azure Pipelines حاليا فقط الاستراتيجية المتداولة لموارد الجهاز الظاهري.

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

يمكن تكوين عمليات النشر المتداولة عن طريق تحديد الكلمة الأساسية rolling: ضمن العقدة strategy: . strategy.name المتغير متوفر في كتلة الاستراتيجية هذه، والتي تأخذ اسم الاستراتيجية. في هذه الحالة، المتداول.

يتم دعم جميع خطافات دورة الحياة ويتم إنشاء مهام ربط دورة الحياة للتشغيل على كل جهاز ظاهري.

preDeployيتم deployتنفيذ و و postRouteTraffic مرة واحدة لكل حجم دفعة يحدده maxParallel. routeTraffic ثم، إما on: success أو on: failure يتم تنفيذها.

باستخدام maxParallel: <# or % of VMs>، يمكنك التحكم في عدد/النسبة المئوية لأهداف الجهاز الظاهري للنشر إلى بالتوازي. وهذا يضمن أن التطبيق يعمل على هذه الأجهزة وأنه قادر على معالجة الطلبات أثناء إجراء التوزيع على بقية الأجهزة، ما يقلل من وقت التعطل الكلي.

ملاحظة

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

أوصاف خطافات دورة الحياة

preDeploy: يستخدم لتشغيل الخطوات التي تهيئ الموارد قبل بدء نشر التطبيق.

deploy: يستخدم لتشغيل الخطوات التي تنشر التطبيق الخاص بك. سيتم إدخال مهمة تنزيل البيانات الاصطناعية تلقائيا فقط في خطاف deploy مهام النشر. لإيقاف تنزيل البيانات الاصطناعية، استخدم - download: none أو اختر بيانات اصطناعية معينة لتنزيلها عن طريق تحديد مهمة Download Pipeline Artifact.

routeTraffic: يستخدم لتشغيل الخطوات التي تخدم نسبة استخدام الشبكة إلى الإصدار المحدث.

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

on: failure أو on: success: يستخدم لتشغيل خطوات إجراءات التراجع أو التنظيف.

أمثلة

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

jobs: 
- deployment: VMDeploy
  displayName: web
  environment:
    name: smarthotel-dev
    resourceType: VirtualMachine
  strategy:
    rolling:
      maxParallel: 5  #for percentages, mention as x%
      preDeploy:
        steps:
        - download: current
          artifact: drop
        - script: echo initialize, cleanup, backup, install certs
      deploy:
        steps:
        - task: IISWebAppDeploymentOnMachineGroup@0
          displayName: 'Deploy application to Website'
          inputs:
            WebSiteName: 'Default Web Site'
            Package: '$(Pipeline.Workspace)/drop/**/*.zip'
      routeTraffic:
        steps:
        - script: echo routing traffic
      postRouteTraffic:
        steps:
        - script: echo health check post-route traffic
      on:
        failure:
          steps:
          - script: echo Restore from backup! This is on failure
        success:
          steps:
          - script: echo Notify! This is on success

راجع أيضًا