Modelo de recurso

O diagrama a seguir mostra o modelo de recursos do Cloud Run para serviços:

Serviços e revisões do Cloud Run

No diagrama, mostramos um projeto do Google Cloud contendo três serviços do Cloud Run, Service A, Service B e Service C, cada um com várias revisões.

No diagrama, Service A está recebendo muitas solicitações, o que resulta na inicialização e execução de várias instâncias, cada uma executando um único contêiner. No momento, Service B não está recebendo solicitações. Portanto, nenhuma instância de contêiner foi iniciada ainda. Service C está executando vários contêineres por instância em cada revisão. Observe que somente o contêiner de entrada recebe a solicitação. Cada instância com vários contêineres é escalonada como uma unidade independente.

Serviços do Cloud Run

O serviço é o principal recurso do Cloud Run. Cada serviço está localizado em uma região específica do Google Cloud. Para redundância e failover, os serviços são replicados automaticamente em várias zonas na região em que estão. Um determinado projeto do Google Cloud pode executar muitos serviços em diferentes regiões.

Cada serviço expõe um endpoint exclusivo e escalona automaticamente a infraestrutura subjacente para manipular solicitações de entrada. É possível implantar um serviço de um contêiner, repositório ou código-fonte.

Revisões 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 de ambiente, como variáveis de ambiente, limites de memória ou valor de simultaneidade.

As revisões são imutáveis: depois que uma revisão é criada, ela não pode ser modificada. Por exemplo, quando você implanta uma imagem de contêiner em um novo serviço do Cloud Run, a primeira revisão é criada. Se em seguida você implantar uma imagem de contêiner diferente no mesmo serviço, uma segunda revisão será criada. Se, depois, você definir uma variável de ambiente, uma terceira revisão será criada e assim por diante.

As solicitações são roteadas automaticamente o quanto antes para a última revisão de serviço íntegra.

Funções do Cloud Run

As funções são um tipo de serviço que contém pequenos snippets de código para criar e conectar serviços de nuvem.

Com ele, você pode escrever funções com uma única finalidade e vinculadas a eventos emitidos pela sua infraestrutura e pelos serviços em nuvem. A função é acionada quando um evento em análise é disparado. Seu código pode ser executado em um ambiente totalmente gerenciado. Como as funções são executadas como serviços do Cloud Run, provisionar uma infraestrutura ou se preocupar com o gerenciamento de servidores.

É possível programar o Cloud Run usando várias linguagens de programação compatíveis. Use uma das linguagens compatíveis com sua função e a execute em qualquer ambiente de execução padrão. Isso facilita a portabilidade e os testes locais.

Eventos e gatilhos da função do Cloud Run

Os eventos na nuvem são ocorrências do ambiente em nuvem. Esses eventos podem ser alterações feitas em dados em um banco de dados, arquivos adicionados a um sistema de armazenamento ou a criação de uma nova instância de máquina virtual.

Os eventos ocorrem independentemente de você ter optado por responder a eles. A resposta a um evento é criada com um gatilho. Ele é uma declaração de que você tem interesse em um determinado evento ou grupo de eventos. A vinculação de uma função a um acionador permite capturar e reagir a eventos. Para mais informações sobre como criar gatilhos e associá-los às funções, consulte Invocar com HTTPS e Acionar com eventos.

Jobs do Cloud Run

Cada job está localizado em uma região específica do Google Cloud e executa um ou mais contêineres até a conclusão. Um job consiste em uma ou várias tarefas independentes executadas em paralelo em uma determinada execução. Cada tarefa executa um contêiner e pode repeti-lo.

Execuções de job do Cloud Run

Quando um job é executado, uma execução de job é criada em que todas as tarefas são iniciadas. Todas as tarefas em uma execução de job precisam ser concluídas 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, ela será marcada como com falha e o job será marcado como com 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 algum dos recursos de apoio exigir.

Instâncias do Cloud Run

Cada solicitação de recebimento de revisão é escalonada automaticamente para o número de instâncias necessárias para lidar com todas essas solicitações. Observe que o contêiner de entrada em uma instância pode receber muitas solicitações ao mesmo tempo. Com a configuração de simultaneidade, é possível definir o número máximo de solicitações que podem ser enviadas em paralelo a uma determinada instância.