Checkpoints
Create Docker Container with Google Cloud Build
/ 20
Deploy Container To Cloud Run
/ 20
Create new revision with lower concurrency
/ 20
Make Changes To The Website
/ 20
Update website with zero downtime
/ 20
Como implantar um site no Cloud Run
- GSP659
- Visão geral
- Configuração e requisitos
- Tarefa 1: Clonar o repositório de origem
- Tarefa 2: Criar um contêiner do Docker com o Cloud Build
- Tarefa 3: Implantar o contêiner no Cloud Run
- Tarefa 4: Criar uma revisão com simultaneidade menor
- Tarefa 5: Fazer mudanças no site
- Tarefa 6: Atualizar o site sem inatividade
- Parabéns!
GSP659
Visão geral
Administrar sites pode ser trabalhoso. É preciso criar e gerenciar VMs, clusters, pods, serviços etc. Esse processo faz sentido para aplicativos grandes e com vários níveis, mas não é necessário se você quiser apenas implantar um site e torná-lo visível.
Com o Cloud Run, a solução do Cloud desenvolvida no framework Knative do Google, é possível gerenciar e implantar um site sem o overhead de infraestrutura exigido pelas implantações puras do Kubernetes ou com VMs. Além de simplificar o gerenciamento, essa abordagem também permite a redução da escala a zero quando o site não está recebendo solicitações.
O Cloud Run leva o conceito de desenvolvimento sem servidor para os contêineres. Ele pode ser executado em clusters do Google Kubernetes Engine (GKE) ou em uma solução PaaS totalmente gerenciada oferecida pelo Cloud Run. Neste laboratório, você trabalhará com o segundo caso.
A ordem das tarefas simula uma experiência de desenvolvedor de nuvem:
- Criar um contêiner do Docker no seu aplicativo
- Implantar o contêiner no Cloud Run
- Modificar o site
- Lançar uma nova versão sem tempo de inatividade
Diagrama da arquitetura
Veja abaixo o fluxo de implantação e hospedagem do Cloud Run.
Comece com uma imagem Docker criada no Cloud Build, que é acionada pelo Cloud Shell. Depois, implante a imagem no Cloud Run com um comando no Cloud Shell.
O que você vai aprender
- Criar uma imagem Docker usando o Cloud Build e fazer o upload dela no Artifact Registry
- Implantar imagens do Docker no Cloud Run
- Gerenciar implantações do Cloud Run
- Configurar um endpoint para um aplicativo no Cloud Run
Configuração e requisitos
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.
Como iniciar seu laboratório e fazer login no console do Google Cloud
-
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:
- O botão Abrir console do Google Cloud
- O tempo restante
- As credenciais temporárias que você vai usar neste laboratório
- Outras informações, se forem necessárias
-
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.
Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta. -
Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.
{{{user_0.username | "Nome de usuário"}}} 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.
{{{user_0.password | "Senha"}}} Você também encontra a Senha no painel Detalhes do laboratório.
-
Clique em Seguinte.
Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais. -
Acesse as próximas páginas:
- Aceite os Termos e Condições.
- Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
- Não se inscreva em testes gratuitos.
Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.
Ativar o Cloud Shell
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.
- Clique em Ativar o Cloud Shell na parte de cima do console 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.
- (Opcional) É possível listar o nome da conta ativa usando este comando:
-
Clique em Autorizar.
-
A saída será parecida com esta:
Saída:
- (Opcional) É possível listar o ID do projeto usando este comando:
Saída:
Exemplo de saída:
gcloud
, acesse o guia com informações gerais sobre a gcloud CLI no Google Cloud.
Tarefa 1: Clonar o repositório de origem
Como você vai implantar um site que já existe, basta clonar o código-fonte e depois criar as imagens do Docker e fazer a implantação no Cloud Run.
- Abra uma nova janela no Cloud Shell e execute os comandos a seguir para clonar o repositório git e acessar o diretório apropriado:
- Execute o seguinte comando para instalar as dependências do NodeJS e testar o aplicativo antes da implantação:
Esse processo vai levar alguns minutos. Você verá uma mensagem quando ele for concluído.
- Execute o comando a seguir para iniciar o servidor da Web e testar o aplicativo:
Saída:
- Para ver o aplicativo, clique no ícone de visualização na Web e selecione Visualizar na porta 8080.
Uma nova janela será aberta na página da Web "Fancy Store".
- Depois de visualizar o site, feche a janela e pressione CTRL+C no Cloud Shell para interromper o servidor da Web.
Tarefa 2: Criar um contêiner do Docker com o Cloud Build
Agora que os arquivos de origem estão prontos, é hora de colocar o aplicativo no Docker.
O método mais comum seria criar um contêiner do Docker e enviá-lo para um registro, onde a imagem é armazenada e pode ser extraída pelo GKE. Existe um jeito mais fácil: crie o contêiner do Docker no Cloud Build e envie a imagem para o Artifact Registry usando apenas um comando. Para ver o processo manual de criação e envio de um arquivo do Docker, consulte o Guia de início rápido do Container Registry.
O Cloud Build compacta e envia os arquivos do diretório para um bucket do Cloud Storage. Em seguida, todos os arquivos do bucket e o Dockerfile no mesmo diretório serão usados para executar o processo de build no Docker.
Crie um repositório de destino do Docker
É necessário criar um repositório antes de enviar imagens para ele. O envio de uma imagem não aciona a criação de um repositório e a conta de serviço do Cloud Build não tem permissões para criar repositórios.
-
No Menu de navegação, em "CI/CD", acesse o Artifact Registry > Repositórios.
-
Clique em Criar repositório.
-
Especifique o nome do repositório como
monolith-demo
. -
Escolha Docker como o formato.
-
Em "Tipo de local", selecione "Região" e escolha o local
. -
Clique em Criar.
Configurar a autenticação
Antes de enviar ou extrair imagens, configure o Docker para usar a CLI do Google Cloud e autenticar solicitações ao Artifact Registry.
- Para configurar a autenticação nos repositórios do Docker na região
, execute este comando no Cloud Shell:
O comando atualiza a configuração do Docker. Agora é possível se conectar ao Artifact Registry no projeto do Google Cloud para enviar e extrair imagens.
Implantar a imagem
Agora você vai implantar a imagem criada anteriormente.
- Primeiro é necessário ativar as APIs Cloud Build, Artifact Registry e Cloud Run Execute este comando para fazer isso:
- Depois de ativar as APIs, execute o comando abaixo para iniciar o processo de build:
- Para acessar o histórico de builds ou acompanhar o processo em tempo real, no Menu de navegação do console, clique em Cloud Build > Histórico. Essa tela apresenta uma lista de todas as versões. Por enquanto, haverá apenas a que você criou.
-
Se clicar no ID da versão, você verá todos os detalhes da versão, incluindo a saída do registro.
-
Na página "Detalhes da versão", para ver a imagem do contêiner criada, clique na guia Detalhes da execução e depois no link da imagem.
Clique em Verificar meu progresso para conferir o objetivo.
Tarefa 3: Implantar o contêiner no Cloud Run
Agora que você já fez a conteinerização do site e enviou o contêiner para o Artifact Registry, é hora implantar no Cloud Run.
Há duas abordagens de implantação no Cloud Run:
- Cloud Run gerenciado: o modelo de plataforma como serviço em que o ciclo de vida do contêiner é gerenciado pelo próprio Cloud Run. Essa é a abordagem que você usará neste laboratório.
- Cloud Run no GKE: o Cloud Run com uma camada adicional de controle, que permite integrar seus próprios clusters e pods do GKE. Clique aqui para saber mais.
- Execute este comando para implantar a imagem no Cloud Run:
- Ao receber a solicitação para permitir invocações não autenticadas em
[monolith]
, digite Y.
Clique em Verificar meu progresso para conferir o objetivo.
Verifique a implantação
- Para confirmar que a implantação foi criada corretamente, execute o seguinte comando:
Saída:
A saída mostra várias informações: a implantação, o usuário que a executou, ou seja, seu e-mail e o URL para acessar o aplicativo. Parece que tudo foi criado corretamente.
- Clique no URL que aparece na lista de serviços. Você verá o mesmo site que visualizou localmente.
Tarefa 4: Criar uma revisão com simultaneidade menor
Nesta seção, você vai implantar seu aplicativo de novo. Desta vez, um dos parâmetros deve ser ajustado.
Por padrão, os aplicativos do Cloud Run têm o valor de simultaneidade "80". Isso significa que cada instância do contêiner processará até 80 solicitações por vez. É uma diferença considerável em relação ao modelo Funções como serviço, em que uma instância processa uma solicitação por vez.
- Execute o comando abaixo para implantar novamente a mesma imagem de contêiner com um valor de simultaneidade "1", apenas para teste, e descubra o que acontece:
- Para conferir os detalhes, no Menu de navegação, clique em Cloud Run e depois no serviço do monolith:
- Na página "Detalhes do serviço", clique na guia Revisões. Agora haverá duas revisões.
Os detalhes da implantação mais recente estão à direita.
Você verá que o valor de simultaneidade mudou para "1".
Essa configuração pode ser usada para testes, mas geralmente os contêineres processam várias solicitações simultâneas nos cenários de produção.
Clique em Verificar meu progresso para conferir o objetivo.
Em seguida, restaure a simultaneidade original, mas não faça outra implantação. Você pode mudar o valor para o padrão "80" ou para "0", o que removerá as restrições de simultaneidade e definirá o valor máximo, que também é "80".
- Execute este comando para atualizar a revisão atual, usando um valor de simultaneidade
80
:
Você vai perceber que outra revisão foi criada, que o tráfego foi redirecionado e que a simultaneidade voltou para "80".
Tarefa 5: Fazer mudanças no site
Situação: sua equipe de marketing solicitou que você mude a página inicial do seu site. Ela quer que a página inclua mais informações sobre a empresa e os produtos vendidos.
Tarefa: para atender ao pedido da equipe de marketing, você vai adicionar um texto à página inicial. Parece que um dos desenvolvedores já criou as alterações. O nome do arquivo atualizado é index.js.new
. Você só precisa copiar esse arquivo para index.js
, e as mudanças aparecerão na página. Siga as instruções abaixo para fazer as mudanças apropriadas.
- Execute os comandos a seguir para copiar o arquivo atualizado no nome correto:
- Imprima o conteúdo para verificar as alterações:
O código resultante será parecido com este:
Os componentes do React foram atualizados, mas você precisa criar o app React para gerar os arquivos estáticos.
- Execute o comando a seguir para criar o aplicativo React e copiar ele no diretório público monolith:
Agora que o código está atualizado, recrie o contêiner do Docker e publique no Artifact Registry. Você pode usar o mesmo comando de antes, mas atualizará o indicador de versão desta vez.
- Execute este comando para acionar o Cloud Build de novo com a imagem atualizada na versão 2.0.0:
Na próxima seção, você vai usar essa imagem para atualizar seu aplicativo sem inatividade.
Clique em Verificar meu progresso para conferir o objetivo.
Tarefa 6: Atualizar o site sem inatividade
As alterações foram feitas, e a equipe de marketing adorou a nova versão. É hora de atualizar o site sem interromper o serviço para os usuários. O Cloud Run trata cada implantação como uma nova Revisão. Primeiro a revisão será implantada on-line e depois o tráfego será redirecionado para ela.
Por padrão, 100% do tráfego do serviço será atribuído à revisão mais recente. É possível usar "rotas" para alocar porcentagens diferentes de tráfego para revisões específicas em um serviço. Siga as instruções abaixo para atualizar seu site:
- Execute este comando para implantar novamente o serviço e atualizar a imagem para uma nova versão:
Clique em Verificar meu progresso para conferir o objetivo.
Verifique a implantação
- Execute o comando abaixo para confirmar que a implantação foi atualizada:
Saída:
Observe que o Serviço agora está usando a versão mais recente da imagem, que foi implantada como uma nova revisão.
Para confirmar as alterações, acesse o URL externo do serviço do Cloud Run e atualize a página. Note que o título do aplicativo foi atualizado.
- Execute o comando a seguir para listar os serviços e ver o endereço IP:
- Clique no URL do serviço. O site agora mostra o texto que você acabou de incluir no componente da página inicial.
Parabéns!
Você implantou, escalonou e atualizou um site no Cloud Run.
Termine a Quest
Este laboratório autoguiado faz parte do site no Google Cloud na Quest. Uma Quest é uma série de laboratórios relacionados que formam um programa de aprendizado. Ao concluir uma Quest, você ganha um selo como reconhecimento da sua conquista. É possível publicar os selos e incluir um link para eles no seu currículo on-line ou nas redes sociais. Inscreva-se em qualquer Quest que tenha este laboratório para receber os créditos de conclusão na mesma hora. Consulte o catálogo do Google Cloud Ensina para conferir todas as Quests disponíveis.
Próximas etapas/Saiba mais
Se você não conhece esses produtos, confira os links abaixo para saber mais:
- Documentação do Docker e a página de introdução ao Docker
- Documentação do Kubernetes Engine
- Documentação do Cloud Build
- Documentação do Artifact Registry)
- Mudanças para criar e implantar no Google Cloud
Manual atualizado em 13 de dezembro de 2023
Laboratório testado em 13 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.