Automazione del deployment

Questo documento è una panoramica dell'automazione del deployment.

Puoi configurare Cloud Deploy per eseguire automaticamente attività relative alla release e al lancio per una determinata pipeline di distribuzione. Queste attività includono la promozione della release e l'avanzamento della fase.

Scopri di più sulle risorse utilizzate per l'automazione delle release 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:

  • Promuovi una release

    Puoi configurare Cloud Deploy per promuovere automaticamente la tua release dopo un'implementazione riuscita in una destinazione. Ad esempio, se hai tre target, dev, staging e prod, puoi configurare un'automazione in modo che la release venga promossa a prod, senza ulteriori interazioni umane, dopo un deployment riuscito in staging.

  • Prosegui con un'implementazione

    Puoi configurare Cloud Deploy per far avanzare un'implementazione da una fase a quella successiva, dopo aver eseguito correttamente l'implementazione al target precedente. L'avanzamento di fase è disponibile solo nelle destinazioni che utilizzano una strategia di deployment canary.

Come funziona l'automazione?

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

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

  1. Devi configurare 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 è riuscita in almeno una destinazione.

  5. Nel target per cui è configurata questa automazione...

    Se l'automazione è promoteReleaseRule:

    1. L'esecuzione attende la riuscita dell'implementazione nella destinazione di origine. La destinazione di origine è il selector.targets configurato per l'automazione, non in AutomationRule.

    2. Se è stato configurato un intervallo di tempo wait, l'esecuzione attende anche questo orario.

    3. La release viene promossa automaticamente al target successivo nell'avanzamento della pipeline o a un target specifico, se indicato.

    Se l'automazione è advanceRolloutRule e il target utilizza una strategia di deployment canary:

    1. L'esecuzione attende fino alla fase di origine identificata, se presente.

      La proprietà sourcePhase è facoltativa e, se non vengono specificate fasi di origine, ogni fase dell'implementazione viene avanzata automaticamente. L'avanzamento automatico della fase avviene quando la fase di origine è IN_PROGRESS, soggetta a tempo wait.

    2. Se è stato configurato un intervallo di tempo wait, l'esecuzione attende anche questo orario.

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

    3. L'implementazione viene avanzata automaticamente dalla fase di origine a quella successiva.

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

Risorse per l'Automation

Esistono due risorse Cloud Deploy specifiche per l'automazione:

  • Automazione

    Un elemento Automation è una risorsa figlio di una pipeline di distribuzione e include le seguenti informazioni:

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

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

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

  • Esecuzione automazione

    AutomationRun è un'istanza di un'automazione. È un riferimento alla risorsa di Automation corrispondente, nonché informazioni sull'implementazione che l'ha generata 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.

Autorizzazioni e ruoli di Identity and Access Management richiesti

Oltre alle autorizzazioni necessarie per eseguire qualsiasi pipeline di distribuzione di Cloud Deploy e per eseguire attività automatiche (come l'avanzamento di un'implementazione), 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

Consulta Ruoli e autorizzazioni IAM Per ulteriori informazioni, inclusi i ruoli di Cloud Deploy che includono queste autorizzazioni.

Crea un'automazione

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

Consulta le sezioni seguenti (Configurare l'automazione) e Configurare le regole di automazione.

Configurazione dell'automazione

Consulta lo schema del file di configurazione per i dettagli su come configurare la risorsa Automation.

Configurazione delle regole di Automation

Oltre a questa configurazione dell'automazione, devi specificare regole di automazione. La configurazione è diversa per ogni regola disponibile.

Per le descrizioni di ognuna delle regole disponibili, consulta Utilizzo delle regole di automazione.

Sospendi un'automazione

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

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

  2. Esegui gcloud deploy apply su quel 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 ed eseguire il debug dell'automazione senza influire sulla pipeline di distribuzione.

Passaggi successivi