Create the lab resources

Verificar meu progresso

/ 20

Create the Cloud Build Triggers

Verificar meu progresso

/ 20

Deploy the first versions of the application

Verificar meu progresso

/ 20

Deploy the second versions of the application

Verificar meu progresso

/ 20

Roll back the production deployment

Verificar meu progresso

/ 20

Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Este conteúdo ainda não foi otimizado para dispositivos móveis.
Para aproveitar a melhor experiência, acesse nosso site em um computador desktop usando o link enviado a você por e-mail.

GSP330

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 fluxos de trabalho de DevOps no Google Cloud. Tudo pronto para começar o desafio?

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.

Cenário do desafio

Após se tornar Engenheiro de DevOps da Cymbal Superstore alguns meses atrás, você aprendeu como a empresa opera o site de e-commerce. A equipe de DevOps está trabalhando especificamente em um pipeline de CI/CD de grande escala e precisa da sua ajuda para criá-lo. Isso permite que a empresa automatize tarefas para os desenvolvedores, colabore de maneira mais eficaz com outras equipes e lance software com mais frequência e confiabilidade. Como a Cymbal Superstore quer usar os serviços nativos do Google Cloud e práticas modernas de DevOps em seu pipeline, sua experiência com o Git, o Artifact Registry, o Docker e o Cloud Build será muito importante.

logotipo da cymbal superstore

Antes de começar o projeto, a equipe de DevOps gostaria que você demonstrasse suas novas habilidades. Como parte desta demonstração, há uma lista de tarefas que você precisa realizar em determinado período de tempo em um ambiente de sandbox.

Seu desafio

Suas tarefas são as seguintes:

  • Criar um cluster do GKE com base em um conjunto de configurações fornecido.
  • Inicializar um repositório Git no servidor Git dedicado para hospedar o código do aplicativo Go.
  • Criar gatilhos do Cloud Build que implantam um aplicativo de desenvolvimento e de produção.
  • Enviar por push atualizações para o app e criar builds.
  • Reverter o aplicativo de produção para uma versão anterior.

Em geral, você está criando um pipeline de CI/CD simples usando um repositório Git em um servidor Git dedicado, o Artifact Registry e o Cloud Build.

Tarefa 1: criar os recursos do laboratório

Nesta seção, você vai inicializar seu projeto do Google Cloud no ambiente de demonstração. Você vai receber variáveis de ambiente, ativar as APIs necessárias, configurar o Git no Cloud Shell, criar um repositório Docker do Artifact Registry e criar um cluster do GKE para executar os aplicativos de produção e desenvolvimento.

  1. No Cloud Shell, execute o seguinte comando para definir o ID do projeto, a região e o IP do servidor Git:
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 }}} export ZONE={{{ project_0.default_zone }}} gcloud config set compute/region $REGION gcloud config set compute/zone $ZONE export GIT_SERVER_IP=$(gcloud compute instances describe git-server --zone=$ZONE --format='get(networkInterfaces[0].accessConfigs[0].natIP)') echo "Git Server IP is: ${GIT_SERVER_IP}"
  1. Execute o seguinte comando para ativar as APIs do GKE e do Cloud Build:
gcloud services enable container.googleapis.com \ cloudbuild.googleapis.com
  1. Adicione o papel de Desenvolvedor do Kubernetes à conta de serviço do Cloud Build:
export PROJECT_ID=$(gcloud config get-value project) gcloud projects add-iam-policy-binding $PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe $PROJECT_ID \ --format="value(projectNumber)")@cloudbuild.gserviceaccount.com --role="roles/container.developer"
  1. No Cloud Shell, configure o Git com seu nome de usuário e e-mail:
git config --global user.name "Student" git config --global user.email "student@qwiklabs.net"
  1. Crie um repositório Docker do Artifact Registry chamado my-repository na região para armazenar as imagens de contêiner.

  2. Crie um cluster do GKE Standard chamado hello-cluster com esta configuração:

Configuração Valor
Zona
Canal de lançamento Normal
Versão do cluster 1.29 ou mais recente
Escalonador automático de cluster Ativado
Número de nós 3
Número mínimo de nós 2
Número máximo de nós 6
  1. Crie os namespaces prod e dev no seu cluster.

Clique em Verificar meu progresso para conferir o objetivo. Criar os recursos do laboratório

Tarefa 2: conectar ao repositório Git no servidor Git

Nesta tarefa, você vai inicializar o repositório sample-app no seu servidor Git dedicado (git-server) e enviar o exemplo de código inicial. Esse repositório terá o código do aplicativo Go e será a principal fonte para builds.

  1. Use o seguinte comando para copiar o exemplo de código no diretório sample-app:
