
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Create a GKE Cluster
/ 20
Deploy Existing Monolith
/ 20
Migrate Orders to a microservice
/ 20
Migrate Products to microservice
/ 20
Migrate Frontend to microservice
/ 20
Por que migrar de um aplicativo monolítico para uma arquitetura de microsserviços? Dividir um aplicativo em microsserviços é vantajoso, principalmente porque a dependência entre os microsserviços é mínima. Com essa abordagem, você tem as seguintes opções:
Veja algumas desvantagens em comparação com um site monolítico:
Neste laboratório, você implantará um aplicativo monolítico pronto no cluster do Google Kubernetes Engine e o dividirá em microsserviços. O Kubernetes é uma plataforma para gerenciar, hospedar, escalonar e implantar contêineres. Os contêineres são uma maneira portátil de empacotar e executar um código. Eles são ideais para o padrão de microsserviços, em que cada microsserviço pode ser executado em um contêiner próprio.
Comece dividindo o aplicativo monolítico em três microsserviços, um de cada vez. Os microsserviços são: Orders, Products e Frontend. Crie uma imagem Docker para cada microsserviço usando o Cloud Build. Depois implante e exponha os microsserviços no Google Kubernetes Engine (GKE) com um serviço do tipo LoadBalancer do Kubernetes. Você fará isso para cada serviço, enquanto eles são refatorados simultaneamente no aplicativo monolítico. O aplicativo monolítico e os microsserviços vão funcionar em paralelo até o fim do processo, quando será possível excluir esse aplicativo.
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:
Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento. No painel Detalhes do laboratório à esquerda, você vai encontrar o seguinte:
Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.
O laboratório ativa os recursos e depois abre a página Fazer login em outra guia.
Dica: coloque as guias em janelas separadas lado a lado.
Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.
Você também encontra o Nome de usuário no painel Detalhes do laboratório.
Clique em Seguinte.
Copie a Senha abaixo e cole na caixa de diálogo de boas-vindas.
Você também encontra a Senha no painel Detalhes do laboratório.
Clique em Seguinte.
Acesse as próximas páginas:
Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.
O Cloud Shell é uma máquina virtual com várias ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud. O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.
Depois de se conectar, vai notar que sua conta já está autenticada, e que o projeto está configurado com seu PROJECT_ID. A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:
gcloud
é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.
Clique em Autorizar.
A saída será parecida com esta:
Saída:
Saída:
Exemplo de saída:
gcloud
, acesse o guia com informações gerais sobre a gcloud CLI no Google Cloud.
Defina a zona padrão e a configuração do projeto:
Você usará um aplicativo monolítico pronto de um site fictício de e-commerce que inclui três páginas: uma simples de boas-vindas, uma de produtos e outra com o histórico dos pedidos. Clone a origem do repositório do Git para poder dividir o aplicativo em microsserviços e implantá-lo no Google Kubernetes Engine (GKE).
Pode levar alguns minutos para o script ser executado.
Agora que seu ambiente para desenvolvedores está funcionando, você precisa de um cluster do Kubernetes para implantar o monolítico e depois os microsserviços. Antes de criar um cluster, veja se as APIs corretas estão ativadas.
A criação do cluster pode levar vários minutos.
Saída:
Também é possível conferir o cluster do Kubernetes e as informações relacionadas no console do Cloud. No menu de navegação, role para baixo até Kubernetes Engine e clique em Clusters.
O cluster chamado fancy-cluster deve aparecer aqui.
Parabéns! Você acabou de criar seu primeiro cluster do Kubernetes.
Clique em Verificar meu progresso para conferir o andamento do objetivo.
Neste laboratório, você vai precisar instalar e executar um aplicativo monolítico para poder dividi-lo em microsserviços.
A saída será semelhante a esta:
Caso a saída liste o IP externo como <pending>
, espere um minuto e execute o comando outra vez.
Copie o endereço IP externo do aplicativo monolítico depois que ele aparecer. Cole o URL do IP externo (por exemplo, http://203.0.113.0) no navegador para verificar se o monolítico está acessível.
Você deverá encontrar a página de boas-vindas do site monolítico. A página de boas-vindas é estática e será exibida pelo microsserviço Frontend depois. Agora seu aplicativo monolítico está sendo executado integralmente no Kubernetes.
Clique em Verificar meu progresso para conferir o andamento do objetivo.
Agora que o site monolítico está em execução no GKE, já é possível dividir cada serviço em um microsserviço. Em geral, é preciso fazer um planejamento para definir quais serviços serão divididos em blocos menores, normalmente relacionados a partes específicas do aplicativo, como o domínio comercial.
Para este laboratório, você criará um exemplo e dividirá cada serviço no domínio comercial em: Orders, Products e Frontend. O código já foi migrado para você poder se concentrar na criação e na implantação dos serviços no Google Kubernetes Engine (GKE).
O primeiro serviço a ser dividido é Orders. Use a base de código fornecida e crie um contêiner do Docker separado para esse serviço.
Como você já tem a base do código, o primeiro passo é criar um contêiner do Docker para o serviço Orders usando o Cloud Build.
Em geral, esse processo tem duas etapas: criar o contêiner do Docker e enviá-lo para um registro, onde a imagem é armazenada e pode ser extraída pelo GKE. Com o Cloud Build, você pode criar o contêiner do Docker e mover a imagem para o Container Registry Com um só comando, você cria e move a imagem para o Container Registry. Para saber mais sobre o processo manual de criação e envio de um arquivo do Docker, acesse a documentação do Container Registry no Google Cloud e consulte o guia de início rápido do Container Registry.
O Google Cloud Build compacta e envia os arquivos do diretório para um bucket do Cloud Storage. Todos os arquivos do bucket e o Dockerfile no mesmo diretório serão usados para executar o processo de build no Docker. A flag --tag
é especificada com o host como gcr.io para a imagem Docker. A imagem Docker resultante será enviada ao Container Registry do Google Cloud.
O processo leva cerca de um minuto. Quando a compilação estiver pronta, o terminal vai mostrar uma saída parecida com esta:
Se clicar no ID do build, você encontrará todos os detalhes da versão, incluindo a saída do registro.
Na página de detalhes do build, para visualizar a imagem do contêiner que foi criada, na seção direita, clique na guia Detalhes de execução e consultar Imagem.
Agora que você já fez a conteinerização do site e enviou o contêiner para o Google Container Registry, é hora de fazer a implantação no Kubernetes.
O Kubernetes representa aplicativos como pods, que são unidades com um contêiner ou um grupo de contêineres estreitamente associados. O pod é a menor unidade implantável no Kubernetes. Neste tutorial, cada pod contém apenas o contêiner do seu microsserviço.
Para implantar e gerenciar aplicativos em um cluster do GKE, você precisa se comunicar com o sistema de gerenciamento de clusters do Kubernetes. A forma mais comum de fazer isso é usar a ferramenta de linha de comando kubectl no Cloud Shell.
Primeiro crie um recurso de implantação. Esse recurso gerencia diversas cópias do aplicativo, chamadas de réplicas. Ele programa as réplicas para serem executadas em nós individuais do cluster. Neste caso, a implantação executará apenas um pod do seu aplicativo. Para isso, o recurso de implantação cria um ReplicaSet. O ReplicaSet é responsável por garantir que as réplicas especificadas estejam sempre em execução.
O comando kubectl create deployment
abaixo solicita que o Kubernetes crie uma implantação com o nome Orders no seu cluster com 1 réplica.
Pode levar alguns instantes para o status do pod aparecer como "Em execução".
Saída:
É possível conferir a implantação atual, o replicaset
com a contagem desejada de apenas um pod e o pod em execução. Parece que tudo foi criado corretamente.
Também é possível visualizar suas implantações do Kubernetes no console do Cloud. Abra o Menu de navegação e selecione Kubernetes Engine > Cargas de trabalho.
Você implantou o aplicativo no GKE, mas não é possível acessá-lo de fora do cluster. Por padrão, os contêineres executados no GKE não podem ser acessados pela Internet porque não têm endereços IP externos. Exponha explicitamente o aplicativo ao tráfego da Internet usando o recurso Serviço. Esse serviço oferece suporte de rede e IP aos pods do seu aplicativo. O GKE cria um IP externo e um balanceador de carga (sujeito a faturamento). No site do Google Cloud, consulte os preços do Compute Engine para seu aplicativo.
Para este laboratório, a exposição do serviço foi simplificada. Normalmente você usaria um gateway de API para proteger seus endpoints públicos. No Centro de arquitetura do Google Cloud, leia mais sobre as práticas recomendadas para microsserviços.
Você usou uma implantação do Kubernetes para expor internamente o serviço Orders na porta 8081. Para expor esse serviço externamente, é preciso criar um serviço do Kubernetes do tipo LoadBalancer
que encaminha o tráfego da porta 80 externamente para a porta interna 8081.
O GKE atribui o endereço IP externo ao serviço, não à implantação.
kubectl get service
:Saída:
Copie o endereço IP externo do aplicativo depois que ele aparecer. Você vai precisar dele na próxima etapa, quando alterar seu monolítico para apontar para o novo serviço Orders.
Como você removeu o serviço Orders do monolítico, será necessário modificar esse aplicativo para apontar para o novo microsserviço Orders externo.
Ao dividir um aplicativo monolítico, você está removendo partes do código de uma única base de código para criar vários microsserviços que implantará separadamente. Como os microsserviços são executados em outro servidor, não é mais possível usar os URLs de serviço como caminhos absolutos. Você precisa direcionar para o endereço do servidor do microsserviço Orders. O aplicativo monolítico ficará inativo enquanto atualiza o URL de cada serviço que foi dividido. Leve isso em conta ao planejar a mudança dos microsserviços e do aplicativo monolítico para produção, durante o processo de migração dos microsserviços.
Agora você precisa atualizar o arquivo de configuração no aplicativo monolítico para apontar para o endereço IP do novo microsserviço Orders.
nano
para substituir o URL local pelo endereço IP do microsserviço Orders:Quando o editor é aberto, aparece um arquivo semelhante a este:
REACT_APP_ORDERS_URL
pelo novo formato, mudando os endereços IP do microsserviço Orders para corresponder a:Pressione CTRL + O
, Enter
e CTRL + X
para salvar o arquivo no editor nano.
Para testar o novo microsserviço, acesse o URL que você configurou no arquivo. É preciso que a página da Web retorne uma resposta JSON do seu microsserviço Orders.
A próxima etapa é recriar o front-end do aplicativo monolítico. Repita o processo para criar o contêiner do monolítico e reimplantá-lo no cluster do GKE:
Migre Products para continuar dividindo os serviços. Repita o processo anterior. Execute os comandos a seguir para criar um contêiner do Docker e depois implantar e expor esse contêiner usando um serviço do Kubernetes.
Saída:
Você usará o endereço IP na próxima etapa ao reconfigurar o monolítico para apontar para o novo microsserviço Products.
nano
para substituir o URL local pelo endereço IP do novo microsserviço Products:Quando o editor é aberto, aparece um arquivo semelhante a este:
REACT_APP_PRODUCTS_URL
pelo novo formato e mude o endereço IP do microsserviço Products para corresponder a:Pressione CTRL + O
, Enter
e CTRL + X
para salvar o arquivo.
Para testar o novo microsserviço, acesse o URL que você configurou no arquivo. A página da Web deve retornar uma resposta JSON do microsserviço Products.
A próxima etapa é recriar o front-end do aplicativo monolítico. Repita o processo para criar o contêiner desse aplicativo e reimplantá-lo no cluster do GKE. Execute os seguintes comandos para concluir as etapas abaixo.
Recrie os arquivos de configuração do monolítico:
A última etapa do processo de migração é mover o código de Frontend para um microsserviço e desativar o aplicativo monolítico. Quando essa etapa for concluída, o monolítico terá sido migrado para uma arquitetura de microsserviços.
Siga o mesmo procedimento das últimas duas etapas para criar o microsserviço de front-end.
Quando você recriou o aplicativo monolítico, atualizou a configuração para apontar para o aplicativo monolítico. Use a mesma configuração para o microsserviço de front-end.
Quando terminar, repita o processo das etapas anteriores. Execute os comandos a seguir para criar um contêiner do Docker e depois implantar e expor esse contêiner usando um serviço do Kubernetes.
Crie um contêiner do Docker com o Google Cloud Build:
Agora que todos os serviços estão sendo executados como microsserviços, já é possível excluir o aplicativo monolítico. Em uma migração real, outras mudanças seriam necessárias, como alterar o DNS para os nomes de domínio atuais apontarem para o novo microsserviço de front-end do aplicativo.
Se estiver tudo certo, o endereço IP antigo do serviço do monolítico não deve funcionar mais e o novo endereço IP do serviço front-end deve hospedar o novo aplicativo.
A saída será parecida com esta:
Depois de determinar o endereço IP externo do microsserviço de front-end, copie o endereço IP. Acesse esse URL (por exemplo, http://203.0.113.0) no navegador para verificar se o front-end está acessível. Seu site deve ter a mesma aparência de antes da divisão do aplicativo monolítico em microsserviços.
Você dividiu seu aplicativo monolítico em microsserviços e os implantou no Google Kubernetes Engine.
Este laboratório autoguiado faz parte da Quest Website on Google Cloud. Uma Quest é uma série de laboratórios relacionados que formam um programa de aprendizado. Caso você já tenha feito este laboratório, inscreva-se nesta Quest para ganhar os créditos de conclusão imediatamente. Consulte o catálogo do Google Cloud Ensina para encontrar outras Quests disponíveis.
Está procurando um laboratório com desafios práticos para demonstrar suas habilidades e conhecimentos? Quando terminar a Quest, faça este laboratório com desafio que não é obrigatório.
Continue seu aprendizado assistindo ao vídeo com o estudo de caso Hosting Scalable Web Applications on Google Cloud ou confira estas sugestões:
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 20 de setembro de 2023
Laboratório testado em 20 de setembro de 2023
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.
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
One lab at a time
Confirm to end all existing labs and start this one