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 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:
Promuovere automaticamente una release
Puoi configurare Cloud Deploy per promuovere automaticamente la release dopo un'implementazione riuscita in un target. Ad esempio, se hai tre target,
dev
,staging
eprod
, puoi configurare un'automazione in modo che la release venga promossa aprod
, senza ulteriore interazione umana, dopo un deployment riuscito instaging
. 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.
-
Puoi configurare Cloud Deploy per far avanzare un'implementazione da una fase all'altra, dopo un'implementazione riuscita nel target precedente. L'avanzamento della fase è disponibile solo nei target che utilizzano una strategia di deployment canary.
Riparazione di un'implementazione
Puoi configurare Cloud Deploy in modo che riprovi automaticamente un rollout non riuscito. Sono inclusi il nuovo tentativo di implementazione un numero specificato di volte e il rollback automatico se questo 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 è collegata alla pipeline di importazione per la quale viene utilizzata. Non puoi condividere un'automazione in più pipeline di importazione.
Di seguito è riportata la procedura generale per la configurazione e l'esecuzione di un'automazione:
-
Questa automazione è associata a una pipeline di importazione.
Registra l'automazione utilizzando
gcloud deploy apply
.Viene creata la risorsa automazione.
Puoi richiamare la pipeline di distribuzione associata a questa automazione creando una release.
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
:L'esecuzione attende il completamento dell'implementazione nel target di origine. La destinazione di origine è il
selector.targets
configurato per l'automazione, non nelAutomationRule
.Se è configurato un orario
wait
, l'esecuzione attende anche questo orario.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, l'automazione è
advanceRolloutRule
e il target utilizza una strategia di implementazione canary:L'esecuzione attende la fase di origine identificata, se esistente.
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
, in base all'orawait
.Se è configurato un orario
wait
, l'esecuzione attende anche questo orario.Quando automatizzi un deployment canary, utilizzi questo tempo di attesa per specificare la durata di ogni fase del canary.
L'implementazione viene avanzata automaticamente dalla fase di origine alla fase successiva dell'implementazione.
Se è presente un'ulteriore fase di origine, viene trattata allo stesso modo, incluso lo stesso tempo di attesa, se applicabile.
Se l'implementazione non va a buon fine ed è presente un'automazione con una regola
repairRollout
: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. Per impostazione predefinita, se non vengono specificati job o fasi, viene eseguito nuovamente tutti i job e le fasi dell'implementazione.Poiché i tentativi di nuovo invio sono facoltativi, se l'automazione non è configurata per eseguire nuovamente l'operazione, questo passaggio non viene eseguito.
Se il primo tentativo non va a buon fine, l'esecuzione attende il tempo
wait
configurato, poi riprova.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 tentativi di ripetizione, lo stato dell'implementazione è
IN_PROGRESS
finché l'implementazione non va a buon fine o non va a buon fine dopo il tentativo di ripetizione finale. Lo stato della fase èIN_PROGRESS
durante i tentativi di ripetizione, maFAILED
dopo ogni fallimento dell'implementazione.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 i quali 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 una configurazione di automazione (kind: Automation
), Cloud Deploy crea una risorsa di automazione che associa una pipeline di importazione e un target o più target a una o più regole di automazione.Esecuzione automazione
AutomationRun
è un'istanza di un'automazione. Si tratta di un puntatore alla corrispondente risorsa di Automation, oltre a informazioni sull'implementazione che lo ha generato e ad 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, anche utilizzando una delle
regole di automazione disponibili,
configurando un'automazione e poi 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
Consulta lo schema del file di configurazione per informazioni dettagliate su come configurare la risorsa Automation
.
Configurazione della regola di Automation
Oltre a questa configurazione di automazione, puoi specificare 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. Questo può essere utile per testare un'automazione senza influire sulla pipeline di importazione. Quando interrompi un'automazione, questa non viene eseguita, ma vengono comunque generati i log della piattaforma.
Nella configurazione
Automation
, aggiorna la proprietàsuspended
sutrue
.Esegui
gcloud deploy apply
sul file di configurazione.I log della piattaforma vengono comunque generati quando viene creata l'istanza dell'automazione, anche se è sospesa. Puoi utilizzarlo per testare e eseguire il debug dell'automazione senza influire sulla pipeline di importazione.
Passaggi successivi
Prova la guida rapida: automatizza la creazione delle release e l'avanzamento dell'implementazione.
Scopri di più sulle regole di automazione di Cloud Deploy.
Scopri di più sulle risorse di automazione di Cloud Deploy.
Per informazioni dettagliate sui file di configurazione dell'automazione, consulta la documentazione dello schema del file di configurazione.