Opzioni di deployment e modello di risorse

Opzioni di implementazione

Cloud Run offre più opzioni di implementazione. Tutte le opzioni di deployment generano un'immagine container che viene eseguita come servizio o job Cloud Run sull'infrastruttura completamente gestita e altamente scalabile di Cloud Run.

Immagini container

Qualsiasi immagine container conforme al contratto di runtime del container di Cloud Run può essere implementata in un servizio o job Cloud Run.

Fonti

Per comodità, Cloud Run ti consente di compilare ed eseguire il deployment del codice sorgente da un unico comando. Durante il deployment delle origini, Cloud Build trasforma il codice in un'immagine container archiviata in Artifact Registry. Puoi eseguire il deployment di origini che includono un Dockerfile o sono scritte in uno dei runtime delle lingue supportate.

Le origini possono essere di cui è stato eseguito il deployment in un servizio o un job Cloud Run.

Funzioni

Puoi eseguire il deployment di funzioni a uso specifico che rispondono agli eventi generati dall'infrastruttura e dai servizi cloud. La funzione viene attivata quando viene attivato un evento controllato.

Un deployment delle funzioni è un tipo speciale di deployment del codice sorgente, in cui devi solo fornire il codice della funzione. Puoi scrivere funzioni Cloud Run utilizzando diversi linguaggi di programmazione supportati.

Le funzioni vengono implementate come servizi Cloud Run.

Deployment continuo delle origini da git

Cloud Run ti aiuta a configurare il deployment continuo da Git. Come per i deployment del codice sorgente, puoi eseguire il deployment di origini che includono un Dockerfile o sono scritte in uno dei runtime dei linguaggi supportati.

Il deployment continuo da Git è disponibile per i servizi Cloud Run e può essere configurato manualmente in Cloud Build per i job Cloud Run.

Servizi Cloud Run

Il servizio è una delle risorse principali di Cloud Run. Ogni servizio si trova in una regione Google Cloud specifica. Per la ridondanza e il failover, i servizi vengono replicati automaticamente su più zone della regione in cui si trovano. Un determinato progetto Google Cloud può eseguire molti servizi in regioni diverse.

Ogni servizio espone un endpoint univoco e scala automaticamente l'infrastruttura sottostante per gestire le richieste in entrata. Puoi eseguire il deployment di un servizio da un container, un repository o codice sorgente.

Il seguente diagramma mostra il modello di risorse Cloud Run per i servizi:

Revisioni e servizi Cloud Run

Il diagramma mostra un progetto Google Cloud contenente tre servizi Cloud Run, Service A, Service B e Service C, ciascuno con diverse revisioni.

Nel diagramma, Service A riceve molte richieste, il che comporta l'avvio e l'esecuzione di diverse istanze, ciascuna con un singolo container. Tieni presente che Service B non riceve richieste, pertanto nessuna istanza è ancora stata avviata. Service C esegue più container per istanza all'interno di ogni revisione: tieni presente che solo il container di ingresso riceve la richiesta. Ogni istanza con più contenuti viene scalata come unità indipendente.

Revisioni del servizio Cloud Run

Ogni deployment in un servizio crea una revisione. Una revisione è composta da una o più immagini container, oltre a una configurazione come variabili di ambiente, limiti di memoria o valore di contemporaneità della richiesta.

Le revisioni sono immutabili: una volta creata, una revisione non può essere modificata. Ad esempio, quando esegui il deployment di un'immagine container in un nuovo servizio Cloud Run, viene creata la prima revisione. Se poi esegui il deployment di un'immagine container diversa nello stesso servizio, viene creata una seconda revisione. Se successivamente imposti una variabile di ambiente, viene creata una terza revisione e così via.

Le richieste vengono instradate automaticamente il prima possibile all'ultima revisione del servizio in stato integro.

Istanze di servizio Cloud Run

Ogni revisione del servizio che riceve richieste viene scalata automaticamente in base al numero di istanze necessarie per gestire tutte queste richieste. Tieni presente che le istanze possono ricevere molte richieste contemporaneamente. Con l'impostazione della concorrenza delle richieste, puoi impostare il numero massimo di richieste che possono essere inviate in parallelo a ogni istanza di una revisione.

Job Cloud Run

Ogni job si trova in una specifica regione Google Cloud e esegue uno o più container fino al completamento. Un job è costituito da una o più attività indipendenti che vengono eseguite in parallelo in una determinata esecuzione job.

Esecuzioni dei job Cloud Run

Quando un job viene eseguito, viene creata un'esecuzione in cui vengono avviate tutte le attività del job. Affinché l'esecuzione di un job riesca, tutte le attività al suo interno devono essere completate correttamente. Puoi impostare i tempi di attesa per la tâche e specificare il numero di nuovi tentativi in caso di errore. Se un'attività supera il numero massimo di nuovi tentativi, viene contrassegnata come non riuscita e lo stesso vale per il job. Per impostazione predefinita, le attività vengono eseguite in parallelo fino a un massimo di 100, ma puoi specificare un valore massimo inferiore se una delle risorse di supporto lo richiede.

Attività dei job Cloud Run

Ogni esecuzione di job esegue una serie di attività in parallelo. Ogni attività esegue un'istanza e potrebbe riprovare.