Checkpoints
Create the lab resources
/ 20
Create the Cloud Build Triggers
/ 20
Deploy the first versions of the application
/ 20
Deploy the second versions of the application
/ 20
Roll back the production deployment
/ 20
Implementar fluxos de trabalho de DevOps no Google Cloud: laboratório com desafio
- GSP330
- Visão geral
- Cenário do desafio
- Tarefa 1: criar os recursos do laboratório
- Tarefa 2: criar um repositório no Cloud Source Repositories
- Tarefa 3: criar os gatilhos do Cloud Build
- Tarefa 4: implantar as primeiras versões do aplicativo
- Tarefa 5: implantar as segundas versões do aplicativo
- Tarefa 6: reverter a implantação de produção
- Parabéns!
GSP330
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 Implement DevOps Workflows in Google Cloud. Tudo pronto para começar o desafio?
Antes de clicar no botão Start Lab
Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o 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, 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).
- Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
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 softwares 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 Cloud Source Repositories, 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 Google Source Repository para hospedar o código do aplicativo Go.
- Criar gatilhos do Cloud Build que implantam um aplicativo de desenvolvimento e 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 o Cloud Source Repositories, 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 este comando para ativar as APIs para GKE, Cloud Build e Cloud Source Repositories:
- Adicione o papel de Desenvolvedor do Kubernetes na conta de serviço do Cloud Build:
- Execute o comando a seguir para configurar o Git no Cloud Shell e substitua
<email>
pelo endereço de e-mail do laboratório gerado e<name>
pelo seu nome.
-
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.29 ou 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
edev
no seu cluster.
Clique em Verificar meu progresso para conferir o objetivo.
Tarefa 2: criar um repositório no Cloud Source Repositories
Nesta tarefa, você criará um repositório sample-app no Cloud Source Repositories e vai 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 no Cloud Source Repositories.
-
Clone o Cloud Source Repository sample-app no Cloud Shell.
-
Use o seguinte comando para copiar o exemplo de código no diretório
sample-app
:
- Execute o comando abaixo, que vai substituir automaticamente os marcadores de posição
<your-region>
e<your-zone>
nos arquivoscloudbuild-dev.yaml
ecloudbuild.yaml
pela região e zona atribuídas ao seu projeto:
-
Faça sua primeira confirmação com o exemplo de código no diretório
sample-app
e envie por push as alterações para a ramificação master. -
Crie uma ramificação chamada dev. Faça uma confirmação com o exemplo de código no diretório
sample-app
e envie por push as alterações para a ramificação dev. -
Verifique se o exemplo de código e as ramificações estão armazenados no Source Repository.
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.
Clique em Verificar meu progresso para conferir o objetivo.
Tarefa 3: criar os gatilhos do Cloud Build
Nesta seção, você criará dois gatilhos do Cloud Build.
-
O primeiro gatilho ouve as mudanças na ramificação
master
e cria uma imagem Docker do seu aplicativo, envia por push 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 ouve as mudanças na ramificação
dev
e cria uma imagem Docker do seu aplicativo, envia por push 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 por push para uma ramificação
- Repositório de origem:
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 por push para uma ramificação
- Repositório de origem:
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.
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 arquivocloudbuild-dev.yaml
, substitua<version>
nas linhas 9 e 13 porv1.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ávelPROJECT_ID
pelo ID do projeto real no nome da imagem do contêiner.
-
Faça um commit com suas mudanças na ramificação
dev
e as envie por push 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 da 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 arquivocloudbuild.yaml
localizado no diretório sample-app e acesse as etapas no processo de build. No arquivocloudbuild.yaml
, substitua<version>
nas linhas 11 e 16 porv1.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ávelPROJECT_ID
pelo ID do projeto real no nome da imagem do contêiner.
-
Faça um commit com suas mudanças na ramificação
master
e as envie por push 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 chamadoprod-deployment-service
na porta 8080, e defina a porta de destino do contêiner para aquela especificada no Dockerfile. -
Navegue até o IP do balanceador de carga do serviço e adicione o ponto de entrada
/blue
no final da 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.
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
.
- No arquivo
main.go
, atualize a funçãomain()
para esta:
- Adicione a seguinte função no arquivo
main.go
:
-
Inspecione o arquivo
cloudbuild-dev.yaml
e acesse as etapas no processo de build. Atualize a versão da imagem Docker parav2.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 as envie por push 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 imagemv2.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
.
Criar uma segunda implantação de produção
- Alterne para a ramificação
master
.
- No arquivo
main.go
, atualize a funçãomain()
para esta:
- Adicione a seguinte função no arquivo
main.go
:
-
Inspecione o arquivo
cloudbuild.yaml
para acessar as etapas no processo de build. Atualize a versão da imagem Docker parav2.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 as envie por push 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 imagemv2.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
.
Ótimo. Você criou pipelines de CI/CD de produção e desenvolvimento totalmente funcionais.
Clique em Verificar meu progresso para conferir o objetivo.
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.
- 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 ser404
.
Clique em Verificar meu progresso para conferir o objetivo.
Parabéns!
Parabéns! Neste laboratório, você mostrou suas habilidades de implementação do fluxo de trabalho 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 por push atualizações para o repositório que criou os primeiros builds de aplicativos de desenvolvimento e produção. 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 Implement DevOps Workflows in 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.
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 Monitor and Log with 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 26 de junho de 2024
Laboratório testado em 26 de junho de 2024
Copyright 2024 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.