arrow_back

Implementação de pipelines de CI/CD no Google Cloud: laboratório com desafio

Acesse mais de 700 laboratórios e cursos

Implementação de pipelines de CI/CD no Google Cloud: laboratório com desafio

Laboratório 1 hora 30 minutos universal_currency_alt 5 créditos show_chart Intermediário
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Acesse mais de 700 laboratórios e cursos

GSP393

Logotipo dos laboratórios autoguiados do Google Cloud

Visão geral

Nos laboratórios com desafio, apresentamos uma situação e um conjunto de tarefas. Para concluí-las, em vez de seguir instruções detalhadas, você usará o que aprendeu nos laboratórios do curso. Um sistema automático de pontuação (mostrado nesta página) vai avaliar seu desempenho.

Nos laboratórios com desafio, não ensinamos novos conceitos do Google Cloud. O objetivo dessas tarefas é aprimorar aquilo que você já aprendeu, como a alteração de valores padrão ou a leitura e pesquisa de mensagens para corrigir seus próprios erros.

Para alcançar a pontuação de 100%, você precisa concluir todas as tarefas no tempo definido.

Este laboratório é recomendado para estudantes que se inscreveram no curso Implementação de pipelines de CI/CD no Google Cloud. Tudo pronto para começar o desafio?

Conhecimentos avaliados

  • Uso do Cloud Build e do Artifact Registry para contêineres.
  • Configuração de pipelines do Cloud Deploy usando o Skaffold.
  • Implantação em vários ambientes com aprovações de promoção.
  • Reversão de implantações.

Configuração

Antes de clicar no botão Começar o Laboratório

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é ativado quando você clica em Iniciar laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.

Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, e não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.

Confira os requisitos para concluir o laboratório:

  • Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima (recomendado) ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e de estudante, o que poderia causar cobranças extras na sua conta pessoal.
  • Tempo para concluir o laboratório: não se esqueça que, depois de começar, não será possível pausar o laboratório.
Observação: use apenas a conta de estudante neste laboratório. Se usar outra conta do Google Cloud, você poderá receber cobranças nela.

Aguarde o provisionamento do laboratório antes de fazer qualquer mudança no ambiente. As partes pré-configuradas do ambiente que você precisa para trabalhar estarão disponíveis quando o laboratório indicar que está tudo pronto.

Cenário do desafio

Você começou a trabalhar como engenheiro de nuvem na Jooli Inc. A nova gestão decidiu modernizar a empresa e acredita que a melhor opção é substituir completamente os sistemas legados por uma infraestrutura gerenciada e pipelines de integração e entrega automatizados. Sua tarefa é encontrar e testar as melhores ferramentas e serviços para atingir esse objetivo.

Até o final do dia, a gerência gostaria de ver uma prova de conceito que possa abordar todos os seguintes aspectos:

  • Imagens de contêiner armazenadas em um registro seguro e confiável.
  • Verificação automática de imagens de contêiner com relatórios detalhados sobre vulnerabilidades de segurança.
  • Um web app de teste executado em uma infraestrutura gerenciada.
  • Um pipeline de CI/CD definido como código para eliminar erros manuais.
  • Uma maneira confiável, fácil e rápida de implantar código e promover o app para um ambiente semelhante ao de produção ou revertê-lo se necessário.

Sua função é ajudar a gerenciar a infraestrutura em nuvem e as ferramentas de implantação na empresa. Tarefas comuns incluem o provisionamento de recursos para projetos e a implementação de novos produtos e serviços para garantir que a Jooli Inc. esteja se modernizando de forma eficaz e seguindo as práticas recomendadas.

Seus conhecimentos e habilidades devem ser suficientes para realizar essas tarefas sem guias explicativos.

Veja algumas normas da Jooli Inc. que você precisa seguir:

  • Crie todos os recursos na região , a menos que haja uma instrução diferente.
  • Use a VPC padrão do projeto.
  • Economize recursos. Como os projetos são monitorados, o uso excessivo de recursos pode levar ao encerramento desse projeto (e talvez da sua função). Por isso, tenha cuidado. Esta é a orientação da equipe de monitoramento: use os tipos de máquina padrão a menos que haja uma instrução diferente.

Seu desafio

Assim que abrir o novo laptop na sua mesa, você receberá a solicitação a seguir para realizar uma série de tarefas. Boa sorte!

  1. TRABALHO PREPARATÓRIO: ative APIs, crie clusters do GKE e crie um repositório do Docker no Artifact Registry.
  2. Clone o código-fonte, crie a imagem e envie para o Artifact Registry.
  3. Crie o pipeline de entrega, os destinos e a versão.
  4. Recrie e envie a imagem, e marque com a tag "latest".
  5. Lance a versão mais recente.
  6. Promova a versão mais recente para o segundo cluster.
  7. Reverta as alterações no segundo cluster, modifique e relance.

Tarefa 1: Trabalho preparatório: configurar o ambiente, ativar APIs e criar clusters

  1. Configure variáveis de ambiente para o ID do projeto (isso é importante porque ele é usado em vários arquivos de configuração a seguir). Você pode usar os comandos abaixo:
