Options de déploiement et modèle de ressource

Ce guide décrit comment Cloud Run gère les déploiements, en les divisant en trois domaines :

  • Types de déploiement : ce que vous apportez à Cloud Run, comme du code source ou des images de conteneurs.
  • Ressources Cloud Run : ce que votre déploiement exécute dans Cloud Run (service, job, pool de nœuds de calcul ou instance).
  • Méthodes de déploiement : comment exécuter le déploiement, par exemple à l'aide de la console Cloud de Confiance , de la gcloud CLI, de YAML ou de Terraform.

Types de déploiement

Cloud Run propose plusieurs options de déploiement. Après le déploiement, tous les déploiements, exécutions ou créations s'exécutent en tant qu'instances de conteneur en bac à sable sur l'infrastructure entièrement gérée et hautement évolutive de Cloud Run. Le tableau suivant indique les options de déploiement compatibles pour chaque type de ressource :

Options de déploiement Services Jobs
Images de conteneurs déployables. Compatible Compatible
Déployer depuis le code source Compatible Compatible
Déployer des fonctions1 Compatible —

Déployer des images de conteneurs

Vous pouvez déployer n'importe quelle image de conteneur respectant le contrat d'exécution de conteneur de Cloud Run sur un service, un job

Ressources Cloud Run

Les sections suivantes décrivent plus en détail les ressources Cloud Run.

Comparaison des ressources Cloud Run

Fonctionnalité Services Jobs
Cas d'utilisation principal Piloté par les requêtes (sites Web, API, microservices) Axé sur les tâches (scripts, traitement des données, migrations)
Déclencheur Requêtes HTTP/gRPC, Eventarc Modes d'exécution : standard (immédiat), différé.

Déclencheurs : exécution manuelle, à l'aide de Scheduler, à l'aide de Workflows
Scaling Automatique/Manuel : évolue à zéro ou en fonction des requêtes Automatique : évolue vers N tâches indépendantes qui s'exécutent de manière séquentielle ou en parallèle.
Cycle de vie Éphémère, réduit la taille en cas d'inactivité Diffusion jusqu'à la fin (jusqu'à sept jours)
S'adresser à URL de service stable (à équilibrage de charge) Aucun point de terminaison public.

URL interne pour les déclencheurs (par exemple, le planificateur)
Trafic entrant HTTP/gRPC public/interne Aucun
Facturation Basée sur les requêtes ou sur les instances Durée par exécution

Services Cloud Run

Un service est le principal type de ressource dans Cloud Run. Il représente une charge de travail axée sur les requêtes qui met automatiquement à l'échelle les instances de conteneurs pour gérer le trafic Web, les requêtes HTTP ou les événements entrants. Chaque service est situé dans une régionCloud de Confiance by S3NS spécifique. Pour assurer la redondance et le basculement, Cloud Run réplique automatiquement les services dans plusieurs zones d'une même région. Un projetCloud de Confiance donné peut exécuter de nombreux services dans différentes régions.

Chaque service expose un point de terminaison unique. Par défaut, Cloud Run effectue un scaling automatique pour traiter les requêtes entrantes. Si nécessaire, vous pouvez modifier le comportement de scaling et le définir sur scaling manuel. Vous pouvez déployer un service à partir d'un conteneur, d'un dépôt ou d'un code source.

Le schéma suivant illustre le modèle de ressource Cloud Run pour les services :

Services et révisions Cloud Run

Le schéma montre un projet Cloud de Confiance contenant trois services Cloud Run, le service A, le service B et le service C, chacun ayant plusieurs révisions :

  • Le service A reçoit plusieurs requêtes. Cloud Run a donc démarré plusieurs instances pour gérer la charge. Chacune de ces instances n'exécute qu'un seul conteneur (celui de l'application).
  • Le service B n'a aucune requête. Il est donc inactif et Cloud Run n'exécute aucune instance.
  • Le service C reçoit des requêtes et a été mis à l'échelle pour gérer la charge en créant plusieurs instances. Dans ce cas, chacune de ces instances exécute un ensemble de plusieurs conteneurs. Dans chaque ensemble, seul le conteneur d'entrée reçoit la requête, mais les autres conteneurs aident à la traiter.

Révisions de service Cloud Run

Chaque déploiement sur un service crée une révision. Une révision comprend une ou plusieurs images de conteneurs, ainsi que des paramètres de configuration tels que des variables d'environnement, des limites de mémoire ou une valeur de simultanéité des requêtes.

Vous ne pouvez pas modifier une révision après l'avoir créée. Par exemple, lorsque vous déployez une image de conteneur dans un nouveau service, Cloud Run crée la première révision. Si vous déployez ensuite une image de conteneur différente sur ce même service, Cloud Run crée une deuxième révision. Si vous définissez ensuite une variable d'environnement, Cloud Run crée une troisième révision. Au fil du temps, Cloud Run finit par supprimer les révisions inutilisées.

Cloud Run achemine automatiquement les requêtes dès que possible vers la dernière révision de service opérationnelle.

Instances de service Cloud Run

Cloud Run adapte automatiquement chaque révision de service recevant des requêtes au nombre d'instances nécessaires pour les traiter en totalité. Notez que les instances peuvent recevoir plusieurs requêtes en même temps. Le paramètre de simultanéité des requêtes vous permet de définir le nombre maximal de requêtes pouvant être envoyées en parallèle à chaque instance d'une révision.

Jobs Cloud Run

Chaque job est situé dans une région Cloud de Confiancespécifique et se compose d'une ou de plusieurs tâches de job qui exécutent un ou plusieurs conteneurs jusqu'à la fin. Les tâches de job sont indépendantes et peuvent s'exécuter en parallèle dans une exécution de job donnée.

Exécutions de tâches Cloud Run

Lorsque vous exécutez un job, Cloud Run crée une exécution de job et démarre toutes les tâches du job. Toutes les tâches d'une exécution de job doivent réussir pour que l'exécution du job aboutisse. Vous pouvez définir des délais avant expiration sur des tâches et spécifier le nombre de tentatives en cas d'échec de la tâche.

Si une tâche dépasse son nombre maximal de tentatives, Cloud Run la marque comme ayant échoué, ainsi que le job. Par défaut, les tâches s'exécutent en parallèle jusqu'à un maximum de 100, mais vous pouvez spécifier un maximum inférieur si l'une de vos ressources de sauvegarde, comme une base de données, l'exige.

Tâches de job Cloud Run

Chaque exécution de job exécute un certain nombre de tâches en parallèle, chaque tâche exécutant une instance. Cloud Run tente automatiquement d'exécuter à nouveau les tâches ayant échoué, en fonction de la configuration du job pour maxRetries.