Implemente imagens de contentores
O Cloud Run oferece várias opções de implementação. Todas as opções de implementação resultam numa imagem de contentor que é executada como um serviço, uma tarefa ou um conjunto de trabalhadores do Cloud Run na infraestrutura totalmente gerida e altamente escalável do Cloud Run.
Imagens de contentores implementáveis
Pode implementar qualquer imagem de contentor que cumpra o contrato de tempo de execução de contentores do Cloud Run num serviço, num trabalho ou num conjunto de trabalhadores do Cloud Run.
Implemente a partir do código-fonte
Para sua conveniência, o Cloud Run permite-lhe criar e implementar código-fonte a partir de um único comando. Consulte os artigos sobre implementar serviços a partir do código-fonte e implementar conjuntos de trabalhadores a partir do código-fonte para ver detalhes.
Quando implementa a partir do código-fonte, o Cloud Build transforma o código numa imagem de contentor
armazenada no Artifact Registry. Pode implementar código fonte que inclua um Dockerfile
ou que use um dos tempos de execução de linguagem suportados.
Funções
Pode implementar funções de finalidade única que respondem a eventos emitidos a partir da sua infraestrutura e serviços na nuvem. O Cloud Run aciona a sua função quando um evento monitorizado é acionado.
A implementação de funções é um tipo especial de implementação de código-fonte, em que só tem de fornecer o código da função. Pode escrever funções do Cloud Run usando vários idiomas de programação suportados.
A implementação de uma função cria um serviço do Cloud Run.
Implementação contínua de código fonte a partir do Git
O Cloud Run ajuda a configurar a implementação contínua a partir do Git.
Tal como as implementações de origem, pode implementar código-fonte que inclua um
Dockerfile
ou que esteja escrito num dos tempos de execução de idiomas suportados.
A implementação contínua a partir do Git está disponível para os serviços do Cloud Run. Pode configurá-los manualmente no Cloud Build para tarefas 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 numa Google Cloud região específica. Para oferecer redundância e ativação pós-falha, o Cloud Run replica automaticamente os serviços em várias zonas numa região. Um determinado Google Cloud projeto pode executar muitos serviços em diferentes regiões.
Cada serviço expõe um ponto final exclusivo. Por predefinição, o Cloud Run dimensiona automaticamente para processar pedidos recebidos. Opcionalmente, pode alterar o comportamento de dimensionamento para dimensionamento manual, se necessário. Pode implementar um serviço a partir de um contentor, um repositório ou um código fonte.
O diagrama seguinte 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, o serviço A, o serviço B e o serviço C, cada um com várias revisões:
O serviço A está a receber vários pedidos, pelo que o Cloud Run iniciou várias instâncias para processar a carga. Cada uma destas instâncias executa apenas um contentor (o contentor da aplicação).
O serviço B não tem pedidos, pelo que está inativo e o Cloud Run não está a executar nenhuma cópia da respetiva aplicação.
O serviço C tem pedidos e foi dimensionado para processar a carga através da criação de várias instâncias. Cada instância contém vários contentores e funciona como um conjunto independente. Em cada conjunto, apenas o contentor de entrada recebe o pedido, mas os outros contentores ajudam a satisfazer o pedido.
Revisões do serviço do Cloud Run
Cada implementação num serviço cria uma revisão. Uma revisão consiste numa ou mais imagens de contentores, juntamente com definições de configuração, como variáveis de ambiente, limites de memória ou valor de concorrência de pedidos.
Não pode modificar uma revisão após a sua criação. Por exemplo, quando implementa uma imagem de contentor num novo serviço, o Cloud Run cria a primeira revisão. Se, em seguida, implementar uma imagem de contentor diferente nesse mesmo serviço, o Cloud Run cria uma segunda revisão. Se definir posteriormente uma variável de ambiente, o Cloud Run cria uma terceira revisão. Ao longo do tempo, o Cloud Run acaba por remover as revisões não usadas.
O Cloud Run encaminha automaticamente os pedidos assim que possível para a revisão de serviço mais recente em bom estado.
Instâncias do serviço do Cloud Run
O Cloud Run dimensiona automaticamente cada revisão de serviço que recebe pedidos para o número de instâncias necessárias para processar todos estes pedidos. Tenha em atenção que as instâncias podem receber muitos pedidos em simultâneo. Com a definição de simultaneidade de pedidos, pode definir o número máximo de pedidos que podem ser enviados em paralelo a cada instância de uma revisão.
Tarefas do Cloud Run
Cada tarefa está localizada numa Google Cloud região específica e consiste numa ou mais tarefas de trabalho que são executadas para executar um ou mais contentores até à conclusão. As tarefas de trabalho são independentes e podem ser executadas em paralelo numa determinada execução de trabalho.
Execuções de tarefas do Cloud Run
Quando uma tarefa é executada, é criada uma execução da tarefa na qual todas as tarefas da tarefa são iniciadas. Todas as tarefas numa execução de tarefas têm de ser concluídas com êxito para que a execução de tarefas seja bem-sucedida. Pode definir tempos limite para a tarefa e especificar o número de novas tentativas em caso de falha da tarefa.
Se qualquer tarefa exceder o número máximo de novas tentativas, o Cloud Run marca essa tarefa como falhada e a tarefa de processamento como falhada. Por predefinição, as tarefas são executadas em paralelo até um máximo de 100, mas pode especificar um máximo inferior se algum dos seus recursos de apoio, como uma base de dados, o exigir.
Tarefas de tarefas do Cloud Run
Cada execução de trabalho executa várias tarefas em paralelo, com cada tarefa a executar uma instância. O Cloud Run tenta automaticamente executar novamente todas as tarefas com falhas, consoante a configuração da tarefa para maxRetries.
Grupos de trabalhadores do Cloud Run
Os conjuntos de trabalhadores são um recurso do Cloud Run especificamente concebido para cargas de trabalho sem pedidos, como filas de obtenção. Tenha em atenção que os conjuntos de trabalhadores não têm as seguintes funcionalidades:
- Sem ponto final/URL
- Não é necessário que o contentor implementado ouça pedidos numa porta
- Sem escala automática
Semelhante a um serviço do Cloud Run, a implementação ou a atualização de um conjunto de trabalhadores cria uma nova revisão.
As instâncias do conjunto de trabalhadores podem ser dimensionadas manualmente, conforme necessário, para dimensionar instâncias suficientes para as cargas de trabalho. No entanto, pode criar o seu próprio escalador automático, se necessário. Um exemplo disto é o autoscaler do Kafka, que processa o dimensionamento para cargas de trabalho recebidas da fila de mensagens do Kafka.