export PROJECT_ID=$(gcloud config get-value project) export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)') export REGION={{{ project_0.default_region }}} gcloud config set compute/region $REGION
  1. Ative os serviços a seguir no seu projeto do Google Cloud usando os comandos abaixo:
  • container.googleapis.com
  • clouddeploy.googleapis.com
  • artifactregistry.googleapis.com
  • cloudbuild.googleapis.com
gcloud services enable \ container.googleapis.com \ clouddeploy.googleapis.com \ artifactregistry.googleapis.com \ cloudbuild.googleapis.com
  1. Ative as permissões para o Kubernetes e o Cloud Deploy usando os seguintes comandos:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe $PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/clouddeploy.jobRunner" gcloud projects add-iam-policy-binding $PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe $PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/container.developer"
  1. Crie um bucket do Cloud Storage para o Cloud Build armazenar fontes e registros:
gsutil mb -p $PROJECT_ID gs://${PROJECT_ID}_cloudbuild
  1. Crie um repositório de artefatos

Crie um repositório para armazenar seus contêineres do Docker.

Nome do repositório: cicd-challenge

gcloud artifacts repositories create cicd-challenge \ --description="Image registry for tutorial web app" \ --repository-format=docker \ --location=$REGION
  1. Crie os clusters do Google Kubernetes Engine

Crie dois clusters do GKE para teste e produção chamados cd-staging e cd-production. Os clusters devem ser de zona única e nó único.

gcloud container clusters create cd-staging --node-locations={{{ project_0.default_zone }}} --num-nodes=1 --async gcloud container clusters create cd-production --node-locations={{{ project_0.default_zone }}} --num-nodes=1 --async

Tarefa 2: Criar as imagens e fazer upload delas para o repositório

  1. Clone o repositório para o laboratório no seu diretório principal usando os comandos abaixo:
cd ~/ git clone https://github.com/GoogleCloudPlatform/cloud-deploy-tutorials.git cd cloud-deploy-tutorials git checkout c3cae80 --quiet cd tutorials/base
  1. Crie a configuração skaffold.yaml usando o comando abaixo:
envsubst < clouddeploy-config/skaffold.yaml.template > web/skaffold.yaml cat web/skaffold.yaml

O diretório da Web agora contém o arquivo de configuração skaffold.yaml, que fornece instruções para o Skaffold criar uma imagem de contêiner para seu aplicativo.

  1. Execute o comando skaffold para criar o aplicativo e implantar a imagem de contêiner no repositório do Artifact Registry criado anteriormente:

DICA: use o caminho completo para o repositório que você criou anteriormente

cd web skaffold build --interactive=false \ --default-repo <INSERT YOUR ARTIFACT REPOSITORY HERE> \ --file-output artifacts.json cd .. Verificar se o contêiner foi criado e adicionado ao repositório

Tarefa 3: Criar o pipeline de entrega

Execute os comandos a seguir para copiar o arquivo de modelo do pipeline:

  1. Crie o recurso delivery-pipeline usando o arquivo delivery-pipeline.yaml:
cp clouddeploy-config/delivery-pipeline.yaml.template clouddeploy-config/delivery-pipeline.yaml sed -i "s/targetId: staging/targetId: cd-staging/" clouddeploy-config/delivery-pipeline.yaml sed -i "s/targetId: prod/targetId: cd-production/" clouddeploy-config/delivery-pipeline.yaml sed -i "/targetId: test/d" clouddeploy-config/delivery-pipeline.yaml
  1. Defina a região de implantação usando o parâmetro de configuração deploy/region.
  2. Aplique a configuração do pipeline criada acima usando o comando gcloud beta deploy
  3. Verifique se o pipeline de entrega foi criado usando o comando abaixo:
gcloud beta deploy delivery-pipelines describe web-app

Configure os destinos da implantação

Serão criados dois destinos do pipeline de entrega, um para cada cluster do GKE.

Verifique se os clusters estão prontos

Os dois clusters do GKE já devem estar em execução, mas é importante verificar.

  • Confira o status dos clusters:
gcloud container clusters list --format="csv(name,status)"

Todos os clusters devem estar no estado RUNNING, conforme indicado na saída abaixo. Se ainda não estiverem marcados como RUNNING, tente novamente o comando acima até que o status seja alterado.

Crie um contexto para cada cluster

  • Use os comandos abaixo para gerar as credenciais para cada cluster e criar um contexto kubectl fácil de usar para referenciar o cluster depois:
CONTEXTS=({INSERT YOUR TARGETS HERE}) for CONTEXT in ${CONTEXTS[@]} do gcloud container clusters get-credentials ${CONTEXT} --region ${REGION} kubectl config rename-context gke_${PROJECT_ID}_${REGION}_${CONTEXT} ${CONTEXT} done

Crie um namespace em cada cluster

  • Use os comandos abaixo para criar um namespace do Kubernetes (web-app) em cada um dos clusters:
for CONTEXT in ${CONTEXTS[@]} do kubectl --context ${CONTEXT} apply -f kubernetes-config/web-app-namespace.yaml done

