Vista geral do Cloud Deploy

O Cloud Deploy é um serviço gerido que automatiza a entrega das suas aplicações a uma série de ambientes de destino numa sequência de promoção definida. Quando quer implementar a sua aplicação atualizada, cria um lançamento, cujo ciclo de vida é gerido por um pipeline de entrega.

Como funciona um pipeline do Cloud Deploy

O pipeline de implementação do Cloud Deploy contém as seguintes informações:

  • Um nome, que usa quando faz referência ao pipeline de entrega, e uma descrição.

  • A sequência de promoções, que descreve a ordem de implementação nos alvos configurados.

  • Opcionalmente, etiquetas e anotações.

  • Opcionalmente, as próprias definições de destino.

Os alvos podem ser definidos no mesmo ficheiro de configuração do pipeline de fornecimento ou em um ou mais ficheiros separados. Vários pipelines de entrega podem usar o mesmo alvo ou alvos, mas um determinado alvo só pode ser usado uma vez num determinado pipeline de entrega.

O processo de entrega do Cloud Deploy

Segue-se uma descrição do que acontece num cenário de entrega contínua simples do Cloud Deploy.

  1. Define o pipeline de entrega num ficheiro de configuração YAML.

    Este ficheiro de configuração define a sequência de promoção na qual implementar a sua aplicação numa série de alvos.

    Também precisa de uma configuração para o Skaffold, que o Cloud Deploy precisa para realizar operações de renderização e implementação.

  2. Define os seus alvos no ficheiro de configuração do pipeline ou num ficheiro ou ficheiros separados.

  3. Regista a sua pipeline no serviço Cloud Deploy.

    Agora que o serviço conhece a sua aplicação, gere a implementação nos alvos de acordo com a sequência de promoção definida.

  4. O resultado do processo de CI inclui uma chamada para o Cloud Deploy para iniciar o pipeline de entrega.

    Esta chamada cria um recurso release, que representa o manifesto renderizado para cada destino, cada um dos quais é gerado através da origem de renderização fornecida, do skaffold.yaml e das referências a imagens de contentores específicas para implementação. Para esta primeira chamada para criar um lançamento, o Cloud Deploy cria automaticamente um recurso rollout, que associa o lançamento ao primeiro ambiente de destino. Com base nessa implementação, a sua aplicação é implementada no primeiro destino.

    Pode usar qualquer ferramenta de IC, desde que produza uma ou mais imagens de contentores para fornecer ao pipeline de entrega do Cloud Deploy.

    Além disso, a chamada para criar um lançamento e invocar um pipeline de entrega não tem de vir da ferramenta de CI. Pode vir de um script ou de qualquer sistema que responda à conclusão do processo de CI.

  5. Quando tiver tudo pronto para implementar a aplicação no destino seguinte, chama o Cloud Deploy para a promover.

    Em cada caso, a chamada para invocar a promoção faz com que o Cloud Deploy crie uma nova implementação.

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

    O processo de criação e promoção de lançamentos é descrito mais detalhadamente na arquitetura do serviço Cloud Deploy.

Ao longo da execução do pipeline, o Cloud Deploy recolhe métricas e detalhes de auditoria.

Promoção

Promover um lançamento significa implementá-lo no destino seguinte na sequência de promoção definida no seu pipeline. A primeira chamada para o Cloud Deploy cria um release e, em seguida, um recurso rollout que é usado para a implementação no primeiro destino na sequência de promoção. Cada chamada subsequente para promover o lançamento resulta numa implementação no destino seguinte.

Aprovações

Pode especificar que é necessária uma aprovação para a promoção de qualquer alvo. Por exemplo, pode querer exigir aprovação para a promoção para um destino de produção. Para exigir aprovação para um alvo, defina a propriedade requireApproval na definição do alvo.

Quando um destino requer aprovação, o Cloud Deploy gera uma mensagem do Pub/Sub que pode ser consumida por um sistema integrado. Por exemplo, um sistema de emissão de bilhetes pode subscrever a mensagem para iniciar um fluxo de trabalho de aprovação.

