Aracılığıyla paylaş


jobs.deployment.strategy.canary tanımı

Kanarya dağıtım stratejisi, sunucuların küçük bir alt kümesinde yapılan değişiklikleri dağıtır.

canary:
  increments: [ string ] # Maximum batch size for deployment.
  preDeploy: # Pre deploy hook for canary 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 canary 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 canary 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 canary 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 canary 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

increments dize listesi.
Dağıtım için en büyük toplu iş boyutu.

preDeploypreDeployHook.
Kanarya dağıtım stratejisi için önceden dağıtım kancası.

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

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

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

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

Açıklamalar

Kanarya dağıtım stratejisi, uygulamaların yeni sürümlerinin kullanıma sunulma riskini azaltmaya yardımcı olan gelişmiş bir dağıtım stratejisidir. Bu stratejiyi kullanarak, değişiklikleri önce sunucuların küçük bir alt kümesine dağıtabilirsiniz. Yeni sürüme daha fazla güven kazandıkça, altyapınızdaki daha fazla sunucuya yayınlayabilir ve buna daha fazla trafik yönlendirebilirsiniz.

Kanarya dağıtım stratejisi yaşam döngüsü kancasını preDeploy destekler (bir kez yürütülür) ve , routeTrafficve postRouteTraffic yaşam döngüsü kancalarıyla yinelenirdeploy. Ardından veya failure kancasıyla success çıkar.

Bu stratejide aşağıdaki değişkenler kullanılabilir:

strategy.name: Stratejinin adı. Örneğin kanarya.
strategy.action: Kubernetes kümesinde gerçekleştirilecek eylem. Örneğin, dağıtın, yükseltin veya reddedin.
strategy.increment: Geçerli etkileşimde kullanılan artış değeri. Bu değişken yalnızca deploy, routeTrafficve postRouteTraffic yaşam döngüsü kancalarında kullanılabilir.

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

Aşağıdaki örnekte, AKS için kanarya stratejisi değişiklikleri ilk olarak yüzde 10 pod ile ve ardından yüzde 20 ile dağıtır ve sırasında postRouteTrafficsistem durumunu izler. Her şey yolunda giderse, yüzde 100'e yükseltecektir.

jobs: 
- deployment: 
  environment: smarthotel-dev.bookings
  pool: 
    name: smarthotel-devPool
  strategy:                  
    canary:      
      increments: [10,20]  
      preDeploy:                                     
        steps:           
        - script: initialize, cleanup....   
      deploy:             
        steps: 
        - script: echo deploy updates... 
        - task: KubernetesManifest@0 
          inputs: 
            action: $(strategy.action)       
            namespace: 'default' 
            strategy: $(strategy.name) 
            percentage: $(strategy.increment) 
            manifests: 'manifest.yml' 
      postRouteTraffic: 
        pool: server 
        steps:           
        - script: echo monitor application health...   
      on: 
        failure: 
          steps: 
          - script: echo clean-up, rollback...   
        success: 
          steps: 
          - script: echo checks passed, notify... 

Ayrıca bkz.