Crie os destinos do pipeline de entrega

  1. Crie um arquivo de definição de destino para cada um dos destinos usando os comandos abaixo (não é necessário fazer alterações):
envsubst < clouddeploy-config/target-staging.yaml.template > clouddeploy-config/target-cd-staging.yaml envsubst < clouddeploy-config/target-prod.yaml.template > clouddeploy-config/target-cd-production.yaml sed -i "s/staging/cd-staging/" clouddeploy-config/target-cd-staging.yaml sed -i "s/prod/cd-production/" clouddeploy-config/target-cd-production.yaml
  1. Aplique os arquivos de destino ao Cloud Deploy.

Os destinos são descritos em um arquivo yaml. Cada destino configura as informações relevantes do cluster para o destino.

Mostre os detalhes para o destino de teste:

cat clouddeploy-config/target-cd-staging.yaml Verificar se os destinos do Cloud Deploy foram criados

Tarefa 4: Criar uma versão

  1. Crie uma versão usando o comando gcloud beta deploy releases e os arquivos skaffold e artifacts.json que você criou anteriormente.
  • Nomeie a versão como web-app-001 e use o delivery-pipeline web-app.

DICA: seu diretório de código-fonte deve ser web/

  • Verifique se o aplicativo foi implantado no ambiente de teste (cd-staging) usando o comando abaixo ou o console.
gcloud beta deploy rollouts list \ --delivery-pipeline web-app \ --release web-app-001

Pipeline do Cloud Deploy

Verificar a versão no ambiente de teste

Tarefa 5: Promover seu aplicativo para produção

  • Promova seu aplicativo do ambiente de teste (cd-staging) para o ambiente de produção (cd-production).

DICA: não se esqueça de aprovar a implantação!

Verificar o lançamento no ambiente de produção

Tarefa 6: Fazer uma alteração no aplicativo e reimplantá-lo

  1. Usando o editor, abra o diretório cloud-deploy-tutorials/tutorials/base/web/leeroy-app/ e modifique o arquivo app.go. Mude a linha 24 para: fmt.Fprintf(w, "leeroooooy app v2!!\n")
  2. Crie o aplicativo e envie para o Artifact Registry.
  3. Crie uma nova versão no pipeline que você criou anteriormente. Nomeie a versão como web-app-002
  4. Verifique se a nova versão foi implantada no ambiente de teste.
gcloud beta deploy rollouts list \ --delivery-pipeline web-app \ --release web-app-002

Tarefa 7: Reverter a mudança

Ah, não! Seus engenheiros de controle de qualidade encontraram um bug na sua versão para o ambiente de teste, então você precisa reverter para a versão anterior.

  1. Use o Cloud Deploy para reverter para a versão original do aplicativo: web-app-001
  2. Verifique se a versão original está em execução.
Verificar se a reversão foi executada com sucesso

Parabéns!

Neste laboratório, você configurou um pipeline de CI/CD usando o Google Cloud Deploy e o Artifact Registry. Você criou uma prova de conceito que atendeu a todos os requisitos da gerência. A Jooli Inc. está no caminho certo para alcançar um ROI maior com os benefícios da modernização de aplicativos.

Selo CI/CD no Google Cloud

Conquiste seu próximo selo de habilidade

Este laboratório faz parte do curso Implementação de pipelines de CI/CD no Google Cloud. Ao concluir o curso, você ganha o selo acima como reconhecimento pela sua conquista. Compartilhe o selo no seu currículo e nas redes sociais e use a #GoogleCloudBadge para anunciar sua conquista.

Este curso com selo de habilidade faz parte do Programa de aprendizado DevSecOps do Google Cloud. Continue sua jornada de aprendizado aqui Programa de aprendizado DevSecOps!

Próximas etapas / Saiba mais

Treinamento e certificação do Google Cloud

Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.

Manual atualizado em 19 de maio de 2025

Laboratório testado em 19 de maio de 2025

Copyright 2025 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.

Antes de começar

  1. Os laboratórios criam um projeto e recursos do Google Cloud por um período fixo
  2. Os laboratórios têm um limite de tempo e não têm o recurso de pausa. Se você encerrar o laboratório, vai precisar recomeçar do início.
  3. No canto superior esquerdo da tela, clique em Começar o laboratório

Usar a navegação anônima

  1. Copie o nome de usuário e a senha fornecidos para o laboratório
  2. Clique em Abrir console no modo anônimo

Fazer login no console

  1. Faça login usando suas credenciais do laboratório. Usar outras credenciais pode causar erros ou gerar cobranças.
  2. Aceite os termos e pule a página de recursos de recuperação
  3. Não clique em Terminar o laboratório a menos que você tenha concluído ou queira recomeçar, porque isso vai apagar seu trabalho e remover o projeto

Este conteúdo não está disponível no momento

Você vai receber uma notificação por e-mail quando ele estiver disponível

Ótimo!

Vamos entrar em contato por e-mail se ele ficar disponível

Um laboratório por vez

Confirme para encerrar todos os laboratórios atuais e iniciar este

Use a navegação anônima para executar o laboratório

Para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.