Este documento descreve as várias opções de implantação disponíveis no Cloud Run e explica os recursos disponíveis do Cloud Run.
Opções de implantação
O Cloud Run oferece várias opções de implantação. Após a implantação, todas as opções são executadas como instâncias de contêiner em sandbox na infraestrutura totalmente gerenciada e altamente escalonável do Cloud Run.
Imagens de contêiner implantáveis
É possível implantar qualquer imagem de contêiner que esteja em conformidade com o contrato de ambiente de execução de contêiner do Cloud Run serviço, job ou pool de workers.
Implantar a partir do código-fonte
Para sua conveniência, o Cloud Run permite criar e implantar o código-fonte com um único comando. Consulte Como implantar serviços a partir do código-fonte e Como implantar pools de workers a partir do código-fonte para mais detalhes.
Ao implantar a partir do código-fonte, o Cloud Build transforma o código em uma imagem de contêiner armazenada no Artifact Registry. É possível implantar o código-fonte que inclui um Dockerfile ou que usa um dos
ambientes de execução de linguagem com suporte.
Funções
É possível implantar funções com uma única finalidade que respondem a eventos emitidos pelos serviços e pela infraestrutura em nuvem. O Cloud Run aciona a função quando um evento monitorado é disparado.
Uma implantação de funções é um tipo especial de implantação de código-fonte, em que você só precisa fornecer o código da função. É possível escrever funções do Cloud Run usando várias linguagens de programação compatíveis.
A implantação de uma função cria um serviço do Cloud Run service.
Implantação contínua de código-fonte do Git
O Cloud Run ajuda a configurar a implantação contínua do Git.
Assim como nas implantações de origem, é possível implantar código-fonte que inclui um
Dockerfile ou que foi gravado em um de nossos ambientes de execução de linguagem com suporte.
A implantação contínua do Git está disponível para serviços do Cloud Run . É possível configurá-los manualmente no Cloud Build para jobs do Cloud Run.
Serviços do Cloud Run
Os serviços são um dos principais recursos do Cloud Run. Cada serviço está localizado em uma região específica Google Cloud região. Para oferecer redundância e failover, o Cloud Run replica automaticamente os serviços em várias zonas dentro de uma região. Um determinado Google Cloud projeto pode executar muitos serviços em regiões diferentes.
Cada serviço expõe um endpoint exclusivo. Por padrão, o Cloud Run é escalonado automaticamente para processar solicitações recebidas. Se necessário, é possível mudar o comportamento de escalonamento para escalonamento manual. É possível implantar um serviço de um contêiner, repositório ou código-fonte.
O diagrama a seguir mostra o modelo de recursos do Cloud Run para serviços:
O diagrama mostra um Google Cloud projeto que contém três serviços do Cloud Run, Serviço A, Serviço B e Serviço C, cada um com várias revisões:
O Serviço A está recebendo várias solicitações, então o Cloud Run iniciou várias instâncias para processar a carga. Cada uma dessas instâncias executa apenas um contêiner (o contêiner do aplicativo).
O Serviço B não tem solicitações, então está inativo e o Cloud Run não está executando nenhuma instância.
O Serviço C tem solicitações e foi escalonado para processar a carga criando várias instâncias. Nesse caso, cada uma dessas instâncias executa um conjunto de vários contêineres. Em cada conjunto, apenas o contêiner de entrada recebe a solicitação, mas os outros contêineres ajudam a atender à solicitação.
Revisões de serviço do Cloud Run
Cada implantação em um serviço cria uma revisão. Uma revisão consiste em uma ou mais imagens de contêiner, além de configurações, como variáveis de ambiente, limites de memória ou valor de simultaneidade de solicitação.
Não é possível modificar uma revisão após a criação. Por exemplo, quando você implanta uma imagem de contêiner em um novo serviço, o Cloud Run cria a primeira revisão. Se em seguida você implantar uma imagem de contêiner diferente no mesmo serviço, o Cloud Run criará uma segunda revisão. Se, depois, você definir uma variável de ambiente, o Cloud Run criará uma terceira revisão. Com o tempo, o Cloud Run acaba removendo revisões mais antigas e não utilizadas.
O Cloud Run encaminha automaticamente as solicitações o quanto antes para a revisão de serviço íntegra mais recente.
Instâncias de serviço do Cloud Run
O Cloud Run escalona automaticamente cada revisão de serviço que recebe solicitações para o número de instâncias necessárias para processar todas as solicitações. As instâncias podem receber muitas solicitações ao mesmo tempo. Com a configuração de simultaneidade de solicitações, é possível definir o número máximo de solicitações que podem ser enviadas em paralelo a cada instância de uma revisão.
Jobs do Cloud Run
Cada job está em umaregião específica e consiste em uma ou mais tarefas de job que são executadas para executar um ou mais contêineres até a conclusão. Google Cloud As tarefas de job são independentes e podem ser executadas em paralelo em uma determinada execução de job.
Execuções de job do Cloud Run
Quando um job é executado, uma execução de job é criada e todas as tarefas são iniciadas. Todas as tarefas em uma execução de job precisam ser concluídas com êxito para que a execução seja bem-sucedida. É possível definir tempos limite em tarefas e especificar o número de novas tentativas em caso de falha de tarefas.
Se uma tarefa exceder o número máximo de novas tentativas, o Cloud Run marcará essa tarefa como falha e o job como falha. Por padrão, as tarefas são executadas em paralelo até um máximo de 100, mas você pode especificar um máximo menor se necessário para algum dos recursos de apoio, como um banco de dados.
Tarefas de job do Cloud Run
Cada execução de job executa várias tarefas em paralelo, com cada tarefa executando uma instância. O Cloud Run tenta executar novamente as tarefas com falha automaticamente, dependendo da configuração do job para maxRetries.
Pools de workers do Cloud Run
Os pools de workers são um recurso do Cloud Run projetado especificamente para cargas de trabalho sem solicitação, como filas de extração. Os pools de workers não têm os seguintes recursos:
- Nenhum endpoint/URL
- Nenhum requisito para que o contêiner implantado detecte solicitações em uma porta
- Nenhum escalonamento automático
Semelhante a um serviço do Cloud Run, a implantação ou atualização de um pool de workers cria uma nova revisão.
As instâncias do pool de workers podem ser escalonadas manualmente conforme necessário para escalonar instâncias suficientes para as cargas de trabalho. No entanto, é possível criar seu próprio escalonador automático, se necessário. Um exemplo disso é o escalonador automático do Kafka, que processa o escalonamento de cargas de trabalho recebidas da fila de mensagens do Kafka.
Quando conectado a uma rede VPC, cada instância do pool de workers recebe um endereço IP na rede VPC e pode enviar e receber tráfego para e dessa VPC.