Automazione del deployment

Questo documento offre una panoramica dell'automazione del deployment.

Puoi configurare Cloud Deploy per eseguire automaticamente le attività correlate al rilascio e all'implementazione per una determinata pipeline di distribuzione. Queste attività includono la promozione della release e l'avanzamento di 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:

  • Promuovere automaticamente una release

    Puoi configurare Cloud Deploy in modo che promuova automaticamente la release dopo l'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. Puoi anche specificare un tempo di ritardo.

  • Promuovere una release in base a una pianificazione

    Puoi configurare Cloud Deploy per promuovere la release in base a una pianificazione cron.

  • Avanzare un'implementazione

    Puoi configurare Cloud Deploy per far avanzare un'implementazione da una fase all'altra, dopo un'implementazione riuscita nella destinazione precedente. L'avanzamento di fase è disponibile solo nelle destinazioni che utilizzano una strategia di deployment canary.

  • Correggere un'implementazione

    Puoi configurare Cloud Deploy in modo che riprovi automaticamente un rollout non riuscito. Ciò include il tentativo di eseguire il rollout un numero specificato di volte e il rollback automatico se il numero di tentativi non va a buon fine.

Per saperne di più su queste azioni e su come configurarle, consulta Regole di automazione.

Come funziona l'automazione?

Ogni automazione è associata alla pipeline di distribuzione per cui viene utilizzata. Non puoi condividere un'automazione tra più pipeline di distribuzione.

Di seguito è riportata la procedura generale per la configurazione e l'esecuzione di un'automazione:

  1. Configuri un'automazione

    Questa automazione è associata a una pipeline di pubblicazione.

  2. Registri l'automazione utilizzando gcloud deploy apply.

    In questo modo viene creata la risorsa Automazione.

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

  4. L'implementazione ha esito positivo per almeno una destinazione o non riesce.

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

    1. L'esecuzione attende che il rollout abbia esito positivo nella destinazione di origine. La destinazione di origine è selector.targets configurato per l'automazione, non in AutomationRule.

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

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

    Se l'implementazione ha esito positivo e l'automazione è advanceRolloutRule e la destinazione utilizza una strategia di deployment canary:

    1. L'esecuzione attende la 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 si verifica quando la fase di origine è IN_PROGRESS, in base al tempo wait.

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

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

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

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

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

    1. Il lancio viene ritentato dopo il wait configurato, se presente.

      Se in questa regola repairRollout sono configurate fasi o job specifici, vengono riprovate solo queste fasi o questi job. Se non vengono specificati job o fasi, il comportamento predefinito è di riprovare tutte le fasi e tutti i job nel rollout.

      Poiché i tentativi sono facoltativi, se l'automazione non è configurata per riprovare, questo passaggio non viene eseguito.

    2. Se il primo tentativo non riesce, l'esecuzione attende il tempo wait configurato, poi riprova.

    3. I tentativi vengono ripetuti finché Cloud Deploy non esaurisce i tentativi attempts.

      Se ogni tentativo non va a buon fine e i attempts sono esauriti, l'implementazione non riesce.

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

    4. Se tutti i tentativi non vanno a buon fine (o non ne è configurato nessuno), viene creata una nuova implementazione per eseguire il rollback all'ultima release riuscita sulla destinazione.

Risorse per l'Automation

Esistono due risorse Cloud Deploy specifiche per l'automazione:

  • Automazione

    Un Automation è una risorsa secondaria 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 regolano le azioni dell'automazione e le modalità di esecuzione

    La configurazione della risorsa di 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 puntatore alla risorsa di Automation corrispondente, oltre a informazioni sul rollout 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.

Ruoli e autorizzazioni Identity and Access Management richiesti

Oltre alle autorizzazioni necessarie per eseguire qualsiasi pipeline di distribuzione di Cloud Deploy e per eseguire le attività da automatizzare (come 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 le autorizzazioni specifiche necessarie per ogni regola di automazione.

Consulta Ruoli e autorizzazioni IAM per saperne di più, inclusi i ruoli di Cloud Deploy che includono queste autorizzazioni.

Crea un'automazione

Puoi creare un'automazione, inclusa l'utilizzo di una delle regole di automazione disponibili, configurando un'automazione, quindi creando la risorsa di automazione utilizzando gcloud deploy apply.

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

Configurazione dell'automazione

Per informazioni dettagliate su come configurare la risorsa Automation, consulta lo schema del file di configurazione.

Configurazione delle regole di Automation

Oltre a questa configurazione dell'automazione, devi specificare le regole di automazione. La configurazione è diversa per ciascuna delle regole disponibili.

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

Sospendere 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 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 l'automazione viene istanziata, anche se è sospesa. Puoi utilizzarlo per testare ed eseguire il debug dell'automazione senza influire sulla pipeline di pubblicazione.

Passaggi successivi