Visão geral do Google Cloud Deploy

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

O Google Cloud Deploy é um serviço gerenciado que automatiza a entrega de aplicativos para uma série de ambientes de destino em uma sequência de promoções definida. Quando você quiser implantar seu aplicativo atualizado, será necessário criar uma versão, cujo ciclo de vida é gerenciado por um pipeline de entrega.

Como funciona um pipeline de implantação do Google Cloud

O pipeline de entrega do Google Cloud Deploy contém as seguintes informações:

  • Um nome, que você usa ao se referir ao pipeline de entrega, e uma descrição.

  • A sequência de promoção, que descreve a ordem de implantação dos destinos configurados.

  • Rótulos ou anotações.

  • Também é possível usar as próprias definições de destino.

Os destinos podem ser definidos no mesmo arquivo de configuração do pipeline de entrega ou em um ou mais arquivos separados. Vários pipelines de entrega podem usar os mesmos destinos, mas um determinado destino pode ser usado apenas uma vez em um determinado pipeline de entrega.

O processo de entrega do Google Cloud Deploy

Veja a seguir uma descrição do que acontece em um cenário simples de entrega contínua do Google Cloud Deploy.

  1. O pipeline de entrega é definido em um arquivo de configuração YAML.

    Esse arquivo de configuração define a sequência de promoção na qual implantar seu aplicativo em uma série de destinos.

    Você também precisa de uma configuração do Skaffold, que o Google Cloud Deploy precisa para executar operações de renderização e implantação.

  2. Defina os destinos no arquivo de configuração do pipeline ou em um arquivo ou arquivos separados.

  3. Você registra seu pipeline com o serviço do Google Cloud Deploy.

    Agora que conhece o aplicativo, o serviço gerencia a implantação para os destinos de acordo com a sequência de promoção definida.

  4. A saída do processo de CI inclui uma chamada para o Google Cloud Deploy para iniciar o pipeline de entrega.

    Essa chamada cria um recurso release, que representa o manifesto renderizado para cada destino, cada um dos quais é gerado usando a origem de renderização fornecida, skaffold.yaml e as referências a imagens de contêiner específicas a serem implantadas. Nessa primeira chamada para criar uma versão, o Google Cloud Deploy cria automaticamente um recurso rollout, que associa a versão ao primeiro ambiente de destino. Com base nesse lançamento, seu aplicativo será implantado no primeiro destino.

    É possível usar qualquer ferramenta de CI, desde que gere uma ou mais imagens de contêiner para fornecer ao pipeline de entrega do Google Cloud Deploy.

    Além disso, a chamada para criar uma versão e invocar um pipeline de entrega não precisa ser proveniente da ferramenta de CI. Ele pode vir de um script ou de qualquer sistema que responda à conclusão do processo de CI.

  5. Quando estiver pronto para implantar o aplicativo no próximo destino, chame o Google Cloud Deploy para promovê-lo.

    Em cada caso, a chamada para invocar a promoção faz com que o Google Cloud Deploy crie um novo lançamento.

  6. A promoção continua em todas as segmentações da sequência de promoções, sendo a última da prod (ou qualquer nome usado na meta final para colocar o aplicativo em produção).

    O processo de criação e promoção de versão é descrito em mais detalhes na arquitetura de serviço do Google Cloud Deploy.

Durante a execução do pipeline, o Google Cloud Deploy coleta detalhes e a auditoria.

Promoção

Para promover uma versão, você precisa implantá-la no próximo destino na sequência de promoção definida no pipeline. A primeira chamada para o Google Cloud Deploy cria um release, e em seguida um recurso rollout usado para implantar no primeiro destino na sequência de promoção. Cada chamada subsequente para promover a versão resulta em um lançamento para a próxima meta.

Aprovações

Você pode especificar que uma aprovação é necessária para promover qualquer destino. Por exemplo, talvez você queira exigir a aprovação de uma promoção em um destino de produção. Para exigir aprovação de um destino, defina a property requireApproval na definição de destino.

