O que é o Cloud Run

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 do Cloud Run executa contentores para publicar pedidos e eventos Web

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:

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:

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:

As tarefas de matriz são uma forma mais rápida de executar tarefas paralelizadas

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.

O que se segue?