Eseguire il deployment in più destinazioni contemporaneamente

Utilizzando Cloud Deploy, puoi eseguire il deployment in un target configurato per rappresentare più target e la tua applicazione viene sottoposta a deployment in questi target in parallelo (contemporaneamente). Il target che identifichi come fase della pipeline è chiamato multi-target e i target che comprende sono chiamati target figlio.

Puoi utilizzare il deployment parallelo con qualsiasi tipo di target supportato da Cloud Deploy.

Perché il deployment parallelo

Puoi utilizzare il deployment parallelo, ad esempio, per eseguire il deployment della tua applicazione in più target di produzione. In questo caso, non devi eseguire il deployment in ogni target in sequenza, perché non c'è una progressione (ad esempio, da sviluppo a gestione temporanea a produzione).

Questo deployment parallelo può far parte di una normale pipeline di distribuzione progressione:
dev -> staging -> prod [prod1, prod2, prod3, prod4, ...].

Risorse di Cloud Deploy utilizzate per il deployment parallelo

Il deployment parallelo utilizza le seguenti risorse specializzate di Cloud Deploy:

  • Multi-target

    Un multi-target è un target configurato con la proprietà multiTarget, a livello superiore del file YAML di configurazione del target e, anziché fare riferimento al cluster o al servizio di runtime, fa riferimento a uno o più altri target utilizzando multiTarget.targetIds.

  • Target figlio

    Un target figlio è qualsiasi target a cui fa riferimento un multi-target come multiTarget.targetIds.

  • Implementazioni del controller

    Un'implementazione del controller è un'implementazione che corrisponde al multi-target.

    Per ulteriori informazioni su cosa puoi e non puoi fare con un'implementazione del controller, consulta la sezione Limitazioni.

  • Implementazioni figlio

    Per ulteriori informazioni su cosa puoi e non puoi fare con un'implementazione figlio, consulta la sezione Limitazioni.

Configurare il deployment parallelo

La configurazione del deployment parallelo consiste nel definire un multi-target e il numero di target figlio di cui hai bisogno (fino al limite). Le definizioni dei target sono le stesse di tutti i target, ad eccezione delle seguenti:

  • I multi-target includono la proprietà multiTarget.
  • I target figlio non includono la proprietà multiTarget, ma viene fatto riferimento al multi-target utilizzando la proprietà multiTarget.targetIds.
  • Puoi configurare il multi-target per l'approvazione, ma non i target figlio, che non possono includere requireApproval:true.

I multi-target e i target figlio possono includere configurazioni di ambienti di esecuzione personalizzati. Se un target figlio non specifica un ambiente di esecuzione, eredita quello definito nella definizione del multi-target o quello predefinito. Per ulteriori dettagli, consulta la sezione Ambienti di esecuzione e deployment parallelo.

Configurare il multi-target

Un multi-target è un singolo target identificato come fase della pipeline di distribuzione, ma che punta a uno o più target figlio.

La configurazione del multi-target include la proprietà multiTarget. Un multi-target non può avere le proprietà gke, run o anthosCluster. La configurazione di un multi-target è la stessa indipendentemente dal runtime in cui esegui il deployment.

Nel file YAML della pipeline di distribuzione o in un file YAML separato, crea la definizione di base del target, inclusa multiTarget:

apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
 name: TARGET_NAME
description: TARGET_DESCRIPTION
multiTarget:
 targetIds: [ CHILD_TARGET1, CHILD_TARGET2, CHILD_TARGETn ]

In questo file YAML...

  • TARGET_NAME è il nome di questo multi-target, che è utilizzato nella definizione della pipeline di distribuzione, proprietà stages.targetId.

  • CHILD_TARGET1, CHILD_TARGET2,...CHILD_TARGETn sono i nomi dei target figlio in cui viene eseguito il deployment di questo multi-target. Ogni nome corrisponde alla proprietà name nella definizione del target figlio.

La presenza della proprietà multiTarget.targetIds rende questo target un multi-target.

Configurare i target figlio

Per ogni target identificato come figlio nella configurazione del multi-target, configura un altro target come target figlio:

Nel file YAML della pipeline di distribuzione o in un file YAML separato, crea la definizione di base del target:

GKE

apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
 name: CHILD_TARGET1
description: TARGET_DESCRIPTION
gke:
 cluster: projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME

In questo file YAML...

  • CHILD_TARGET1 è il nome di questo target figlio. Il nome corrisponde a un membro dell'elenco dei target nella proprietà multiTarget.targetIds nella