cd ~ gcloud storage cp -r gs://spls/gsp330/sample-app/* sample-app
  1. Execute o comando abaixo, que vai substituir automaticamente os marcadores de posição <your-region> e <your-zone> nos arquivos cloudbuild-dev.yaml e cloudbuild.yaml pela região e zona atribuídas ao seu projeto:
export REGION="{{{project_0.default_region | REGION}}}" export ZONE="{{{project_0.default_zone | ZONE}}}" for file in sample-app/cloudbuild-dev.yaml sample-app/cloudbuild.yaml; do sed -i "s/<your-region>/${REGION}/g" "$file" sed -i "s/<your-zone>/${ZONE}/g" "$file" done
  1. Inicialize o repositório Git no diretório sample-app, confirme primeiro com o exemplo de código e envie as alterações para a ramificação master do servidor Git:
cd ~/sample-app git init git remote add origin http://${GIT_SERVER_IP}:3000/giteaadmin/sample-app.git git branch -m master git add . && git commit -m "initial commit" git push -u http://giteaadmin:GiteaPassword123@${GIT_SERVER_IP}:3000/giteaadmin/sample-app.git master
  1. Crie uma ramificação chamada dev, confirme com o exemplo de código no diretório sample-app e envie as alterações para a ramificação dev:
cd ~/sample-app git checkout -b dev git push -u http://giteaadmin:GiteaPassword123@${GIT_SERVER_IP}:3000/giteaadmin/sample-app.git dev
  1. Verifique se o exemplo de código e as ramificações estão armazenados no repositório do Git.

O código que você acabou de clonar contém um aplicativo Go simples com dois pontos de entrada: vermelho e azul. Cada um mostra um quadrado colorido simples na página da Web, dependendo do ponto de entrada que você acessar.

Tarefa 3: criar os gatilhos do Cloud Build

Nesta seção, você criará dois gatilhos do Cloud Build.

  • O primeiro gatilho, chamado sample-app-prod-deploy, cria a imagem de contêiner do aplicativo usando o arquivo de configuração cloudbuild.yaml e a implanta no namespace prod no cluster do GKE.

  • O segundo gatilho, chamado sample-app-dev-deploy, cria a imagem de contêiner do aplicativo usando o arquivo de configuração cloudbuild-dev.yaml e a implanta no namespace dev no cluster do GKE.

  1. Crie um gatilho do Cloud Build chamado sample-app-prod-deploy:
gcloud builds triggers create manual \ --name="sample-app-prod-deploy" \ --inline-config="cloudbuild.yaml" \ --region={{{ project_0.default_region }}}
  1. Crie um gatilho do Cloud Build chamado sample-app-dev-deploy:
gcloud builds triggers create manual \ --name="sample-app-dev-deploy" \ --inline-config="cloudbuild-dev.yaml" \ --region={{{ project_0.default_region }}}

Depois de configurar os gatilhos, você pode executar o pipeline correspondente do Cloud Build, que cria e implanta o aplicativo conforme especificado nos arquivos cloudbuild.yaml e cloudbuild-dev.yaml.

Clique em Verificar meu progresso para conferir o objetivo. Criar os gatilhos do Cloud Build

Tarefa 4: implantar as primeiras versões do aplicativo

Nesta seção, você vai criar a primeira versão dos aplicativos de produção e de desenvolvimento.

Criar a primeira implantação de desenvolvimento

  1. No Cloud Shell, inspecione o arquivo cloudbuild-dev.yaml localizado no diretório sample-app e confira as etapas no processo de build. No arquivo cloudbuild-dev.yaml, substitua <version> nas linhas 9 e 13 por v1.0.

  2. Navegue para o arquivo dev/deployment.yaml e atualize <todo> na linha 17 com o nome da imagem de contêiner correto. Além disso, substitua a variável PROJECT_ID pelo ID do projeto real no nome da imagem do contêiner.

Observação: verifique se você tem o mesmo nome da imagem do contêiner em dev/deployment.yaml e cloudbuild-dev.yaml.
  1. Confirme suas alterações na ramificação dev e as envie para o servidor Git:
cd ~/sample-app git checkout dev git add . git commit -m "Deploy v1.0 on dev" git push http://giteaadmin:GiteaPassword123@${GIT_SERVER_IP}:3000/giteaadmin/sample-app.git dev
  1. Execute o job de build sample-app-dev-deploy:
