Com o Cloud Deploy, é possível implantar em um destino configurado para representar vários destinos, e o aplicativo é implantado nesses destinos em paralelo (simultaneamente). O objetivo que você identifica como etapa do pipeline é chamado de vários destinos, compostos por vários destinos são chamados de destinos filhos.
É possível usar a implantação paralela com qualquer tipo de destino que O Cloud Deploy dá suporte, incluindo o Google Kubernetes Engine, o Cloud Run e o GKE Enterprise.
Por que usar a implantação paralela?
É possível usar a implantação paralela, por exemplo, para implantar seu aplicativo em várias finalidades de produção. Nesse caso, não é necessário implantar em cada destino consecutivo, porque não há progressão (por exemplo, de desenvolvimento para da fase de testes até a produção).
Essa implantação paralela pode fazer parte de um pipeline de entrega normal
progressão:
dev -> staging -> prod [prod1, prod2, prod3, prod4, ...]
.
Recursos do Cloud Deploy usados para implantação paralela
A implantação paralela usa as seguintes ferramentas especializadas do Cloud Deploy recursos:
vários destinos
Um destino múltiplo é um destino configurado com a propriedade
multiTarget
. no nível superior do YAML de configuração de destino e, em vez de referenciar o cluster ou serviço de ambiente de execução, ele faz referência a um ou mais destinos, usandomultiTarget.targetIds
.Destinos filhos
Um destino filho é qualquer destino referenciado por um destino múltiplo
multiTarget.targetIds
: O filho também precisa fazer referência a um tipo de destino compatível Google Kubernetes Engine, GKE Enterprise ou Cloud Run.Lançamentos do controlador
Um lançamento de controlador é um lançamento que corresponde a vários destinos.
Consulte Limitações para mais informações sobre o que você pode e o que não pode fazer com um lançamento de controlador.
-
Consulte Limitações para mais informações sobre o que você pode e não pode fazer com um lançamento filho.
Configurar implantação paralela
A configuração da implantação paralela consiste em definir um destino múltiplo e o número de destinos filhos necessários (até o limite). As definições de destino são as mesmas para todos os destinos, exceto:
- Os vários destinos incluem a propriedade
multiTarget
. - Os destinos filhos não incluem a propriedade
multiTarget
, mas são referenciados. do destino múltiplo usando a propriedademultiTarget.targetIds
. - É possível configurar vários destinos para aprovação, mas não os filhos.
que não pode incluir
requireApproval:true
.
Vários destinos e destinos filhos podem incluir ambiente de execução configurações predefinidas. Se um destino filho não especificar um ambiente de execução, ele herda o definido na definição de destino múltiplo ou o padrão. Consulte Ambientes de execução e implantação paralela para mais detalhes.
Configurar vários destinos
Um destino com vários destinos é um segmento único identificado como uma etapa na sua entrega pipeline, mas apontando para um ou mais destinos filhos.
A configuração de vários destinos inclui a propriedade multiTarget
. Um
alvo múltiplo não pode ter as propriedades gke
, run
ou anthosCluster
.
A configuração para vários destinos é a mesma, independentemente do ambiente de execução que você está
implantar.
No YAML do pipeline de entrega ou em um arquivo YAML separado, crie a definição de destino básica, incluindo multiTarget
:
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
name: TARGET_NAME
description: TARGET_DESCRIPTION
multiTarget:
targetIds: [ CHILD_TARGET1, CHILD_TARGET2, CHILD_TARGETn ]
Neste YAML...
TARGET_NAME é o nome desse destino múltiplo, que é usada na definição do pipeline de entrega, propriedade
stages.targetId
.CHILD_TARGET1, CHILD_TARGET2,...CHILD_TARGETn são os nomes dos destinos filhos nos quais os destinos múltiplos são implantados. Cada nome corresponde à propriedade
name
na definição do destino filho.
A presença da propriedade multiTarget.targetIds
torna esse destino um
vários destinos.
Configurar os destinos filhos
Para cada destino identificado como uma criança na sua configuração de vários destinos, configure outro como destino filho:
No YAML do pipeline de entrega ou em um arquivo YAML, crie a definição básica do destino:
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
Neste YAML...
CHILD_TARGET1 é o nome do destino filho. O corresponde a um membro na lista de destinos no Propriedade
multiTarget.targetIds
na definição de várias segmentações.O valor da propriedade
gke.cluster
é o nome do recurso do cluster a que o destino se refere, incluindo o ID do projeto, a região e o nome.
Esse destino é configurado da mesma forma que um destino padrão do GKE.
A única coisa que o torna um destino filho é que ele é referenciado pelo
multiTarget.targetIds
nos destinos múltiplos.
Cloud Run
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
name: CHILD_TARGET1
description: TARGET_DESCRIPTION
run:
location: projects/PROJECT_ID/locations/REGION
Neste YAML...
CHILD_TARGET1 é o nome dessa segmentação filha. O nome corresponde a um membro na lista de destinos na propriedade
multiTarget.targetIds
na definição de vários destinos.O valor da propriedade
run.location
é o nome do recurso da serviço do Cloud Run a que este destino se refere, incluindo o ID do projeto e a região.
Esse destino é configurado da mesma forma que um Cloud Run padrão
alvo. A única coisa que faz com que esse seja um destino filho é que ele é referenciado
pela propriedade multiTarget.targetIds
no destino múltiplo.
GKE Enterprise
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
name: CHILD_TARGET1
description: TARGET_DESCRIPTION
anthosCluster:
membership: projects/PROJECT_ID/locations/global/memberships/MEMBERSHIP_NAME
Neste YAML...
CHILD_TARGET1 é o nome do destino filho. O corresponde a um membro na lista de destinos no Propriedade
multiTarget.targetIds
na definição de várias segmentações.MEMBERSHIP_NAME é o nome que você escolheu quando registrou o cluster de usuário do GKE Enterprise a uma frota.
Essa meta é configurada da mesma forma que uma meta padrão do GKE Enterprise. A única coisa que o torna um destino filho é que ele é referenciado
pela propriedade multiTarget.targetIds
nos destinos múltiplos.
Transmitir parâmetros de implantação para destinos
É possível diferenciar entre destinos filhos incluindo parâmetros em seu na definição do pipeline de entrega. Esses valores podem ser aplicada separadamente à Manifestos separados, com base na correspondência de rótulos nos destinos correspondentes.
Por exemplo, talvez você queira um número diferente de réplicas para cada filho alvo. Para isso, você deve incluir os parâmetros e valores no arquivo a progressão do pipeline, bem como rótulos nos destinos filhos para corresponder a cada par de parâmetro e valor.
Saiba mais sobre parâmetros de implantação.
Criar a versão
Com vários destinos e destinos filhos configurados, criar o pipeline de entrega e os recursos de destino, e depois criar uma versão, como de costume.
O ciclo de vida do pipeline de entrega é igual pipeline e destinos do Cloud Deploy, exceto que quando ele chega com vários destinos, o Cloud Deploy cria um controlador de destino para vários destinos e um lançamento filho para implantar o aplicativo para cada destino filho.
Mensagens do Pub/Sub em resposta a operações do Cloud Deploy distinguir entre lançamentos de controladores e lançamentos de filhos.
Limitações
Um destino múltiplo não pode ter mais de 50 destinos filhos.
Todos os destinos filhos de um único destino múltiplo precisam ter o mesmo ambiente de execução de destino (todo o GKE ou todo o GKE Enterprise, por exemplo).
Em um pipeline de entrega, um destino filho só pode ter um pai vários destinos.
Um destino múltiplo não pode ser sem filhos nem fazer referência a si mesmo ou a outro vários destinos como destinos filhos.
Não é possível usar um destino filho mais de uma vez em um pipeline de entrega. mas é possível reutilizá-los em um pipeline diferente.
Os pools padrão têm limites de simultaneidade, mas os pools particulares não.
Quando você implanta em vários destinos, todos os lançamentos filhos são implantados no mesmo até o limite de simultaneidade do Cloud Build. Se você tiver mais destinos filhos do que isso os jobs de implantação de alguns destinos não serão executados até que outros terminem, o que significa que o Cloud Deploy não é implantado em todos os destinos filhos na ao mesmo tempo.
Além disso, se os destinos incluírem verificar jobs, é possível que um ou mais desses jobs de verificação comecem antes do o aplicativo foi implantado em todos os destinos filhos.
Se for preciso implantar simultaneamente em mais destinos do que o limite especificado na documentação do Cloud Build, têm duas opções:
Solicite um aumento do número de de builds simultâneas que você pode executar.
Configurar um pool privado e configure seus destinos para usar esse pool.
Ambientes de execução e implantação paralela
Cada destino pode ser configurado para usar um ambiente de execução não padrão.
Se os vários destinos tiverem um ambiente de execução não padrão, todos os destinos filhos usando o ambiente de execução padrão, herdam o não padrão do vários destinos
Se os vários destinos usarem o ambiente de execução padrão, qualquer destino filho configurado com um ambiente de execução não padrão usa esse não padrão.
Essas regras facilitam a propagação de ambientes de execução para destinos filhos de um destino múltiplo, e você não precisa definir ou alterar de destino para cada segmento filho, além de permitir a personalização da ambiente de execução para um ou mais destinos filhos, se necessário.
Consulte Como usar os ambientes de execução do Google Cloud Deploy para mais informações sobre os ambientes de execução no Cloud Deploy.
Reverter uma implantação paralela
Se você precisar reverter uma implantação de vários destinos paralelos, Reverter os vários destinos, conforme descrito em Reverter uma meta.
Aprovações para implantação paralela
Como acontece com qualquer destino, você pode configurar sua implantação paralela para exigir aprovação. Com a implantação paralela, no entanto, você só pode configurar a aprovação no vários destinos. A aprovação ou rejeição afeta todos os destinos filhos juntos.
Acessar a implantação paralela no console do Google Cloud
É possível conferir detalhes de vários destinos, destinos filhos, o lançamento do controlador e lançamentos filhos no console do Google Cloud.
Quando você consulta a lista de destinos de um determinado pipeline de entrega, nos detalhes do pipeline, o destino múltiplo é listado, mas os destinos filhos não são. Ao visualizar os detalhes da versão, no entanto, é possível conferir o lançamento do controlador e dos lançamentos filhos. Também é possível conferir os lançamentos de controladores e filhos listados na página Guia Lançamentos na página de detalhes do pipeline de entrega.
No Inspetor de versão, é possível consultar e comparar e renderizados para lançamentos filhos.
Usar implantação paralela com uma estratégia de implantação
É possível implantar em paralelo quando você usa uma estratégia de implantação de canário. Consulte Usar a implantação paralela com uma estratégia de implantação canário para mais informações.
A seguir
Confira o guia de início rápido: implantar um app em vários destinos ao mesmo tempo.
Saiba mais sobre como usar parâmetros de implantação.
Consulte o esquema de configuração de destino.
Leia o artigo Arquitetura de serviço do Cloud Deploy.