arrow_back

Crie um site no Google Cloud: laboratório com desafio

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Crie um site no Google Cloud: laboratório com desafio

Lab 1 hora 30 minutos universal_currency_alt 5 créditos show_chart Intermediário
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP319

Laboratórios autoguiados do Google Cloud

Introdução

Nos laboratórios com desafio, apresentamos uma situação e um conjunto de tarefas. Para concluí-las, em vez de seguir instruções passo a passo, você usará o que aprendeu nos laboratórios da Quest. Um sistema automático de pontuação (mostrado nesta página) 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 os estudantes que se inscreveram na Quest Build a Website on Google Cloud. Tudo pronto para começar o desafio?

Configuração

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).
Observação: 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.
  • Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Observação: não use seu projeto ou conta do Google Cloud neste laboratório para evitar cobranças extras na sua conta.

Cenário do desafio

Você acabou de assumir uma nova função na FancyStore, Inc.

Sua tarefa é transformar o site de comércio eletrônico monolítico da empresa em uma série de microsserviços separados de maneira lógica. O código monolítico está em um repositório do GitHub, e você será responsável por conteinerizar e refatorar esse app.

Você deve estar preparado para realizar essas tarefas sem instruções passo a passo.

Você precisa assumir a liderança porque a equipe anterior não conseguiu resolver o problema e partiu em busca de novos ares. Hoje eles cuidam de um lavandário. Sua tarefa é extrair o código-fonte, criar um contêiner com ele (a equipe antiga deixou um Dockerfile) e implementá-lo no GKE.

Primeiro você precisa criar, implantar e testar o monolítico para confirmar se o código-fonte está correto. Depois divida os serviços constituintes em implantações de microsserviços separadas.

Confira algumas normas da FancyStore, Inc. que é preciso seguir:

  • Crie um cluster em

  • Em geral, os nomes têm o formato equipe-recurso. Por exemplo, o nome de uma instância pode ser fancystore-orderservice1.

  • Economize recursos. Como os projetos são monitorados, o uso excessivo de recursos pode levar ao encerramento desse projeto.

  • Use o tipo de máquina e2-medium, a menos que você receba outra instrução.

Seu desafio

Assim que você abrir seu novo laptop para começar a trabalhar, receberá a solicitação para realizar estas tarefas. Boa sorte!

Tarefa 1: faça o download do código monolítico e crie o contêiner

  1. Faça login no novo projeto e abra o Cloud Shell.

  2. Primeiro você precisa clonar o repositório do Git da equipe. Execute o script setup.sh, que está no diretório raiz do projeto, para criar o contêiner do monolítico.

  3. Depois disso, verifique se o Cloud Shell está executando a versão mais recente do nodeJS:

nvm install --lts

Você pode criar e enviar alguns projetos diferentes.

  1. Envie o build do monolítico, localizado no diretório monolith, para o Google Container Registry. Você pode usar um Dockerfile da pasta ~/monotlith-to-microservices/monolith para criar o contêiner do aplicativo.

  2. Para isso, execute o Cloud Build (na pasta do monolítico) e envie o contêiner ao GCR.

  3. Nomeie seu artefato da seguinte forma:

  • GCR Repo: gcr.io/${GOOGLE_CLOUD_PROJECT}
  • Image name:
  • Image version: 1.0.0

Dica:

Envie um build chamado com a versão 1.0.0.

Clique em Verificar meu progresso para ver o objetivo. Faça o download do código monolítico e crie o contêiner

Tarefa 2: crie um cluster do Kubernetes e implante o aplicativo

Agora que você gerou a imagem no Container Registry, é hora de criar um cluster para implantá-la.

Como você precisou implantar todos os recursos na zona , primeiro crie um cluster do GKE para ela. Comece com um cluster de três nós.

  1. Crie o cluster desta forma:
  • Cluster name:

  • Region:

  • Node count: 3

Dica:

Verifique se o nome do cluster é e se ele está em execução em .

