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.
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.
Pré-requisitos
É necessário ter uma conta do GitHub para fazer este laboratório. Se você já tem uma, use essa conta. Caso contrário, crie uma conta do GitHub.
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 todos os serviços nativos do Google Cloud no pipeline, sua experiência com o GitHub, o Artifact Registry, o Docker e o Cloud Build será muito importante.
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.
Criar um repositório do GitHub 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 os repositórios do GitHub, 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 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.
Execute o seguinte comando para ativar as APIs nos repositórios do GKE, Cloud Build e GitHub:
No Cloud Shell, execute os seguintes comandos para configurar o Git e o GitHub:
curl -sS https://webi.sh/gh | sh
gh auth login
gh api user -q ".login"
GITHUB_USERNAME=$(gh api user -q ".login")
git config --global user.name "${GITHUB_USERNAME}"
git config --global user.email "${USER_EMAIL}"
echo ${GITHUB_USERNAME}
echo ${USER_EMAIL}
Pressione ENTER para aceitar as opções padrão.
Leia as instruções na resposta ao comando para fazer login no GitHub com um navegador da Web.
Quando você fizer login, seu nome de usuário do GitHub vai aparecer na saída no Cloud Shell.
Crie um repositório Docker do Artifact Registry chamado my-repository na região para armazenar as imagens de contêiner.
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.29ou mais recente
Escalonador automático de cluster
Ativado
Número de nós
3
Mínimo de nós
2
Máximo de nós
6
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: criar um repositório no GitHub
Nesta tarefa, você vai criar o repositório sample-app no GitHub e inicializá-lo usando um exemplo de código. Esse repositório terá o código do aplicativo Go e será a principal fonte para acionar builds.
Crie um repositório vazio chamado sample-app nos repositórios do GitHub.
Clone o repositório sample-app do GitHub no Cloud Shell.
Use o seguinte comando para copiar o exemplo de código no diretório sample-app:
cd ~
gsutil cp -r gs://spls/gsp330/sample-app/* sample-app
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
Crie um repositório do GitHub com o nome sample-app.
Depois de criar o repositório, faça o primeiro commit com o exemplo de código adicionado ao diretório sample-app e envie as alterações para a ramificação master.
Crie uma ramificação chamada dev. Faça um commit com o exemplo de código no diretório sample-app e envie as alterações para a ramificação dev.
Verifique se o exemplo de código e as ramificações estão armazenados no repositório do GitHub.
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 detecta as mudanças na ramificação master e cria uma imagem Docker do seu aplicativo, envia a imagem para o Google Artifact Registry e implanta a versão mais recente da imagem no namespace prod no seu cluster do GKE.
O segundo gatilho detecta as mudanças na ramificação dev e cria uma imagem Docker do seu aplicativo, envia a imagem para o Google Artifact Registry e implanta a versão mais recente da imagem no namespace dev no seu cluster do GKE.
Crie um gatilho do Cloud Build chamado sample-app-prod-deploy com estas configurações:
Evento: Enviar para uma ramificação
Fonte:
Conecte-se a um novo repositório e selecione o provedor de gerenciamento de código-fonte: GitHub (Cloud Build GitHub App)
Escolha o repositório do GitHub: sample-app
Ramificação: ^master$
Arquivo de configuração do Cloud Build: cloudbuild.yaml
Crie um gatilho do Cloud Build chamado sample-app-dev-deploy com as seguintes configurações:
Evento: Enviar para uma ramificação
Fonte, escolha o repositório do GitHub : sample-app
Ramificação: ^dev$
Arquivo de configuração do Cloud Build: cloudbuild-dev.yaml
Depois de configurar os gatilhos, qualquer mudança nas ramificações acionará o pipeline do Cloud Build correspondente, que vai criar e implantar o aplicativo conforme especificado nos arquivos cloudbuild.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
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.
Navegue para o arquivo dev/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 dev/deployment.yaml e cloudbuild-dev.yaml.
Faça um commit com suas mudanças na ramificação dev e envie as alterações para acionar o job de build sample-app-dev-deploy.
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.
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.
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
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.
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.
Faça um commit com suas mudanças na ramificação master e envie as alterações para acionar o job de build sample-app-prod-deploy.
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.
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.
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
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.
No arquivo main.go, atualize a função main() para esta:
Inspecione o arquivo cloudbuild-dev.yaml e acesse as etapas no processo de build. Atualize a versão da imagem Docker para v2.0.
Navegue para o arquivo dev/deployment.yaml e atualize o nome da imagem do contêiner para a nova versão (v2.0).
Faça um commit com suas mudanças na ramificação dev e envie as alterações para acionar o job de build sample-app-dev-deploy.
Verifique se o build foi executado na página Histórico do Cloud Build e confirme se o aplicativo development-deployment foi implantado no namespace dev do cluster e está usando a imagem v2.0.
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
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.
No arquivo main.go, atualize a função main() para esta:
Inspecione o arquivo cloudbuild.yaml para acessar as etapas no processo de build. Atualize a versão da imagem Docker para v2.0.
Navegue para o arquivo prod/deployment.yaml e atualize o nome da imagem do contêiner para a nova versão (v2.0).
Faça um commit com suas mudanças na ramificação master e envie as alterações para acionar o job de build sample-app-prod-deploy.
Verifique se o build foi executado na página Histórico do Cloud Build e confirme se o aplicativo production-deployment foi implantado no namespace prod do cluster e está usando a imagem v2.0.
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.
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.
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 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.
Conquiste seu próximo selo de habilidade
Este laboratório autoguiado faz parte do curso Implementar fluxos de trabalho de DevOps no Google Cloud. Ao concluir o curso, você ganha o selo 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.
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 26 de junho de 2024
Laboratório testado em 26 de junho de 2024
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.
Os laboratórios criam um projeto e recursos do Google Cloud por um período fixo
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.
No canto superior esquerdo da tela, clique em Começar o laboratório
Usar a navegação anônima
Copie o nome de usuário e a senha fornecidos para o laboratório
Clique em Abrir console no modo anônimo
Fazer login no console
Faça login usando suas credenciais do laboratório. Usar outras credenciais pode causar erros ou gerar cobranças.
Aceite os termos e pule a página de recursos de recuperação
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.
Neste laboratório com desafio, você vai testar suas habilidades para implementar um pipeline de CI/CD usando o Cloud Build, o Cloud Source Repositories e o GKE.
Duração:
Configuração: 0 minutos
·
Tempo de acesso: 90 minutos
·
Tempo para conclusão: 90 minutos