Quando um destino requer aprovação, o Google Cloud Deploy gera uma mensagem do Pub/Sub que pode ser consumida por um sistema integrado. Por exemplo, um sistema de tíquetes pode se inscrever na mensagem para iniciar um fluxo de trabalho de aprovação.

Consulte Exigir aprovação para mais informações sobre promoções e gerenciamento da aprovação de promoções.

Notificações

O Google Cloud Deploy fornece notificações do Pub/Sub para os seguintes eventos:

  • Renderização: início, sucesso e falha
  • Implantação: início, sucesso e falha
  • Aprovação necessária
  • Aprovação aprovada
  • Aprovação rejeitada

O Google Cloud Deploy usa um tópico do Pub/Sub para enviar essas notificações.

Consulte Como usar as notificações do Google Cloud Deploy para mais detalhes.

Reversões

O Google Cloud Deploy é compatível com a reversão do aplicativo implantado em qualquer destino. Uma reversão no Google Cloud Deploy consiste em acionar um lançamento na última versão implantada com sucesso. O novo lançamento usa os mesmos parâmetros que foram usados na implantação bem-sucedida.

Consulte Como reverter uma implantação para mais detalhes.

Sobre o Skaffold e o Google Cloud Deploy

O Google Cloud Deploy usa o Skaffold para renderização, implantação e verificação. Com o Skaffold, também é possível conectar facilmente seu loop de desenvolvimento local a um pipeline de entrega contínua do Google Cloud Deploy.

Para saber mais sobre como o Google Cloud Deploy se integra ao Skaffold, consulte a visão geral do Skaffold.

Google Cloud Deploy com outras ferramentas do Google Cloud

O Google Cloud Deploy é compatível com quase todas as ferramentas upstream em um pipeline de CI/CD. Ou seja, é possível usar qualquer ambiente de desenvolvimento e repositório de código-fonte, qualquer sistema de integração contínua (CI) e qualquer repositório de artefatos.

downstream, o Google Cloud Deploy implanta apenas no Google Kubernetes Engine.

Se você usasse principalmente as ferramentas do Google Cloud, o fluxo de origem para produção seria assim:

  1. Use o Cloud Code para criar a origem do aplicativo.

    O Cloud Code estende vários ambientes de desenvolvimento integrado conhecidos (VS Code, IntelliJ, Cloud Shell) para facilitar a criação de aplicativos para implantação e execução no Google Cloud.

  2. Use o Skaffold para gerenciar seu loop de desenvolvimento local.

    O Google Cloud Deploy usa o Skaffold, por meio do Cloud Build, para renderizar e implantar seus manifestos. Essa integração significa que você precisa manter um arquivo skaffold.yaml, mas não significa que precisa tornar o Skaffold no fluxo de desenvolvimento local. Mas é possível aproveitá-lo para desenvolvimento contínuo.

  3. Crie o aplicativo usando o Cloud Build.

    O Cloud Build permite configurar um pipeline de CI que possa ser acionado a partir de uma confirmação no seu repositório de código-fonte. A saída do Cloud Build será artefatos, incluindo imagens de contêiner implantáveis. É possível adicionar uma chamada ao Google Cloud Deploy para criar uma versão e invocar o pipeline de entrega.

  4. Armazene seus artefatos no Artifact Registry.

    O Google Cloud Deploy recupera as imagens do contêiner do Artifact Registry, que permite armazenar de maneira centralizada artefatos e dependências.

  5. Configure o pipeline de entrega no Google Cloud Deploy para usar a imagem do contêiner e implantá-la em uma progressão de n destinos.

    Cada um desses destinos identificados no pipeline de entrega representa um cluster do GKE ou do Anthos em que seu aplicativo é implantado.

  6. Gerencie seu aplicativo no GKE ou no Anthos.

    O GKE é o ambiente gerenciado do Google Cloud para executar aplicativos em contêineres no Kubernetes.

    O Anthos oferece uma experiência consistente de desenvolvimento e operações para ambientes na nuvem e no local.

  7. Monitore o desempenho do seu aplicativo usando o pacote de operações do Google Cloud.

    O pacote de operações do Google Cloud oferece monitoramento e geração de registros integrados para seu aplicativo.

A seguir