Agora que você criou uma imagem e o cluster está funcionando, é hora de implantar o aplicativo.

Você precisará implantar a imagem que criou no cluster. O aplicativo começará a funcionar, mas não permitirá acesso até ser exposto a ambientes externos. A equipe informou que o aplicativo está em execução na porta 8080, mas ele precisa ser exposto na porta 80, que é mais acessível aos consumidores.

  1. Crie e exponha a implantação da seguinte forma:
  • Cluster name:
  • Container name:
  • Container version: 1.0.0
  • Application port: 8080
  • Externally accessible port: 80
Observação: neste laboratório, a exposição do serviço foi simplificada. Normalmente você usaria um gateway de API para proteger seus endpoints públicos. Saiba mais sobre as práticas recomendadas no Guia de práticas recomendadas para microsserviços.
  1. Anote o endereço IP que você recebeu ao implantar a exposição. Agora você pode acessar esse endereço do navegador.

Isto vai aparecer:

Página da Web Fancy Store

Dica:

Veja se o nome da implantação é . Verifique também se você expôs o serviço na porta 80 e o associou à porta 8080.

Clique em Verificar meu progresso para ver o objetivo. Crie um cluster do Kubernetes e implante o aplicativo

Agora que é possível criar e implantar o aplicativo monolítico da Fancy Store, está tudo pronto para você começar a dividi-lo em microsserviços.

Migre o monolítico para microsserviços

Agora que o site monolítico está em execução no GKE, comece a dividir cada serviço em um microsserviço. O planejamento precisa considerar quais serviços serão divididos em blocos menores, geralmente de acordo com partes específicas do aplicativo, como o domínio comercial.

Para este desafio, avance um pouco como se já tivesse dividido o monolítico em vários microsserviços: Orders, Products e Frontend. Com o código pronto, agora você precisa implantar seus serviços.

Tarefa 3: crie novos microsserviços

Três serviços precisam ser divididos em contêineres independentes. Como você está transferindo todos eles para contêineres, é necessário acompanhar as seguintes informações sobre cada serviço:

  • A pasta raiz do serviço (onde você criará o contêiner)
  • O repositório para o qual será feito upload do contêiner
  • O nome e a versão do artefato do contêiner

Crie uma versão conteinerizada dos microsserviços

Confira abaixo o grupo de serviços que precisa de conteinerização.

  1. Acesse as raízes de origem a seguir e faça upload dos artefatos que são criados no Google Container Registry com os metadados indicados:

Microsserviço Orders

Service root folder: ~/monolith-to-microservices/microservices/src/orders

GCR Repo: gcr.io/${GOOGLE_CLOUD_PROJECT}

Image name:

Image version: 1.0.0

Microsserviço Products

Service root folder: ~/monolith-to-microservices/microservices/src/products

GCR Repo: gcr.io/${GOOGLE_CLOUD_PROJECT}

Image name:

Image version: 1.0.0

  1. Após colocar esses microsserviços em contêineres e fazer upload das imagens para o GCR, implante e exponha os serviços.

Dica: envie um build chamado com a versão 1.0.0 E um build chamado com a versão 1.0.0.

Clique em Verificar meu progresso para ver o objetivo. Crie uma versão conteinerizada dos microsserviços Orders e Products

Tarefa 4: implante os novos microsserviços

Implante os novos contêineres seguindo o mesmo processo usado para o monolítico . Observe que esses serviços escutam em portas diferentes, portanto, anote os mapeamentos das portas na tabela abaixo.

  1. Crie e exponha as implantações da seguinte forma:

Microsserviço Orders

Cluster name:

Container name:

Container version: 1.0.0

Application port: 8081

Externally accessible port: 80

Microsserviço Products

Cluster name:

Container name:

Container version: 1.0.0

Application port: 8082

Externally accessible port: 80

OBSERVAÇÃO: após a exposição, anote os endereços IP dos serviços Orders e Products porque eles serão necessários nas próximas etapas.

  1. Você pode verificar se as implantações foram concluídas e se os serviços foram expostos acessando os seguintes URLs no navegador:

