jobs.deployment.strategy.rolling tanımı

Sıralı dağıtım, bir uygulamanın önceki sürümünün örneklerini, her yinelemedeki sabit bir sanal makine kümesindeki (sıralı küme) uygulamanın yeni sürümünün örnekleriyle değiştirir.

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.

Bu tanıma başvuran tanımlar: jobs.deployment.strategy

Özellikler

maxParallel Dize.
Paralel çalışan iş sayısı üst sınırı.

preDeploypreDeployHook.
Sıralı dağıtım stratejisi için dağıtım öncesi kancası.

deploydeployHook.
Sıralı dağıtım stratejisi için kanca dağıtma.

routeTrafficrouteTrafficHook.
Sıralı dağıtım stratejisi için yol trafiği kancası.

postRouteTrafficpostRouteTrafficHook.
Sıralı dağıtım stratejisi için rota sonrası trafik kancası.

ononSuccessOrFailureHook.
Sıralı dağıtım stratejisi için başarı veya başarısızlık kancası.

Açıklamalar

Azure Pipelines şu anda yalnızca VM kaynaklarına yönelik sıralı stratejiyi desteklemektedir.

Örneğin, sıralı dağıtım genellikle bir sonraki dağıtım kümesine geçmeden önce her sanal makine kümesindeki dağıtımların tamamlanmasını bekler. Her yinelemeden sonra bir sistem durumu denetimi yapabilirsiniz ve önemli bir sorun oluşursa sıralı dağıtım durdurulabilir.

Sıralı dağıtımlar, düğümün altında strategy: anahtar sözcük rolling: belirtilerek yapılandırılabilir. strategy.name değişkeni, stratejinin adını alan bu strateji bloğunda kullanılabilir. Bu durumda, yuvarlanıyor.

Tüm yaşam döngüsü kancaları desteklenir ve yaşam döngüsü kancası işleri her VM'de çalıştırılacak şekilde oluşturulur.

preDeploy, deploy, routeTrafficve postRouteTraffic tarafından tanımlanan maxParalleltoplu iş boyutu başına bir kez yürütülür. on: success Ardından veya on: failure yürütülür.

ile maxParallel: <# or % of VMs>, paralel olarak dağıtılacak sanal makine hedeflerinin sayısını/yüzdesini denetleyebilirsiniz. Bu, uygulamanın bu makinelerde çalışmasını ve dağıtım makinelerin geri kalanında gerçekleşirken istekleri işleyebilmesini sağlar ve bu da genel kapalı kalma süresini azaltır.

Not

Bu özellikte bilinen birkaç boşluk vardır. Örneğin, bir aşamayı yeniden denediğinizde, yalnızca başarısız olan hedeflerde değil tüm VM'lerde dağıtımı yeniden çalıştırır.

Yaşam döngüsü kancalarının açıklamaları

preDeploy: Uygulama dağıtımı başlamadan önce kaynakları başlatan adımları çalıştırmak için kullanılır.

deploy: Uygulamanızı dağıtan adımları çalıştırmak için kullanılır. Yapıt indirme görevi yalnızca dağıtım işleri için kancaya deploy otomatik olarak eklenecektir. Yapıtları indirmeyi durdurmak için İşlem Hattı Yapıtlarını İndir görevini belirterek indirilmesi gereken belirli yapıtları kullanın - download: none veya seçin.

routeTraffic: Güncelleştirilmiş sürüme gelen trafiğe hizmet eden adımları çalıştırmak için kullanılır.

postRouteTraffic: Trafik yönlendirildikten sonra adımları çalıştırmak için kullanılır. Genellikle, bu görevler tanımlı aralık için güncelleştirilmiş sürümün durumunu izler.

on: failure veya on: success: Geri alma eylemleri veya temizleme adımlarını çalıştırmak için kullanılır.

Örnekler

VM'ler için aşağıdaki sıralı strateji örneği, her yinelemede en fazla beş hedefi güncelleştirir. maxParallel , paralel olarak dağıtılacak hedef sayısını belirler. Seçim, dağıtılmakta olan hedefler hariç olmak üzere herhangi bir zamanda kullanılabilir kalması gereken hedeflerin mutlak sayısını veya yüzdesini hesaplar. Ayrıca dağıtım sırasında başarı ve başarısızlık koşullarını belirlemek için de kullanılır.

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

Ayrıca bkz.