cd ~/sample-app gcloud builds submit --config=cloudbuild-dev.yaml .
  1. Verifique se o build foi executado na página Histórico do Cloud Build e se o aplicativo development-deployment foi implantado no namespace dev do cluster.

  2. Exponha a implantação development-deployment em um serviço LoadBalancer chamado dev-deployment-service na porta 8080, e defina a porta de destino do contêiner como aquela especificada no Dockerfile.

  3. Navegue até o IP do balanceador de carga do serviço e adicione o ponto de entrada /blue no final do URL para verificar se o aplicativo está funcionando. Ele deve ser semelhante a: http://34.135.97.199:8080/blue.

Criar a primeira implantação de produção

  1. Alterne para a ramificação master. Inspecione o arquivo cloudbuild.yaml localizado no diretório sample-app e acesse as etapas no processo de build. No arquivo cloudbuild.yaml, substitua <version> nas linhas 11 e 16 por v1.0.

  2. Navegue para o arquivo prod/deployment.yaml e atualize <todo> na linha 17 com o nome da imagem do contêiner correto. Além disso, substitua a variável PROJECT_ID pelo ID do projeto real no nome da imagem do contêiner.

Observação: verifique se você tem o mesmo nome da imagem do contêiner em prod/deployment.yaml e cloudbuild.yaml.
  1. Confirme com suas alterações na ramificação master e envie as alterações para o servidor Git:
cd ~/sample-app git checkout master git add . git commit -m "Deploy v1.0 on master" git push http://giteaadmin:GiteaPassword123@${GIT_SERVER_IP}:3000/giteaadmin/sample-app.git master
  1. Execute o job de build sample-app-prod-deploy:
cd ~/sample-app gcloud builds submit --config=cloudbuild.yaml .
  1. Verifique se o build foi executado na página Histórico do Cloud Build e se o aplicativo production-deployment foi implantado no namespace prod do cluster.

  2. Exponha a implantação production-deployment no namespace prod para um serviço LoadBalancer chamado prod-deployment-service na porta 8080, e defina a porta de destino do contêiner como aquela especificada no Dockerfile.

  3. Navegue até o IP do balanceador de carga do serviço e adicione o ponto de entrada /blue no final do URL para verificar se o aplicativo está funcionando. Ele deve ser semelhante a: http://34.135.245.19:8080/blue.

Clique em Verificar meu progresso para conferir o objetivo. Implantar as primeiras versões do aplicativo

Tarefa 5: implantar as segundas versões do aplicativo

Nesta seção, você vai criar a segunda versão dos aplicativos de produção e de desenvolvimento.

Criar a segunda implantação de desenvolvimento

  1. Retorne para a ramificação dev.
Observação: antes de continuar, confira se você está na ramificação dev para criar a implantação do ambiente dev.
  1. No arquivo main.go, atualize a função main() para esta:
func main() { http.HandleFunc("/blue", blueHandler) http.HandleFunc("/red", redHandler) http.ListenAndServe(":8080", nil) }
  1. Adicione a seguinte função no arquivo main.go:
func redHandler(w http.ResponseWriter, r *http.Request) { img := image.NewRGBA(image.Rect(0, 0, 100, 100)) draw.Draw(img, img.Bounds(), &image.Uniform{color.RGBA{255, 0, 0, 255}}, image.ZP, draw.Src) w.Header().Set("Content-Type", "image/png") png.Encode(w, img) }
  1. Inspecione o arquivo cloudbuild-dev.yaml e acesse as etapas no processo de build. Atualize a versão da imagem Docker para v2.0.

  2. Navegue para o arquivo dev/deployment.yaml e atualize o nome da imagem do contêiner para a nova versão (v2.0).

  3. Confirme suas alterações na ramificação dev e as envie para o servidor Git:

cd ~/sample-app git checkout dev git add . git commit -m "Deploy v2.0 on dev" git push http://giteaadmin:GiteaPassword123@${GIT_SERVER_IP}:3000/giteaadmin/sample-app.git dev
  1. Execute o job de build sample-app-dev-deploy:
cd ~/sample-app gcloud builds submit --config=cloudbuild-dev.yaml .
  1. Verifique se o build foi executado na página Histórico do Cloud Build e confira se o aplicativo development-deployment foi implantado no namespace dev do cluster e está usando a imagem v2.0.

  2. Navegue até o IP do balanceador de carga do serviço e adicione o ponto de entrada /red ao final do URL para verificar se o aplicativo está funcionando. Ele deve ser semelhante a: http://34.135.97.199:8080/red.

