Automazione del deployment

Questo documento fornisce una panoramica dell'automazione del deployment.

Puoi configurare Cloud Deploy in modo da eseguire automaticamente le attività relative alle release e all'implementazione per una determinata pipeline di distribuzione. Queste attività includono uscita promozione e avanzamento di fase.

Scopri di più sulle risorse utilizzate per e rilasciare l'automazione in Cloud Deploy.

Scopri di più su come configurare le regole che definiscono il funzionamento di queste automazioni.

Azioni che puoi automatizzare

In Cloud Deploy, puoi automatizzare le seguenti attività di rilascio e implementazione:

Consulta le regole di automazione per saperne di più su queste azioni e come configurarle.

Come funziona l'automazione?

Ogni automazione è collegata alla pipeline di importazione per la quale viene utilizzata. Non puoi condivide un'automazione tra più pipeline di distribuzione.

Di seguito è riportato il processo generale per la configurazione e l'esecuzione di un automazione:

  1. Configura un'automazione

    Questa automazione è associata a una pipeline di distribuzione.

  2. Registri l'automazione utilizzando gcloud deploy apply.

    Viene creata la risorsa automazione.

  3. Puoi richiamare la pipeline di distribuzione associata a questa automazione creando una release.

  4. L'implementazione va a buon fine per almeno un target o non va a buon fine.

    Se l'implementazione va a buon fine e l'automazione è promoteReleaseRule:

    1. L'esecuzione attende che l'implementazione vada a buon fine nel target di origine. La destinazione di origine è il selector.targets configurato per l'automazione, non nel AutomationRule.

    2. Se è configurato un orario wait, l'esecuzione attende anche questo orario.

    3. La release viene promossa automaticamente al target successivo nella progressione della pipeline o a un target specifico, se indicato.

    Se l'implementazione va a buon fine e l'automazione è advanceRolloutRule e il target utilizza una strategia di deployment canary:

    1. L'esecuzione attende l'identificazione fase di origine, se disponibile.

      La proprietà sourcePhase è facoltativa e se non sono presenti fasi sorgente specificato, ogni fase dell'implementazione viene avanzata automaticamente. La l'avanzamento automatico della fase avviene quando la fase di origine IN_PROGRESS, soggetto a wait volta.

    2. Se è configurato un orario wait, l'esecuzione attende anche questo orario.

      Quando automatizza un deployment canary, utilizzerai questo tempo di attesa per specificare la durata di ogni fase canary.

    3. L'implementazione passa automaticamente dalla fase di origine a quella successiva durante l'implementazione.

    4. Se c'è una fase di origine aggiuntiva, viene trattata allo stesso modo, includendo stesso tempo di attesa, se applicabile.

    Se l'implementazione non va a buon fine ed è presente un'automazione con una regola repairRollout:

    1. Viene eseguito un nuovo tentativo di implementazione dopo l'ora wait configurata, se presente.

      Se in questa regola repairRollout sono configurate fasi o job specifici, viene eseguito un nuovo tentativo solo per queste fasi o questi job. L'impostazione predefinita, se nessun job o nessun job del deployment, consiste nel riprovare tutte le fasi e i job nell'implementazione.

      Poiché i nuovi tentativi sono facoltativi, se l'automazione non è configurata su riprova, questo passaggio non succede.

    2. Se il primo tentativo non va a buon fine, l'esecuzione attende il tempo wait configurato, poi riprova.

    3. Le ripetizioni vengono ripetute finché Cloud Deploy non ha esaurito il numero di tentativi attempts.

      Se tutti i tentativi falliscono e i attempts sono esauriti, l'implementazione non va a buon fine.

      Durante i nuovi tentativi, l'implementazione stato è IN_PROGRESS finché l'implementazione non va a buon fine o non riesce a seguire il ultimo tentativo di nuovo. Lo stato della fase è IN_PROGRESS durante i tentativi di ripetizione, ma FAILED dopo ogni fallimento dell'implementazione.

    4. Se tutti i tentativi non vanno a buon fine (o non ne è stato configurato nessuno), viene creata una nuova implementazione per eseguire il rollback alla release riuscita più recente nel target.