http://ORDERS_EXTERNAL_IP/api/orders

http://PRODUCTS_EXTERNAL_IP/api/products

Se as implantações estiverem corretas, cada serviço retornará uma string JSON.

Dica: confira se as implantações são chamadas e . Depois confira se os serviços estão expostos na porta 80.

Clique em Verificar meu progresso para ver o objetivo. Implante os novos microsserviços

Tarefa 5: configure e implante o microsserviço Frontend

Agora que você extraiu os microsserviços Orders e Products, configure o serviço Frontend para apontar para eles e faça a implantação.

Reconfigurar o Frontend

  1. Use o editor nano para substituir o URL local pelo endereço IP do novo microsserviço Products:
cd ~/monolith-to-microservices/react-app nano .env

Quando o editor é aberto, aparece um arquivo semelhante a este:

REACT_APP_ORDERS_URL=http://localhost:8081/api/orders REACT_APP_PRODUCTS_URL=http://localhost:8082/api/products
  1. Substitua REACT_APP_PRODUCTS_URL pelo novo formato, mudando os endereços IP dos microsserviços Orders e Products conforme indicado abaixo:
REACT_APP_ORDERS_URL=http://<ORDERS_IP_ADDRESS>/api/orders REACT_APP_PRODUCTS_URL=http://<PRODUCTS_IP_ADDRESS>/api/products
  1. Pressione CTRL+O, ENTER e CTRL+X para salvar o arquivo no editor nano.

  2. Crie novamente o app de front-end antes da conteinerização:

npm run build

Tarefa 6: crie uma versão conteinerizada do microsserviço Frontend

Agora que os microsserviços Orders e Products foram conteinerizados e implantados, e o serviço Frontend configurado para apontar para eles, a etapa final consiste em conteinerizar e implantar o Frontend.

Use o Cloud Build para empacotar o conteúdo do serviço Frontend e enviá-lo ao Google Container Registry.

  • Service root folder: ~/monolith-to-microservices/microservices/src/frontend
  • GCR Repo: gcr.io/${GOOGLE_CLOUD_PROJECT}
  • Image name:
  • Image version: 1.0.0

Esse processo pode levar alguns minutos.

Dica: envie um build chamado com a versão "1.0.0".

Clique em Verificar meu progresso para ver o objetivo. Crie uma versão conteinerizada do microsserviço Frontend

Tarefa 7: implante o microsserviço Frontend

Implante o contêiner seguindo o mesmo processo usado para os microsserviços Orders e Products.

  1. Crie e exponha a implantação da seguinte forma:
  • Cluster name:
  • Container name:
  • Container version: 1.0.0
  • Application port: 8080
  • Externally accessible port: 80
  1. Para verificar se a implantação foi concluída e se os microsserviços foram expostos corretamente, digite o seguinte endereço IP do serviço de front-end no navegador:?.

Você vai encontrar página inicial da Fancy Store, com links para as páginas "Produtos" e "Pedidos" mantidas pelos novos microsserviços.

Clique em Verificar meu progresso para conferir o objetivo. Implante o microsserviço Frontend

Parabéns!

Build_a_Website_on_Google_Cloud_Skill_WBG.png

Conquiste seu próximo selo de habilidade

Este laboratório autoguiado faz parte da Quest com selo de habilidade Build a Website on Google Cloud. Ao concluir essa Quest, você ganha o selo de habilidade acima como reconhecimento pela sua conquista. Compartilhe o selo no seu currículo e nas mídias sociais e use #GoogleCloudBadge para anunciar sua conquista.

Este selo é parte do portfólio de modernização de infraestrutura do Google Cloud. Para continuar sua jornada de aprendizado, inscreva-se nas mais de 20 Quests com selo de habilidade disponíveis no catálogo.

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 5 de dezembro de 2023

Laboratório testado em 5 de dezembro de 2023

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.