Udostępnij za pośrednictwem


jobs.deployment.strategy.rolling definition

Wdrożenie stopniowe zastępuje wystąpienia poprzedniej wersji aplikacji wystąpieniami nowej wersji aplikacji w stałym zestawie maszyn wirtualnych (zestaw stopniowy) w każdej iteracji.

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.

Definicje odwołujące się do tej definicji: jobs.deployment.strategy

Właściwości

maxParallel Ciąg.
Maksymalna liczba zadań uruchomionych równolegle.

preDeploypreDeployHook.
Wstępnie wdróż punkt zaczepienia dla strategii wdrażania rolling.

deploydeployHook.
Wdrażanie haka dla strategii wdrażania rolling.

routeTrafficrouteTrafficHook.
Kierowanie punktów zaczepienia ruchu na potrzeby strategii wdrażania rolling.

postRouteTrafficpostRouteTrafficHook.
Post route traffic hook for rolling deployment strategy (Post route traffic hook for rolling deployment strategy( Post route traffic hook for rolling deployment strategy ( Post route

ononSuccessOrFailureHook.
Na haku sukcesów lub niepowodzeń dla strategii wdrażania operacyjnego.

Uwagi

Usługa Azure Pipelines obecnie obsługuje tylko strategię stopniowej dla zasobów maszyn wirtualnych.

Na przykład wdrożenie stopniowe zwykle czeka na wdrożenia na każdym zestawie maszyn wirtualnych do ukończenia przed przejściem do następnego zestawu wdrożeń. Możesz przeprowadzić kontrolę kondycji po każdej iteracji i jeśli wystąpi poważny problem, wdrożenie stopniowe można zatrzymać.

Wdrożenia stopniowe można skonfigurować, określając słowo kluczowe rolling: w węźle strategy: . Zmienna strategy.name jest dostępna w tym bloku strategii, który przyjmuje nazwę strategii. W takim przypadku jest toczenie.

Wszystkie punkty zaczepienia cyklu życia są obsługiwane, a zadania punktów zaczepienia cyklu życia są tworzone do uruchamiania na każdej maszynie wirtualnej.

preDeploy, , deployrouteTraffici postRouteTraffic są wykonywane raz dla rozmiaru partii zdefiniowanego przez maxParallel. Następnie wykonywana jest wartość on: success lub on: failure .

Za pomocą programu maxParallel: <# or % of VMs>można kontrolować liczbę/procent obiektów docelowych maszyn wirtualnych do równoległego wdrażania. Dzięki temu aplikacja jest uruchomiona na tych maszynach i może obsługiwać żądania podczas wdrażania na pozostałych maszynach, co zmniejsza całkowity przestój.

Uwaga

Ta funkcja zawiera kilka znanych luk. Na przykład po ponowieniu próby etapu zostanie ono ponownie uruchomione na wszystkich maszynach wirtualnych, a nie tylko na docelowych miejscach docelowych, które zakończyły się niepowodzeniem.

Opisy punktów zaczepienia cyklu życia

preDeploy: służy do uruchamiania kroków inicjowania zasobów przed rozpoczęciem wdrażania aplikacji.

deploy: służy do uruchamiania kroków wdrażania aplikacji. Zadanie pobierania artefaktu zostanie automatycznie wprowadzone tylko w haku deploy dla zadań wdrażania. Aby zatrzymać pobieranie artefaktów, użyj - download: none lub wybierz określone artefakty do pobrania, określając zadanie Pobierz artefakt potoku.

routeTraffic: służy do uruchamiania kroków obsługujących ruch do zaktualizowanej wersji.

postRouteTraffic: służy do uruchamiania kroków po kierowaniu ruchu. Zazwyczaj te zadania monitorują kondycję zaktualizowanej wersji dla zdefiniowanego interwału.

on: failure lub on: success: służy do uruchamiania kroków dla akcji wycofywania lub czyszczenia.

Przykłady

Poniższy przykład strategii stopniowej dla maszyn wirtualnych aktualizuje maksymalnie pięć elementów docelowych w każdej iteracji. maxParallel Określi liczbę obiektów docelowych, które można wdrożyć równolegle. Wybór odpowiada za bezwzględną liczbę lub procent obiektów docelowych, które muszą pozostać dostępne w dowolnym momencie z wyłączeniem obiektów docelowych, do których są wdrażane. Służy również do określania warunków powodzenia i niepowodzenia podczas wdrażania.

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

Zobacz też