Risorse di Automation

Esistono due risorse Cloud Deploy specifiche per l'automazione:

  • Automazione

    Un Automation è una risorsa secondaria di una pipeline di importazione e include le seguenti informazioni:

    • Un puntatore al target o ai target per cui viene utilizzata l'automazione
    • La regola o le regole che regolano cosa fa l'automazione e come lo fa

    La configurazione della risorsa di Automation è descritta nel documento Informazioni sulla risorsa di automazione.

    Quando esegui gcloud deploy apply su un file che include un'automazione (kind: Automation), Cloud Deploy crea un'istanza risorse di automazione, che associa una pipeline di distribuzione e una o più destinazioni a uno o più regole di automazione.

  • Esecuzione automazione

    AutomationRun è un'istanza di un'automazione. È un puntatore alla sua risorsa di Automation corrispondente, più informazioni sull'implementazione e altri metadati.

    L'esecuzione dell'automazione viene creata quando viene attivata un'automazione.

Scopri di più sulle risorse di automazione.

Regole di Automation

Una regola di automazione definisce un'azione che può essere eseguita automaticamente sulla pipeline di distribuzione, nonché i dettagli su come deve essere eseguita l'automazione.

Scopri di più sulle regole di automazione.

Ruoli e autorizzazioni di Identity and Access Management richiesti

Oltre alle autorizzazioni necessarie per eseguire qualsiasi pipeline di distribuzione Cloud Deploy e per eseguire le attività da automatizzare (ad esempio l'avanzamento di un rollout), sono necessarie diverse autorizzazioni per eseguire determinate operazioni sulle risorse Automation e AutomationRun:

  • clouddeploy.automations.create
  • clouddeploy.automations.delete
  • clouddeploy.automations.get
  • clouddeploy.automations.list
  • clouddeploy.automations.update
  • clouddeploy.automationRuns.cancel
  • clouddeploy.automationRuns.get
  • clouddeploy.automationRuns.list

Oltre a queste autorizzazioni, ogni regola di automazione potrebbe richiedere ulteriori autorizzazioni per eseguire l'operazione automatica. Consulta Configurare le regole di automazione per conoscere le autorizzazioni specifiche necessarie per ogni regola di automazione.

Per ulteriori informazioni, tra cui i ruoli Cloud Deploy che includono queste autorizzazioni, consulta Ruoli e autorizzazioni IAM.

Crea un'automazione

Puoi creare un'automazione, ad esempio utilizzare una qualsiasi delle regole di automazione disponibili, configurando un'automazione e creando poi la risorsa di automazione gcloud deploy apply

Consulta la sezione seguente (Configurazione dell'automazione) e Configurazione delle regole di automazione.

Configurazione dell'automazione

Consulta lo schema del file di configurazione per informazioni dettagliate su come configurare la risorsa Automation.

Configurazione delle regole di Automation

Oltre a questa configurazione di automazione, specifica regole di automazione. La configurazione è diversa per ciascuna delle regole disponibili.

Consulta Utilizzare le regole di automazione per le descrizioni di ciascuna delle regole disponibili.

Sospendere un'automazione

Puoi sospendere una risorsa esistente senza eliminarla. Può essere utile per testare un'automazione senza influire sulla pipeline di distribuzione. Quando interrompi un'automazione, questa non viene eseguita, ma vengono comunque generati i log della piattaforma.

  1. Nella configurazione Automation, aggiorna la proprietà suspended su true.

  2. Esegui gcloud deploy apply sul file di configurazione.

  3. I log della piattaforma vengono comunque generati quando viene creata un'istanza dell'automazione, anche se è sospesa. Puoi utilizzarlo per testare e eseguire il debug dell'automazione senza influire sulla pipeline di importazione.

Passaggi successivi