O Cloud Run é uma plataforma de aplicações totalmente gerida para executar o seu código, função ou contentor na infraestrutura altamente escalável da Google.
Em resumo, o Cloud Run permite que os programadores dediquem o seu tempo a escrever o código e muito pouco tempo a operar, configurar e dimensionar o serviço do Cloud Run. Não tem de criar um cluster nem gerir a infraestrutura para ser produtivo com o Cloud Run.
Serviços e empregos
No Cloud Run, o seu código pode ser executado como um serviço ou um trabalho..
A tabela seguinte apresenta uma vista geral das opções fornecidas por cada tipo de recurso do Cloud Run.
| Recurso | Descrição |
|---|---|
| Serviço | Responde a pedidos HTTP enviados para um ponto final único e estável, usando instâncias sem estado que são dimensionadas automaticamente com base numa variedade de métricas importantes. Também responde a eventos e funções. |
| Emprego | Executa tarefas paralelizadas que são executadas manualmente ou de acordo com um horário e são executadas até à conclusão. |
Serviços do Cloud Run
Um serviço do Cloud Run oferece-lhe a infraestrutura necessária para executar um ponto final HTTPS fiável. É da sua responsabilidade garantir que o código escuta numa porta TCP e processa pedidos HTTP.
O diagrama seguinte mostra um serviço do Cloud Run que executa várias instâncias de contentores para processar pedidos Web e eventos do cliente através de um ponto final HTTPS.
Um serviço padrão inclui as seguintes funcionalidades:
- Ponto final HTTPS único para cada serviço
- Todos os serviços do Cloud Run têm um ponto final HTTPS num subdomínio exclusivo do domínio
*.s3nsrun.fr. Também pode configurar domínios personalizados. O Cloud Run gere o TLS por si e suporta WebSockets, HTTP/2 (ponto a ponto) e gRPC (ponto a ponto). - Escala automática rápida baseada em pedidos O
- Cloud Run é rapidamente dimensionado para processar todos os pedidos recebidos ou para processar o aumento da utilização da CPU fora dos pedidos se a definição de faturação estiver definida como faturação baseada em instâncias. Um serviço pode ser expandido rapidamente para mil instâncias ou até mais se pedir um aumento da quota. Se a procura diminuir, o Cloud Run remove os contentores inativos. Se tiver preocupações com os custos ou a sobrecarga dos sistemas a jusante, pode limitar o número máximo de instâncias.
- Escalamento manual opcional
- Por predefinição, o Cloud Run é dimensionado automaticamente para mais instâncias de modo a processar mais tráfego, mas pode substituir este comportamento usando o dimensionamento manual para controlar o comportamento de dimensionamento.
- Gestão de tráfego integrada
Para reduzir o risco de implementar uma nova revisão, o Cloud Run suporta a realização de uma implementação gradual, incluindo o encaminhamento do tráfego recebido para a revisão mais recente, o reverter para uma revisão anterior e a divisão do tráfego para várias revisões em simultâneo.
Por exemplo, pode começar por enviar 1% dos pedidos para uma nova revisão e aumentar essa percentagem enquanto monitoriza a telemetria.
- Serviços públicos e privados
Um serviço do Cloud Run pode ser acessível a partir da Internet ou pode restringir o acesso das seguintes formas:
- Especifique uma política de acesso através do Cloud IAM.
- Use as definições de entrada para restringir o acesso à rede. Isto é útil se quiser permitir apenas tráfego interno da VPC e serviços internos.
- Permita apenas utilizadores autenticados com o Identity-Aware Proxy (IAP).
Pode publicar recursos memorizáveis em cache a partir de uma localização periférica mais próxima dos clientes apresentando um serviço do Cloud Run com uma rede de fornecimento de conteúdo (RFC), como o Firebase Hosting e o Cloud CDN.
Escalabilidade para zero e instâncias mínimas
Por predefinição, se a faturação estiver definida como faturação baseada em instâncias, o Cloud Run adiciona e remove instâncias automaticamente para processar todos os pedidos recebidos ou para processar a utilização aumentada da CPU fora dos pedidos.
Se não existirem pedidos recebidos para o seu serviço, mesmo a última instância restante é removida. Este comportamento é comummente designado por redução a zero. Em seguida, se não existirem instâncias ativas quando chega um pedido, o Cloud Run cria uma nova instância. Isto aumenta o tempo de resposta para estes primeiros pedidos, consoante a rapidez com que o contentor fica pronto para processar pedidos.
Para alterar este comportamento, use um dos seguintes métodos:
- Configure o Cloud Run para manter uma quantidade mínima de instâncias ativas para que o seu serviço não seja dimensionado para zero instâncias
- Use o ajuste de escala manual para ter mais controlo sobre o ajuste de escala.
Preços de pagamento por utilização para serviços
A redução para zero é atrativa por motivos económicos, uma vez que lhe é cobrado o tempo de processamento e a memória alocados a uma instância com uma granularidade de 100 ms. Se não configurar instâncias mínimas, não lhe é cobrado nenhum valor se o seu serviço não for usado. Existe um nível gratuito generoso. Consulte os preços para mais informações.
Existem duas definições de faturação que pode ativar:
- Com base em pedidos
- Se uma instância não estiver a processar pedidos, não lhe é cobrado nenhum valor. Paga uma taxa por pedido.
- Baseado em instâncias
- É-lhe cobrado o custo total da duração de uma instância. Não existe uma taxa por pedido.
Existe um nível gratuito generoso. Consulte os preços para mais informações e consulte as Definições de faturação para saber como ativar a faturação baseada em pedidos ou em instâncias para o seu serviço.
Um sistema de ficheiros de contentor descartável
As instâncias no Cloud Run são descartáveis. Cada contentor tem uma sobreposição do sistema de ficheiros gravável na memória, que não persiste se o contentor for encerrado. O Cloud Run determina quando parar de enviar pedidos a uma instância e desativá-la, por exemplo, quando está a reduzir a escala.
Para receber um aviso quando o Cloud Run estiver prestes a encerrar uma instância,
a sua aplicação pode capturar o sinal SIGTERM. Isto permite que o seu código limpe os buffers locais e persista os dados locais num armazenamento de dados externo.
Para persistir ficheiros permanentemente, integre com o Cloud Storage ou monte um sistema de ficheiros em rede (NFS).
Quando usar serviços do Cloud Run
Os serviços do Cloud Run são ideais para código que processa pedidos, eventos ou funções. Seguem-se alguns exemplos de utilização:
- Websites e apps Web
- Crie a sua app Web com a sua pilha favorita, aceda à sua base de dados SQL e renderize páginas HTML dinâmicas.
- APIs e microsserviços
- Pode criar uma API REST, uma API GraphQL ou microsserviços privados que comunicam através de HTTP ou gRPC.
Tarefas do Cloud Run
Se o seu código realizar tarefas e, em seguida, parar, por exemplo, através de um script, pode usar uma tarefa do Cloud Run para executar o código. Pode executar uma tarefa a partir da linha de comandos através da CLI do Google Cloud, agendando uma tarefa recorrente
As tarefas de matriz são uma forma mais rápida de executar tarefas
Um trabalho pode iniciar uma única instância para executar o seu código. Esta é uma forma comum de executar um script ou uma ferramenta.
No entanto, também pode usar uma tarefa de matriz, iniciando muitas instâncias idênticas e independentes em paralelo. As tarefas de matriz são uma forma mais rápida de processar tarefas que podem ser divididas em várias tarefas independentes.
O diagrama seguinte mostra como um trabalho com sete tarefas demora mais tempo a ser executado sequencialmente do que o mesmo trabalho quando quatro instâncias podem processar tarefas independentes em paralelo:
Por exemplo, se estiver a redimensionar e recortar 1000 imagens do Cloud Storage, o processamento consecutivo é mais lento do que o processamento em paralelo com várias instâncias, com o Cloud Run a gerir o dimensionamento automático.
Quando usar tarefas do Cloud Run
As tarefas do Cloud Run são adequadas para executar código que realiza trabalho (uma tarefa) e termina quando o trabalho está concluído. Eis alguns exemplos:
- Script ou ferramenta
- Executar um script para realizar migrações de bases de dados ou outras tarefas operacionais.
- Tarefa de matriz
- Realize o processamento altamente paralelizado de todos os ficheiros num contentor do Cloud Storage.
- Tarefa agendada
- Crie e envie faturas a intervalos regulares ou guarde os resultados de uma consulta à base de dados como XML e carregue o ficheiro a cada poucas horas.