O Cloud Run é a plataforma de servidor totalmente gerenciada do Google Cloud que permite que você implemente aplicativos sem se preocupar com o gerenciamento da infraestrutura. Ele é super flexível e uma ótima opção para uma variedade de projetos, desde hobbies até empresas.
Neste artigo, mostrarei a você o que é o Cloud Run, como ele funciona, quais casos de uso ele pode resolver e como ele se compara a outras soluções sem servidor. Também mostrarei a você, passo a passo, como implantar seu primeiro aplicativo Cloud Run!
Eantes de você começar: Se você é completamente novo em computação em nuvem, recomendo que faça nosso curso Introduction to Cloud Computing. Neste curso, você conhecerá os conceitos básicos da nuvem, explicará os principais termos, como escalabilidade e latência, e abordará as vantagens das ferramentas de nuvem de provedores como o GCP.
O que é o Cloud Run?
O Cloud Run é uma plataforma de execução de contêineres sem servidor que permite que você implemente aplicativos sem se preocupar com o gerenciamento da infraestrutura.
Com as implementações tradicionais baseadas em servidor, você geralmente precisa provisionar e manter máquinas virtuais. O Cloud Run funciona de forma um pouco diferente e abstrai tudo isso para oferecer a você um ambiente totalmente gerenciado.
Ele foi desenvolvido com base no Knative (umaplataforma de código abertobaseada no Kubernetes que permite carga de trabalho sem servidor), o que significa que seu aplicativo é dimensionado automaticamente com base na demanda. Quando o tráfego aumenta, o Cloud Run ativa mais instâncias do para que você possa lidar com ele. Quando o tráfego cai, ele é reduzido. Ele pode até chegar a zero, para que você não pague nada quando o aplicativo não estiver em execução ativa.
A execução em nuvem é econômica, mas também é super flexível. Você pode implementar aplicativos escritos em qualquer linguagem e usar qualquer estrutura ou binário, desde que sejam executados em um contêiner. Você pode trabalhar com tecnologias comuns, como Node.js, Python, Go, Java, ou outras mais obscuras. Na prática, isso significa que o Cloud Run pode alimentar serviços de back-end, APIs, cargas de trabalho de IA, aplicativos da Web e até mesmo trabalhos em lote programados.
Isso foi para você dar uma olhada. Vamos nos aprofundar um pouco mais nos principais recursos do Cloud Run.
Principais recursos do Cloud Run
Acabamos de mencionar alguns deles, mas aqui você encontra um resumo completo dos principais recursos do Cloud Run.
Independente de linguagem e estrutura
Uma das maiores vantagens do Cloud Run é que ele não prende você a uma linguagem ou estrutura específica. Desde que seu aplicativo seja executado em um contêiner, você pode implantá-lo. Se você for uma equipe que trabalha com uma pilha de tecnologia diversificada, poderá usar o Cloud Run em todos os seus serviços. Uma ferramenta para você dominar todas elas!
Dimensionamento automático
O Cloud Run é dimensionado de forma horizontal e dinâmica com base no tráfego. Se o seu aplicativo receber mais solicitações, o Cloud Run ativará automaticamente mais instâncias. Quando a demanda cai, ele reduz a escala, chegando a zero, se necessário.
Segurança e conformidade incorporadas
O Cloud Run vem com HTTPS automático para todos os serviços implantados, identidade de serviço gerenciada pelo Google para autenticação segura, conectividade VPC para rede privada e certificações de conformidade integradas, como SOC 2, ISO 27001 e HIPAA (para aplicativos de saúde). Basicamente, você está em boas mãos.
Integração com os serviços do Google Cloud
Como o Cloud Run faz parte do ecossistema do Google Cloud, ele funciona bem com outros serviços do GCP. Você pode conectá-lo facilmente ao Cloud SQL para bancos de dados, transmitir dados com Pub/Sub, armazenar arquivos no Cloud Storage ou usá-lo com BigQuery, Firebase e serviços de IA/ML.
Suporte a GPU sob demanda
Para cargas de trabalho de IA, o Cloud Run agora oferece suporte a GPU sob demanda. Essa é uma grande melhoria para inferência de machine learning, processamento de vídeo e computação científica, pois permite que você execute qualquer carga de trabalho acelerada por GPU sem gerenciar o hardware por trás dela.
Funções de execução em nuvem: Um modelo de função como serviço (FaaS)
Se você não quiser gerenciar contêineres completos, o Cloud Run Functions oferece uma maneira simplificada e orientada por eventos para executar funções pequenas e de finalidade única. Ele é semelhante ao AWS Lambda ou ao Google Cloud Functions, mas é executado na infraestrutura do Cloud Run.
Como o Cloud Run funciona: Step-by-Step
Nesta seção, mostrarei a você como implantar um aplicativo simples no Cloud Run. Orientarei você no processo de conteinerização do seu aplicativo, implantando-o no Cloud Run e dimensionando-o automaticamente com base na demanda.
Usaremos o Docker para conteinerizar nosso aplicativo, mas você não precisa necessariamente fazer isso. Mais sobre isso no final.
Etapa 1: Configure seu ambiente
Antes de implementar qualquer coisa, você precisa ter as seguintes ferramentas instaladas:
Google Cloud SDK: Esta é uma interface de linha de comando (CLI) que permite que você interaja com os serviços do Google Cloud, incluindo o Cloud Run. Você pode instalá-lo a partir daqui.
Docker: Se seu aplicativo ainda não estiver em contêineres, você precisará do Docker para empacotar o aplicativo. Instale o Docker a partir daqui.
Google Cloud Project: Certifique-se de que você tenha um projeto do Google Cloud configurado. Você pode criar um no Console do Google Cloud.
Etapa 2: Escreva o código do aplicativo
Agora, vamos escrever um aplicativo Node.js simples do tipo "Hello World".
Crie um diretório para seu aplicativo:
mkdir hello-world-app
cd hello-world-appTecnologia
Crie um arquivo index.js dentro do diretório com o seguinte conteúdo:
const http = require('http');
const requestListener = (req, res) => {
res.writeHead(200);
res.end('Hello, Cloud Run!');
};
const server = http.createServer(requestListener);
server.listen(8080, () => {
console.log('Server is running on port 8080');
});Tecnologia
Crie um arquivo package.json para definir as dependências do seu aplicativo:
Agora que o aplicativo está pronto, vamos prosseguir com a conteinerização.
Etapa 3: Containerize o aplicativo
Crie um Dockerfile para definir a imagem do contêiner
No diretório do seu projeto, crie um arquivo chamado "Dockerfile" com o seguinte conteúdo:
# Use the official Node.js image as a base
FROM node:16-alpine
# Set the working directory inside the container
WORKDIR /usr/src/app
# Copy package.json and install dependencies (if any)
COPY package*.json ./
# Copy the rest of the application code
COPY . .
# Expose port 8080 for Cloud Run
EXPOSE 8080
# Start the app
CMD ["node", "index.js"]Tecnologia
Crie a imagem do Docker
Execute o seguinte comando para criar sua imagem do Docker:
Lembra quando eu disse que você nem sempre precisa conteinerizar seu aplicativo manualmente?
O Cloud Run agora oferece suporte a implementações de origem, o que significa que ele pode criar o contêiner para você a partir do seu código-fonte, usando o Cloud Build.
O Cloud Build detecta automaticamente a linguagem do seu aplicativo (Node.js, Python, Go, Java etc.), cria uma imagem de contêiner para você e a armazena no Artifact Registry. Em seguida, o Cloud Run implementa a imagem construída como se você tivesse criado um contêiner manualmente. Definitivamente, eu recomendaria usar isso para aplicativos simples com linguagens compatíveis (Node.js, Python, Go, Java etc.), mas não se você precisar de controle total sobre o contêiner (por exemplo, dependências personalizadas, ajustes no nível do sistema operacional, compilações em várias etapas).
Dicas para você usar o Cloud Run com eficiência
Bem, implementar um aplicativo no Cloud Run é muito fácil, mas para que ele seja executado de forma eficiente é necessário um pouco de ajuste fino. Passei por uma fase de tentativa e erro quando comecei a usá-lo, e foi isso que aprendi:
1. As partidas a frio são reais
Especialmente se você estiver trabalhando com uma imagem de contêiner grande. Quanto menor for a sua imagem, mais rápido o serviço será ativado. O uso de uma imagem de base mínima, como distroless, pode fazer uma grande diferença. Se você estiver criando aplicativos Python, tente usar as versões slim das imagens oficiais. Ou, se você não se importar muito com os custos, defina o número mínimo de instâncias como 1.
2. A melhor variável com a qual você pode brincar é a quantidade de simultaneidade da solicitação
O Cloud Run permite que cada instância lide com várias solicitações simultaneamente, mas o padrão (80 solicitações por contêiner) geralmente não é a quantidade ideal. Para tarefas com uso intenso de CPU, descobri que reduzir a simultaneidade para 1 ou 2 torna as coisas muito mais tranquilas. Por outro lado, as APIs geralmente podem lidar com um número maior. Quanto maior o número, mais você pode reduzir o número de instâncias necessárias e, portanto, menos você pagará. Por isso, definitivamente vale a pena experimentar valores diferentes para encontrar o ponto ideal para o seu aplicativo.
3. Defina os limites de sua instância!
Super útil quando alguém (eu) decide fazer algum teste de carga e inicia um número absurdo de solicitações. Aprendi essa lição para que você não precise aprender. Defina sua contagem máxima de instâncias.
4. Certifique-se de que você permita que as pessoas certas acessem sua instância
Por padrão, os serviços do Cloud Run podem ser acessados por qualquer pessoa com a URL, o que é ótimo para demonstrações rápidas, mas não tão bom para produção. Se o seu aplicativo não se destina a ser público, bloqueie-o com permissões de IAM.
5. O Cloud Logging e o Cloud Trace se tornarão seus melhores amigos
Se, como eu, você tende a depurar problemas por meio de SSH em máquinas virtuais, ficará desapontado. Os logs do Cloud Run são transmitidos diretamente para o painel do Google Cloud, para que você possa ver tudo lá. Certifique-se de que você adicionou o registro estruturado ao seu aplicativo, pois isso facilitará muito a solução de problemas.
Casos de uso do Cloud Run
Falamos sobre alguns casos de uso do Cloud Run, como a execução de aplicativos da Web, APIs ou tarefas cron, mas obviamente há muito mais.
Análise de vídeo e imagem
Você pode implementar um modelo de reconhecimento de imagem para processar imagens carregadas em tempo real para uma plataforma de mídia social ou executar tarefas de transcodificação de vídeo quando um vídeo é carregado. O Cloud Run pode lidar com picos de demanda (como conteúdo viral) com seu dimensionamento automatizado, ao mesmo tempo em que garante a eficiência de custo quando a demanda é baixa.
Imagine que você está criando um sistema que monitora o comportamento do usuário em um mercado on-line. Ao processar fluxos de eventos do Pub/Sub ou do BigQuery, você pode acionar instantaneamente ações com base na atividade do usuário, como enviar notificações push ou analisar tendências em tempo real. O Cloud Run é dimensionado automaticamente para lidar com os eventos recebidos durante os períodos de pico e é reduzido quando o volume de fluxos diminui.
Um caso de uso poderia ser a análise de arquivos de log em tempo real para uma grande empresa. Sempre que um arquivo de registro é carregado no Cloud Storage, o Cloud Run pode acionar um contêiner para analisar o arquivo, executar a análise e armazenar os resultados, tudo isso enquanto você dimensiona dinamicamente com base no tamanho do arquivo e na complexidade da tarefa de processamento.
O Cloud Run é ideal para lidar com serviços de back-end para aplicativos de IoT. Por exemplo, em uma solução de IoT que rastreia dados ambientais de milhares de sensores, o Cloud Run pode processar os dados recebidos de cada dispositivo em tempo real.
O Cloud Run segue um modelo de pagamento conforme o uso, o que significa que você só paga pelos recursos de computação usados enquanto o aplicativo estiver em execução ativa. Quando seu aplicativo não está lidando com solicitações, ele pode ser reduzido a zero, o que significa que você não paga custos desnecessários.
Detalhamento de preços
A partir de março de 2025, o Cloud Run cobra com base em dois fatores principais:
Recursos
Custo
Nível gratuito
CPU
US$ 0,000018 por vCPU-segundo
240.000 vCPUs-segundos/mês
Memória
US$ 0,000002 por GiB-segundo
450.000 GiB-segundos/mês
Esse preço é para faturamento baseado em instância, mas funciona de forma diferente para faturamento baseado em solicitação. O preço acima e a camada gratuita também são ligeiramente diferentes dependendo da região em que você está, portanto, verifique a página oficial do Google Cloud para obter os números exatos. Eles têm uma calculadora de preços para ajudar você a calcular os custos, além de oferecerem descontos para o uso comprometido.
Uma pequena dica: O tráfego com outros serviços do Google Cloud na mesma região é gratuito, portanto, tente usar o Cloud Storage, o Cloud SQL ou o Pub/Sub em vez de serviços externos para troca de dados.
Nuvem Run vs. Funções de execução em nuvem
O Google oferece duas opções de computação sem servidor: Cloud Run e Cloud Run Functions (anteriormente Cloud Functions). Ambos permitem que você execute o código sem gerenciar a infraestrutura, mas são ligeiramente diferentes.
Recurso
Nuvem Run
Funções de nuvem
Modelo de execução
Executa aplicativos completos em contêineres
Executa funções individuais (modelo FaaS)
Controle de tempo de execução
Qualquer linguagem, qualquer estrutura, binários personalizados
Tempos de execução predefinidos (Node.js, Python, Go, etc.)
Estado
Sem estado, mas pode manter conexões em uma solicitação
Sem estado, projetado para cargas de trabalho orientadas por eventos
Dimensionamento
Escalas por instância de contêiner
Escalas por invocação de função
Acionamento
Solicitações HTTP, Pub/Sub, orientadas por eventos
Orientado por eventos (Pub/Sub, armazenamento em nuvem, HTTP, etc.)
Partida a frio
Mínimo com instâncias pré-aquecidas
Pode ter atrasos perceptíveis no dimensionamento
Melhor para
APIs, microsserviços, serviços de back-end, cargas de trabalho de IA
Funções leves e orientadas por eventos, automação
Quando você deve usar o Cloud Run
Você precisa de controle total sobre o tempo de execução e as dependências.
Você está executando um serviço da Web, uma API ou um microsserviço que lida com solicitações persistentes.
Você deseja implementar um aplicativo em contêiner existente com o mínimo de modificações.
Você precisa de processamento em segundo plano ou de tarefas de longa duração (como inferência de IA, trabalhos em lote).
Quando você deve usar as funções de execução em nuvem
Você deseja funções simples, orientadas por eventos, que sejam acionadas em eventos como mensagens Pub/Sub ou uploads do Cloud Storage.
Você está lidando com operações de curta duração, como envio de notificações, processamento de pequenos trabalhos ou transformação de dados.
Você não quer gerenciar contêineres e prefere tempos de execução pré-construídos para JavaScript, Python, Go, etc.
Mas você não precisa necessariamente escolher, pois pode usar os dois juntos! Por exemplo, o backend do Cloud Run pode acionar as funções do Cloud Run para tarefas específicas, como enviar e-mails ou processar imagens de forma assíncrona.
Comparações com outros serviços do Google Cloud
Comparamos o Cloud Run e o Cloud Run Functions de forma bastante completa, mas talvez valha a pena mencionar aqui alguns outros serviços do Google Cloud: GKE e App Engine.
Recurso
Nuvem Run
Google Kubernetes Engine (GKE)
Mecanismo de aplicativos
Tipo de gerenciamento
Sem servidor totalmente gerenciado
Clusters Kubernetes autogerenciados
Plataforma como serviço totalmente gerenciada
Dimensionamento
Escala automática, até zero
Dimensionamento manual ou automático via Kubernetes
Dimensionamento automático (mas não até zero)
Implantação
Implantar contêineres (qualquer idioma)
Implante contêineres por meio do Kubernetes
Implantar código (com suporte a tempos de execução específicos)
Casos de uso
APIs, microsserviços, aplicativos da Web, trabalhos em lote, IA
Aplicativos complexos, microsserviços em grande escala, cargas de trabalho de ML
Aplicativos da Web, back-ends móveis, APIs
Idiomas suportados
Qualquer (baseado em contêiner)
Qualquer (baseado em contêiner)
Tempos de execução específicos compatíveis
Obviamente, há mais nuances sobre isso, mas em resumo: Se você precisar de uma solução totalmente gerenciada e em contêineres com dimensionamento automático e flexibilidade, opte pelo Cloud Run. Se você estiver criando um aplicativo da Web com configuração mínima, opte pelo App Engine. E se você quiser ter controle total sobre seus clusters Kubernetes para aplicativos complexos e de grande escala, escolha o GKE.
Conclusão
Agora que você sabe tudo sobre o Cloud Run, tente iniciar sua primeira instância ou dê uma olhada em outros serviços do Google Cloud para encontrar o nível de controle e automação ideal para você!
Perguntas frequentes sobre o Cloud Run
Como faço para lidar com as conexões de banco de dados no Cloud Run?⌄
Você pode usar o Cloud SQL Auth Proxy, ativar o pooling de conexões (por exemplo, PgBouncer para PostgreSQL) ou usar bancos de dados sem servidor, como o Firestore, para evitar limites de conexão.
Posso usar um domínio personalizado com o Cloud Run?⌄
Sim. Configure-o no console do Cloud Run em Gerenciar domínios personalizados, verifique a propriedade e atualize os registros DNS. O SSL é fornecido automaticamente.
O Cloud Run é compatível com WebSockets e conexões de longa duração?⌄
Sim, mas as instâncias podem ser desligadas se você estiver ocioso. Para manter as conexões, defina instâncias mínimas ou use o Pub/Sub para comunicação orientada por eventos.
O Cloud Run pode lidar com trabalhos em segundo plano?⌄
Não diretamente, pois é baseado em solicitações. Use o Cloud Tasks, o Pub/Sub ou os fluxos de trabalho para acionar e gerenciar o processamento em segundo plano.
Posso executar aplicativos com estado no Cloud Run?⌄
Não recomendado, pois as instâncias não têm estado. Use o armazenamento em nuvem, o Firestore ou um banco de dados externo para manter o estado.
Saiba mais sobre a certificação e o exame AWS Certified Cloud Practitioner com nosso guia completo. Descubra dicas, recursos e estratégias para garantir que você tenha sucesso.
Explore as melhores certificações de nuvem para 2024 em nosso guia abrangente. Descubra como certificações como AWS, Azure e CompTIA Cloud+ podem impulsionar sua carreira.
Descubra todo o seu potencial no Docker e na ciência de dados com o nosso guia completo. Dá uma olhada nas certificações, trilhas de aprendizagem e dicas práticas do Docker.
Saiba como instalar e configurar o banco de dados MySQL dentro de contêineres do Docker. O tutorial inclui conceitos como conexão com servidores MySQL, execução de clientes MySQL para conexão com contêineres e assim por diante.
O Cloud Run é a plataforma de servidor totalmente gerenciada do Google Cloud que permite que você implemente aplicativos sem se preocupar com o gerenciamento da infraestrutura. Ele é super flexível e uma ótima opção para uma variedade de projetos, desde hobbies até empresas.
Neste artigo, mostrarei a você o que é o Cloud Run, como ele funciona, quais casos de uso ele pode resolver e como ele se compara a outras soluções sem servidor. Também mostrarei a você, passo a passo, como implantar seu primeiro aplicativo Cloud Run!
Eantes de você começar: Se você é completamente novo em computação em nuvem, recomendo que faça nosso curso Introduction to Cloud Computing. Neste curso, você conhecerá os conceitos básicos da nuvem, explicará os principais termos, como escalabilidade e latência, e abordará as vantagens das ferramentas de nuvem de provedores como o GCP.
O que é o Cloud Run?
O Cloud Run é uma plataforma de execução de contêineres sem servidor que permite que você implemente aplicativos sem se preocupar com o gerenciamento da infraestrutura.
Com as implementações tradicionais baseadas em servidor, você geralmente precisa provisionar e manter máquinas virtuais. O Cloud Run funciona de forma um pouco diferente e abstrai tudo isso para oferecer a você um ambiente totalmente gerenciado.
Ele foi desenvolvido com base no Knative (umaplataforma de código aberto baseada no Kubernetes que permite carga de trabalho sem servidor), o que significa que seu aplicativo é dimensionado automaticamente com base na demanda. Quando o tráfego aumenta, o Cloud Run ativa mais instâncias do para que você possa lidar com ele. Quando o tráfego cai, ele é reduzido. Ele pode até chegar a zero, para que você não pague nada quando o aplicativo não estiver em execução ativa.
A execução em nuvem é econômica, mas também é super flexível. Você pode implementar aplicativos escritos em qualquer linguagem e usar qualquer estrutura ou binário, desde que sejam executados em um contêiner. Você pode trabalhar com tecnologias comuns, como Node.js, Python, Go, Java, ou outras mais obscuras. Na prática, isso significa que o Cloud Run pode alimentar serviços de back-end, APIs, cargas de trabalho de IA, aplicativos da Web e até mesmo trabalhos em lote programados.
Isso foi para você dar uma olhada. Vamos nos aprofundar um pouco mais nos principais recursos do Cloud Run.
Principais recursos do Cloud Run
Acabamos de mencionar alguns deles, mas aqui você encontra um resumo completo dos principais recursos do Cloud Run.
Independente de linguagem e estrutura
Uma das maiores vantagens do Cloud Run é que ele não prende você a uma linguagem ou estrutura específica. Desde que seu aplicativo seja executado em um contêiner, você pode implantá-lo. Se você for uma equipe que trabalha com uma pilha de tecnologia diversificada, poderá usar o Cloud Run em todos os seus serviços. Uma ferramenta para você dominar todas elas!
Dimensionamento automático
O Cloud Run é dimensionado de forma horizontal e dinâmica com base no tráfego. Se o seu aplicativo receber mais solicitações, o Cloud Run ativará automaticamente mais instâncias. Quando a demanda cai, ele reduz a escala, chegando a zero, se necessário.
Segurança e conformidade incorporadas
O Cloud Run vem com HTTPS automático para todos os serviços implantados, identidade de serviço gerenciada pelo Google para autenticação segura, conectividade VPC para rede privada e certificações de conformidade integradas, como SOC 2, ISO 27001 e HIPAA (para aplicativos de saúde). Basicamente, você está em boas mãos.
Integração com os serviços do Google Cloud
Como o Cloud Run faz parte do ecossistema do Google Cloud, ele funciona bem com outros serviços do GCP. Você pode conectá-lo facilmente ao Cloud SQL para bancos de dados, transmitir dados com Pub/Sub, armazenar arquivos no Cloud Storage ou usá-lo com BigQuery, Firebase e serviços de IA/ML.
Suporte a GPU sob demanda
Para cargas de trabalho de IA, o Cloud Run agora oferece suporte a GPU sob demanda. Essa é uma grande melhoria para inferência de machine learning, processamento de vídeo e computação científica, pois permite que você execute qualquer carga de trabalho acelerada por GPU sem gerenciar o hardware por trás dela.
Funções de execução em nuvem: Um modelo de função como serviço (FaaS)
Se você não quiser gerenciar contêineres completos, o Cloud Run Functions oferece uma maneira simplificada e orientada por eventos para executar funções pequenas e de finalidade única. Ele é semelhante ao AWS Lambda ou ao Google Cloud Functions, mas é executado na infraestrutura do Cloud Run.
Como o Cloud Run funciona: Step-by-Step
Nesta seção, mostrarei a você como implantar um aplicativo simples no Cloud Run. Orientarei você no processo de conteinerização do seu aplicativo, implantando-o no Cloud Run e dimensionando-o automaticamente com base na demanda.
Usaremos o Docker para conteinerizar nosso aplicativo, mas você não precisa necessariamente fazer isso. Mais sobre isso no final.
Etapa 1: Configure seu ambiente
Antes de implementar qualquer coisa, você precisa ter as seguintes ferramentas instaladas:
Etapa 2: Escreva o código do aplicativo
Agora, vamos escrever um aplicativo Node.js simples do tipo "Hello World".
Crie um diretório para seu aplicativo:
Crie um arquivo index.js dentro do diretório com o seguinte conteúdo:
Crie um arquivo package.json para definir as dependências do seu aplicativo:
Agora que o aplicativo está pronto, vamos prosseguir com a conteinerização.
Etapa 3: Containerize o aplicativo
Crie um Dockerfile para definir a imagem do contêiner
No diretório do seu projeto, crie um arquivo chamado "Dockerfile" com o seguinte conteúdo:
Crie a imagem do Docker
Execute o seguinte comando para criar sua imagem do Docker:
Observação: Substitua your-project-id pelo ID do seu projeto no Google Cloud.
Teste a imagem localmente
Você pode testar seu contêiner do Docker localmente executando:
Visite http://localhost:8080 no seu navegador para verificar se o aplicativo está em execução.
Etapa 4: Envie a imagem para o Google Artifact Registry
Habilite o Registro de artefatos para o seu projeto
Se você ainda não tiver ativado o Artifact Registry, execute o seguinte comando
Observação: Você precisará ativar o faturamento para concluir esta etapa!
Crie um repositório no Artifact Registry
Crie um novo repositório do Docker no Artifact Registry:
Autenticar o Docker no registro de artefatos
Configure o Docker para autenticar com o Registro de artefatos:
Marque a imagem do Docker para o Registro de Artefatos
Marque sua imagem do Docker com o URL do repositório do Registro de artefatos:
Envie a imagem para o Registro de Artefatos
Envie a imagem marcada do Docker para o repositório do Registro de artefatos:
Etapa 5: Implementar na nuvem Executar
Quando sua imagem for enviada para o Registro de artefatosvocê pode implementá-la no Nuvem Run diretamente do Registro de artefatos.
Implemente sua imagem no Cloud Run usando o seguinte comando:
Depois de executar esse comando, o Cloud Run implantará seu aplicativo em contêiner e fornecerá a você um URL para acessá-lo.
E tudo está pronto! Dê uma olhada no console do GCP e você verá sua nova instância.
Etapa 6: Limpeza
Para evitar cobranças contínuas, certifique-se de excluir seu serviço quando você terminar o teste.
1. Excluir o serviço Cloud Run
Execute o seguinte comando para excluir o serviço Cloud Run que você implantou:
Isso remove a instância do Cloud Run, mas não exclui a imagem do contêiner.
2. Excluir a imagem do Registro de Artefatos
Para remover a imagem do Registro de artefatosprimeiro liste as imagens:
Em seguida, exclua a imagem com:
Agora o Registro de artefatos também está limpo.
3. Exclua o repositório do Registro de artefatos (se não for mais necessário)
Se você quiser remover completamente o repositório do Artifact Registry, execute:
Essa etapa só é necessária se você tiver terminado totalmente o repositório; caso contrário, poderá reutilizá-lo para futuras implementações.
4. (Opcional) Exclua o projeto do Google Cloud
Se esse era um projeto de teste e você não precisa mais dele, pode excluir o projeto inteiro para remover todos os recursos associados:
Implementações de origem
Lembra quando eu disse que você nem sempre precisa conteinerizar seu aplicativo manualmente?
O Cloud Run agora oferece suporte a implementações de origem, o que significa que ele pode criar o contêiner para você a partir do seu código-fonte, usando o Cloud Build.
Você pode usar o comando:
O Cloud Build detecta automaticamente a linguagem do seu aplicativo (Node.js, Python, Go, Java etc.), cria uma imagem de contêiner para você e a armazena no Artifact Registry. Em seguida, o Cloud Run implementa a imagem construída como se você tivesse criado um contêiner manualmente. Definitivamente, eu recomendaria usar isso para aplicativos simples com linguagens compatíveis (Node.js, Python, Go, Java etc.), mas não se você precisar de controle total sobre o contêiner (por exemplo, dependências personalizadas, ajustes no nível do sistema operacional, compilações em várias etapas).
Dicas para você usar o Cloud Run com eficiência
Bem, implementar um aplicativo no Cloud Run é muito fácil, mas para que ele seja executado de forma eficiente é necessário um pouco de ajuste fino. Passei por uma fase de tentativa e erro quando comecei a usá-lo, e foi isso que aprendi:
1. As partidas a frio são reais
Especialmente se você estiver trabalhando com uma imagem de contêiner grande. Quanto menor for a sua imagem, mais rápido o serviço será ativado. O uso de uma imagem de base mínima, como distroless, pode fazer uma grande diferença. Se você estiver criando aplicativos Python, tente usar as versões slim das imagens oficiais. Ou, se você não se importar muito com os custos, defina o número mínimo de instâncias como 1.
2. A melhor variável com a qual você pode brincar é a quantidade de simultaneidade da solicitação
O Cloud Run permite que cada instância lide com várias solicitações simultaneamente, mas o padrão (80 solicitações por contêiner) geralmente não é a quantidade ideal. Para tarefas com uso intenso de CPU, descobri que reduzir a simultaneidade para 1 ou 2 torna as coisas muito mais tranquilas. Por outro lado, as APIs geralmente podem lidar com um número maior. Quanto maior o número, mais você pode reduzir o número de instâncias necessárias e, portanto, menos você pagará. Por isso, definitivamente vale a pena experimentar valores diferentes para encontrar o ponto ideal para o seu aplicativo.
3. Defina os limites de sua instância!
Super útil quando alguém (eu) decide fazer algum teste de carga e inicia um número absurdo de solicitações. Aprendi essa lição para que você não precise aprender. Defina sua contagem máxima de instâncias.
4. Certifique-se de que você permita que as pessoas certas acessem sua instância
Por padrão, os serviços do Cloud Run podem ser acessados por qualquer pessoa com a URL, o que é ótimo para demonstrações rápidas, mas não tão bom para produção. Se o seu aplicativo não se destina a ser público, bloqueie-o com permissões de IAM.
5. O Cloud Logging e o Cloud Trace se tornarão seus melhores amigos
Se, como eu, você tende a depurar problemas por meio de SSH em máquinas virtuais, ficará desapontado. Os logs do Cloud Run são transmitidos diretamente para o painel do Google Cloud, para que você possa ver tudo lá. Certifique-se de que você adicionou o registro estruturado ao seu aplicativo, pois isso facilitará muito a solução de problemas.
Casos de uso do Cloud Run
Falamos sobre alguns casos de uso do Cloud Run, como a execução de aplicativos da Web, APIs ou tarefas cron, mas obviamente há muito mais.
Análise de vídeo e imagem
Você pode implementar um modelo de reconhecimento de imagem para processar imagens carregadas em tempo real para uma plataforma de mídia social ou executar tarefas de transcodificação de vídeo quando um vídeo é carregado. O Cloud Run pode lidar com picos de demanda (como conteúdo viral) com seu dimensionamento automatizado, ao mesmo tempo em que garante a eficiência de custo quando a demanda é baixa.
Fonte: Google Cloud
Processamento de fluxo em tempo real
Imagine que você está criando um sistema que monitora o comportamento do usuário em um mercado on-line. Ao processar fluxos de eventos do Pub/Sub ou do BigQuery, você pode acionar instantaneamente ações com base na atividade do usuário, como enviar notificações push ou analisar tendências em tempo real. O Cloud Run é dimensionado automaticamente para lidar com os eventos recebidos durante os períodos de pico e é reduzido quando o volume de fluxos diminui.
Fonte: Google Cloud
Processamento de arquivos em tempo real
Um caso de uso poderia ser a análise de arquivos de log em tempo real para uma grande empresa. Sempre que um arquivo de registro é carregado no Cloud Storage, o Cloud Run pode acionar um contêiner para analisar o arquivo, executar a análise e armazenar os resultados, tudo isso enquanto você dimensiona dinamicamente com base no tamanho do arquivo e na complexidade da tarefa de processamento.
Fonte: Google Cloud
Back-ends de IoT sem servidor
O Cloud Run é ideal para lidar com serviços de back-end para aplicativos de IoT. Por exemplo, em uma solução de IoT que rastreia dados ambientais de milhares de sensores, o Cloud Run pode processar os dados recebidos de cada dispositivo em tempo real.
Fonte: Google Cloud
Preços do Google Cloud Run
O Cloud Run segue um modelo de pagamento conforme o uso, o que significa que você só paga pelos recursos de computação usados enquanto o aplicativo estiver em execução ativa. Quando seu aplicativo não está lidando com solicitações, ele pode ser reduzido a zero, o que significa que você não paga custos desnecessários.
Detalhamento de preços
A partir de março de 2025, o Cloud Run cobra com base em dois fatores principais:
Esse preço é para faturamento baseado em instância, mas funciona de forma diferente para faturamento baseado em solicitação. O preço acima e a camada gratuita também são ligeiramente diferentes dependendo da região em que você está, portanto, verifique a página oficial do Google Cloud para obter os números exatos. Eles têm uma calculadora de preços para ajudar você a calcular os custos, além de oferecerem descontos para o uso comprometido.
Uma pequena dica: O tráfego com outros serviços do Google Cloud na mesma região é gratuito, portanto, tente usar o Cloud Storage, o Cloud SQL ou o Pub/Sub em vez de serviços externos para troca de dados.
Nuvem Run vs. Funções de execução em nuvem
O Google oferece duas opções de computação sem servidor: Cloud Run e Cloud Run Functions (anteriormente Cloud Functions). Ambos permitem que você execute o código sem gerenciar a infraestrutura, mas são ligeiramente diferentes.
Quando você deve usar o Cloud Run
Quando você deve usar as funções de execução em nuvem
Mas você não precisa necessariamente escolher, pois pode usar os dois juntos! Por exemplo, o backend do Cloud Run pode acionar as funções do Cloud Run para tarefas específicas, como enviar e-mails ou processar imagens de forma assíncrona.
Comparações com outros serviços do Google Cloud
Comparamos o Cloud Run e o Cloud Run Functions de forma bastante completa, mas talvez valha a pena mencionar aqui alguns outros serviços do Google Cloud: GKE e App Engine.
Obviamente, há mais nuances sobre isso, mas em resumo: Se você precisar de uma solução totalmente gerenciada e em contêineres com dimensionamento automático e flexibilidade, opte pelo Cloud Run. Se você estiver criando um aplicativo da Web com configuração mínima, opte pelo App Engine. E se você quiser ter controle total sobre seus clusters Kubernetes para aplicativos complexos e de grande escala, escolha o GKE.
Conclusão
Agora que você sabe tudo sobre o Cloud Run, tente iniciar sua primeira instância ou dê uma olhada em outros serviços do Google Cloud para encontrar o nível de controle e automação ideal para você!