Questa guida descrive come Cloud Run gestisce i deployment, suddivisi in tre aree:
- Tipi di deployment: cosa porti su Cloud Run, ad esempio codice sorgente o immagini container.
- Risorse Cloud Run: cosa viene eseguito il deployment in Cloud Run (servizio, job, pool di worker o istanza).
- Metodi di deployment: come esegui il deployment, ad esempio utilizzando la console Cloud de Confiance , gcloud CLI, YAML o Terraform.
Tipi di deployment
Cloud Run offre più opzioni di deployment. Dopo il deployment, tutti i deployment, le esecuzioni o le creazioni vengono eseguiti come istanze di container in sandbox sull'infrastruttura completamente gestita e altamente scalabile di Cloud Run. La tabella seguente mostra le opzioni di deployment supportate per ogni tipo di risorsa:
| Opzione di implementazione | Servizi | Job |
|---|---|---|
| Immagini container di cui è possibile eseguire il deployment. | Supportato | Supportato |
| Esegui il deployment dal codice sorgente | Supportato | Supportato |
| Esegui il deployment delle funzioni1 | Supportato | — |
Deployment delle immagini container
Puoi eseguire il deployment di qualsiasi immagine container conforme al contratto di runtime del container di Cloud Run in un servizio o job
Risorse Cloud Run
Le sezioni seguenti descrivono le risorse Cloud Run in modo più dettagliato.
Confronto delle risorse Cloud Run
| Funzionalità | Servizi | Job |
|---|---|---|
| Caso d'uso primario | Basato su richieste (siti web, API, microservizi) | Basato su attività (script, elaborazione dei dati, migrazioni) |
| Trigger | Richieste HTTP/gRPC, Eventarc | Modalità di esecuzione: standard (immediata), ritardata. Trigger: esecuzione manuale, utilizzo di Scheduler, utilizzo di Workflows |
| Scalabilità | Automatico/Manuale: esegue lo scale down a zero o in base alle richieste | Automatico: esegue la scalabilità a N attività indipendenti che vengono eseguite in sequenza o in parallelo. |
| Ciclo di vita | Temporaneo, si riduce in caso di inattività | Viene pubblicata fino al completamento per un massimo di 7 giorni (di breve durata) |
| Indirizzo | URL del servizio stabile (bilanciamento del carico) | Nessun endpoint pubblico. URL interno per i trigger (ad es. pianificatore) |
| Traffico in entrata | HTTP/gRPC pubblico/interno | Nessuno |
| Fatturazione | Basata sulle richieste o sulle istanze | Durata per esecuzione |
Servizi Cloud Run
Un servizio è il tipo di risorsa principale in Cloud Run, che rappresenta un workload basato su richieste che scala automaticamente le istanze container per gestire il traffico web in entrata, le richieste HTTP o gli eventi. Ogni servizio si trova in una Cloud de Confiance by S3NS regione specifica. Per fornire ridondanza e failover, Cloud Run replica automaticamente i servizi in più zone all'interno di una regione. Un determinato progettoCloud de Confiance può eseguire molti servizi in diverse regioni.
Ogni servizio espone un endpoint univoco. Per impostazione predefinita, Cloud Run scala automaticamente per gestire le richieste in entrata. Se necessario, puoi modificare il comportamento di scalabilità in scalabilità manuale. Puoi eseguire il deployment di un servizio da un container, un repository o un codice sorgente.
Il seguente diagramma mostra il modello di risorse Cloud Run per i servizi:
Il diagramma mostra un progetto Cloud de Confiance contenente tre servizi Cloud Run, Servizio A, Servizio B e Servizio C, ognuno dei quali ha diverse revisioni:
- Il servizio A riceve più richieste, quindi Cloud Run ha avviato più istanze per gestire il carico. Ognuna di queste istanze esegue un solo container (il container dell'applicazione).
- Il servizio B non ha richieste, quindi è inattivo e Cloud Run non esegue alcuna istanza.
- Il servizio C ha richieste ed è stato scalato per gestire il carico creando più istanze. In questo caso, ciascuna di queste istanze esegue un insieme di più container. In ogni set, solo il contenitore di ingresso riceve la richiesta, ma gli altri contenitori contribuiscono a soddisfarla.
Revisioni del servizio Cloud Run
Ogni deployment in un servizio crea una revisione. Una revisione è composta da una o più immagini container, insieme a impostazioni di configurazione come variabili di ambiente, limiti di memoria o valore di contemporaneità delle richieste.
Non puoi modificare una revisione dopo la sua creazione. Ad esempio, quando esegui il deployment di un'immagine container in un nuovo servizio, Cloud Run crea la prima revisione. Se poi esegui il deployment di un'immagine container diversa nello stesso servizio, Cloud Run crea una seconda revisione. Se in seguito imposti una variabile di ambiente, Cloud Run crea una terza revisione. Nel tempo, Cloud Run rimuove le revisioni inutilizzate.
Cloud Run instrada automaticamente le richieste il prima possibile all'ultima revisione del servizio integro.
Istanze del servizio Cloud Run
Cloud Run scala automaticamente ogni revisione del servizio che riceve richieste al numero di istanze necessarie per gestire tutte queste richieste. Tieni presente che le istanze possono ricevere molte richieste contemporaneamente. Con l'impostazione di 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 regione Cloud de Confiancespecifica ed è costituito da una o più attività del job che eseguono uno o più container fino al completamento. Le attività del job sono indipendenti e possono essere eseguite in parallelo in una determinata esecuzione del job.
Esecuzioni dei job Cloud Run
Quando esegui un job, Cloud Run crea un'esecuzione del job e avvia tutte le attività del job. Tutte le attività di un'esecuzione del job devono essere completate correttamente affinché l'esecuzione del job riesca. Puoi impostare timeout per l'attività e specificare il numero di nuovi tentativi in caso di errore dell'attività.
Se un'attività supera il numero massimo di nuovi tentativi, Cloud Run la contrassegna come non riuscita e il job come non riuscito. Per impostazione predefinita, le attività vengono eseguite in parallelo fino a un massimo di 100, ma puoi specificare un massimo inferiore se una delle tue risorse di backend, ad esempio un database, lo richiede.
Attività del job Cloud Run
Ogni esecuzione del job esegue una serie di attività in parallelo, con ogni attività
che esegue un'istanza. Cloud Run tenta automaticamente di eseguire di nuovo
le attività non riuscite, a seconda della configurazione del job per maxRetries.