Consulte o artigo Exija aprovação para mais informações sobre promoções e gestão da aprovação de promoções.

Notificações

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

  • Renderização: início, êxito e falha
  • Implementação: início, êxito e falha
  • Aprovação necessária
  • Aprovação aprovada
  • O pedido de aprovação foi rejeitado

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

Consulte o artigo Usar notificações do Cloud Deploy para ver mais detalhes.

Reversões

O Cloud Deploy suporta a reversão da aplicação implementada em qualquer destino. Uma reversão na implementação do Cloud Deploy consiste em acionar uma implementação em relação à última versão implementada com êxito. A nova implementação usa os mesmos parâmetros que foram usados nessa implementação bem-sucedida.

Consulte o artigo Reverter uma implementação para ver mais detalhes.

Acerca do Skaffold e do Cloud Deploy

O Cloud Deploy usa o Skaffold para a renderização, a implementação e a validação. Com o Skaffold, também pode ligar facilmente o seu ciclo de desenvolvimento local a um pipeline de entrega contínua do Cloud Deploy.

Para saber como o Cloud Deploy se integra com o Skaffold, consulte a vista geral do Skaffold.

Implementação na nuvem com outras Google Cloud ferramentas

O Cloud Deploy suporta quase todas as ferramentas a montante num pipeline de CI/CD. Ou seja, pode usar qualquer ambiente de desenvolvimento e repositório de código fonte, qualquer sistema de integração contínua (IC) e qualquer repositório de artefactos.

A jusante, o Cloud Deploy implementa no Google Kubernetes Engine, no Cloud Run e no GKE Enterprise.

Se usou principalmente Google Cloud ferramentas, o fluxo de origem para produção teria o seguinte aspeto:

  1. Use o Cloud Code para criar a origem da sua aplicação.

    O Cloud Code expande vários IDEs populares (VS Code, IntelliJ e Cloud Shell) para facilitar a criação de aplicações para implementação e execução noGoogle Cloud.

  2. Use o Skaffold para gerir o seu ciclo de desenvolvimento local.

    O Cloud Deploy usa o Skaffold, através do Cloud Build, para renderizar e implementar os seus manifestos. Esta integração significa que tem de manter um ficheiro skaffold.yaml, mas não significa que tenha de tornar o Skaffold parte do seu fluxo de desenvolvimento local. No entanto, pode tirar partido da mesma para desenvolvimento contínuo.

  3. Crie a sua aplicação com o Cloud Build.

    O Cloud Build permite-lhe configurar um pipeline de CI que pode ser acionado a partir de uma confirmação no seu repositório de código fonte. O resultado do Cloud Build são artefactos, incluindo imagens de contentores implementáveis. Pode adicionar uma chamada ao Cloud Deploy para criar um lançamento e invocar o pipeline de entrega.

  4. Armazene os seus artefactos no Artifact Registry.

    O Cloud Deploy obtém a imagem ou as imagens do contentor do Artifact Registry, que lhe permite armazenar centralmente artefactos e dependências.

  5. Configure o pipeline de implementação no Cloud Deploy para usar a imagem do contentor e implementá-la numa progressão de n destinos.

    Cada um desses destinos identificados no seu pipeline de implementação representa um cluster do GKE, o Cloud Run ou um cluster do GKE onde a sua aplicação é implementada em última instância.

  6. Faça a gestão da sua aplicação no GKE, na Execução na nuvem ou no GKE Enterprise.

    O GKE é o Google Cloud ambiente gerido para executar aplicações contentorizadas no Kubernetes.

    Com o Cloud Run, pode executar contentores num ambiente sem servidor.

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

  7. Monitorize o desempenho da sua aplicação através da Google Cloud Observability.

    A Google Cloud Observability oferece monitorização e registo integrados para a sua aplicação.

O que se segue?