Observação: pode levar alguns minutos para que as atualizações sejam propagadas para o balanceador de carga.

Criar uma segunda implantação de produção

  1. Alterne para a ramificação master.
Observação: antes de continuar, confira se você está na ramificação master para criar a implantação do ambiente master.
  1. No arquivo main.go, atualize a função main() para esta:
func main() { http.HandleFunc("/blue", blueHandler) http.HandleFunc("/red", redHandler) http.ListenAndServe(":8080", nil) }
  1. Adicione a seguinte função no arquivo main.go:
func redHandler(w http.ResponseWriter, r *http.Request) { img := image.NewRGBA(image.Rect(0, 0, 100, 100)) draw.Draw(img, img.Bounds(), &image.Uniform{color.RGBA{255, 0, 0, 255}}, image.ZP, draw.Src) w.Header().Set("Content-Type", "image/png") png.Encode(w, img) }
  1. Inspecione o arquivo cloudbuild.yaml para acessar as etapas no processo de build. Atualize a versão da imagem Docker para v2.0.

  2. Navegue para o arquivo prod/deployment.yaml e atualize o nome da imagem do contêiner para a nova versão (v2.0).

  3. Confirme com suas alterações na ramificação master e envie as alterações para o servidor Git:

cd ~/sample-app git checkout master git add . git commit -m "Deploy v2.0 on master" git push http://giteaadmin:GiteaPassword123@${GIT_SERVER_IP}:3000/giteaadmin/sample-app.git master
  1. Execute o job de build sample-app-prod-deploy:
cd ~/sample-app gcloud builds submit --config=cloudbuild.yaml .
  1. Verifique se o build foi executado na página Histórico do Cloud Build e confira se o aplicativo production-deployment foi implantado no namespace prod do cluster e está usando a imagem v2.0.

  2. Navegue até o IP do balanceador de carga do serviço e adicione o ponto de entrada /red ao final do URL para verificar se o aplicativo está funcionando. Ele deve ser semelhante a: http://34.135.245.19:8080/red.

Observação: pode levar alguns minutos para que as atualizações sejam propagadas para o balanceador de carga.

Ótimo! Você criou pipelines de CI/CD de produção e desenvolvimento totalmente funcionais.

Clique em Verificar meu progresso para conferir o objetivo. Implantar as segundas versões do aplicativo

Tarefa 6: reverter a implantação de produção

Nesta seção, você reverterá a implantação de produção para uma versão anterior.

  1. Reverta production-deployment para a versão v1.0 do aplicativo.
Dica: com o histórico do Cloud Build, é fácil reverter/recriar as implantações com as versões anteriores.
  1. Navegue até o IP do balanceador de carga do serviço e adicione o ponto de entrada /red ao final do URL da implantação de produção. A resposta na página deve ser 404.

Clique em Verificar meu progresso para conferir o objetivo. Reverter a implantação de produção

Parabéns!

Parabéns! Neste laboratório, você mostrou suas habilidades de implementação de fluxos de trabalho de DevOps no Google Cloud. Primeiro você criou um cluster do GKE para executar o aplicativo e um repositório Git no servidor Git dedicado para hospedar a base de código. Em seguida, você criou gatilhos do Cloud Build, modificou o código e os modelos e enviou atualizações para o repositório que criou os primeiros builds de desenvolvimento e produção do aplicativo. Em seguida, você enviou atualizações ao aplicativo para criar builds e reverteu o aplicativo de produção para uma versão anterior. Agora você pode começar o trabalho de DevOps no seu ambiente.

Selo de habilidade Implementar fluxos de trabalho de Devops

Conquiste seu próximo selo de habilidade

Este laboratório autoguiado faz parte do curso Implementação de fluxos de trabalho de DevOps no Google Cloud. Ao concluir o curso, você ganha o selo de habilidade acima como reconhecimento pela sua conquista. Ele pode ser adicionado ao seu currículo e compartilhado nas plataformas sociais. Use #GoogleCloudBadge para anunciar sua conquista.

Este selo de habilidade faz parte do programa de aprendizado Cloud Devops Engineer do Google Cloud. Para continuar sua jornada de aprendizado, inscreva-se no curso Monitoramento e Registros com o Google Cloud Observability.

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 27 de agosto de 2026

Laboratório testado em 27 de agosto de 2026

Copyright 2026 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

Podemos avisar você por e-mail quando estiver disponível

Ótimo!

Vamos entrar em contato por e-mail se 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

A melhor maneira de executar este laboratório é usando uma janela de navegação anônima ou privada. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.