Options de déploiement et modèle de ressource

Options de déploiement

Cloud Run propose plusieurs options de déploiement. Toutes les options de déploiement aboutissent à une image de conteneur qui s'exécute en tant que service ou job Cloud Run sur l'infrastructure entièrement gérée et hautement évolutive de Cloud Run.

Images de conteneurs

Toute image de conteneur respectant le contrat d'exécution de conteneur de Cloud Run peut être déployée sur un service ou un job Cloud Run.

Sources

Pour plus de commodité, Cloud Run vous permet de créer et de déployer du code source à partir d'une seule commande. Lors du déploiement des sources, Cloud Build transforme le code en une image de conteneur stockée dans Artifact Registry. Vous pouvez déployer des sources qui incluent un fichier Dockerfile ou qui sont écrites dans l'un des environnements d'exécution du langage compatibles.

Les sources peuvent être déployées sur un service ou un job Cloud Run.

Fonctions

Vous pouvez déployer des fonctions à application unique qui répondent aux événements émis par votre infrastructure et vos services cloud. Une fonction est déclenchée quand un événement surveillé est lancé.

Un déploiement de fonctions est un type spécial de déploiement de source, où vous n'avez qu'à fournir le code de la fonction. Vous pouvez écrire des fonctions Cloud Run à l'aide d'un certain nombre de langages de programmation compatibles.

Les fonctions sont déployées en tant que services Cloud Run.

Déploiement source continu à partir de Git

Cloud Run vous aide à configurer le déploiement continu à partir de Git. Comme pour les déploiements des sources, vous pouvez déployer des sources qui incluent un fichier Dockerfile ou qui sont écrites dans l'un des environnements d'exécution de langage compatibles.

Le déploiement continu à partir de Git est disponible pour les services Cloud Run et peut être configuré manuellement dans Cloud Build pour les jobs Cloud Run.

Services Cloud Run

Le service est l'une des principales ressources de Cloud Run. Chaque service est situé dans une région Google Cloud spécifique. Pour la redondance et le basculement, les services sont automatiquement répliqués dans plusieurs zones de la région dans laquelle ils se trouvent. Un projet Google Cloud donné peut exécuter de nombreux services dans différentes régions.

Chaque service expose un point de terminaison unique et adapte automatiquement l'infrastructure sous-jacente pour gérer les requêtes entrantes. 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 Google Cloud contenant trois services Cloud Run, Service A, Service B et Service C, chacun ayant plusieurs révisions.

Le diagramme montre que le Service A reçoit de nombreuses requêtes, ce qui entraîne le démarrage et l'exécution de plusieurs instances, chacune exécutant un seul conteneur. Notez que le Service B ne reçoit pas de requêtes, donc aucune instance n'est encore démarrée. Le Service C exécute plusieurs conteneurs par instance dans chaque révision : notez que seul le conteneur d'entrée reçoit la requête. Chaque instance comportant plusieurs conteneurs évolue en tant qu'unité indépendante.

Révisions du 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 éléments de configuration tels que des variables d'environnement, des limites de mémoire ou une valeur de simultanéité des requêtes.

Les révisions sont immuables : une fois une révision créée, elle ne peut plus être modifiée. Par exemple, lorsque vous déployez une image de conteneur dans un nouveau service Cloud Run, la première révision est créée. Si vous déployez ensuite une image de conteneur différente sur ce même service, une deuxième révision est créée. Si vous définissez ensuite une variable d'environnement, une troisième révision est créée, et ainsi de suite.

Les requêtes sont automatiquement acheminées dès que possible vers la dernière révision de service opérationnelle.

Instances de service Cloud Run

Chaque révision recevant des requêtes est automatiquement adaptée 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 Google Cloud spécifique et exécute un ou plusieurs conteneurs jusqu'à la fin. Un job comprend une ou plusieurs tâches indépendantes exécutées en parallèle dans une exécution de job donnée.

Exécutions de tâches Cloud Run

Lorsqu'un job est exécuté, une exécution de job est créée, dans laquelle toutes les tâches du job sont démarrées. 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, elle est marquée comme failed (échec) et le job est marqué comme failed (échec). 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 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écute une instance et peut effectuer de nouvelles tentatives.