Opções de implantação e modelo de recursos

Opções de implantação

O Cloud Run oferece várias opções de implantação. Todas as opções de implantação resultam em uma imagem de contêiner executada como um serviço ou job do Cloud Run na infraestrutura totalmente gerenciada e altamente escalonável do Cloud Run.

Imagens do Container

Qualquer imagem de contêiner alinhada ao contrato de ambiente de execução de contêiner do Cloud Run pode ser implantada em um serviço ou job do Cloud Run.

Fontes

Para sua conveniência, o Cloud Run permite criar e implantar o código-fonte com um único comando. Ao implantar origens, o Cloud Build transforma o código em uma imagem de contêiner que é armazenada no Artifact Registry. É possível implantar origens que incluem um Dockerfile ou que foram gravadas em um dos ambientes de execução de linguagem com suporte.

As origens podem ser implantadas em um serviço ou job do Cloud Run.

Funções

É possível implantar funções com uma única finalidade que respondem a eventos emitidos pelos serviços e pela infraestrutura em nuvem. A função é acionada quando um evento em análise é disparado.

Uma implantação de funções é um tipo especial de implantação de origem, 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.

As funções são implantadas como serviços do Cloud Run.

Implantação contínua de origem 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 fontes que incluem um Dockerfile ou que foram gravadas em um dos ambientes de execução de linguagem compatíveis.

A implantação contínua do Git está disponível para serviços do Cloud Run e pode ser configurada manualmente no Cloud Build para jobs do Cloud Run.

Serviços do Cloud Run

O serviço é um dos principais recursos do Cloud Run. Cada serviço está 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.

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. Como Service B não está recebendo solicitações, nenhuma instância 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.

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.

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.

Instâncias de serviço do Cloud Run

Cada revisão de serviço que recebe solicitações é escalonada automaticamente para o número de instâncias necessárias para lidar com 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 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 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, ela e o job serão marcados 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.

Tarefas de job do Cloud Run

Cada execução de job executa várias tarefas em paralelo. Cada tarefa executa uma instância e pode repeti-la.