Déployer des images de conteneurs
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, job ou pool de nœuds de calcul Cloud Run sur l'infrastructure entièrement gérée et hautement évolutive de Cloud Run.
Images de conteneurs déployables
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 ou un pool de nœuds de calcul Cloud Run.
Déployer depuis le code source
Pour plus de commodité, Cloud Run vous permet de compiler et de déployer du code source à partir d'une seule commande. Pour en savoir plus, consultez Déployer des services à partir du code source et Déployer des pools de nœuds de calcul à partir du code source.
Lorsque vous déployez à partir du code source, Cloud Build transforme le code en image de conteneur stockée dans Artifact Registry. Vous pouvez déployer du code source qui inclut un fichier Dockerfile
ou qui utilise l'un des environnements d'exécution de langage compatibles.
Fonctions
Vous pouvez déployer des fonctions à application unique qui répondent aux événements émis par votre infrastructure et vos services cloud. Cloud Run déclenche votre fonction lorsqu'un événement surveillé est déclenché.
Un déploiement de fonctions est un type spécial de déploiement de code 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.
Le déploiement d'une fonction crée un service Cloud Run.
Déploiement continu du code source à 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 du code source qui inclut un fichier Dockerfile
ou qui est écrit 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. Vous pouvez les configurer manuellement dans Cloud Build pour les jobs Cloud Run.
Services Cloud Run
Les services constituent l'une des principales ressources de Cloud Run. Chaque service est situé dans une régionGoogle Cloud 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 projet Google Cloud 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 :
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 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 copie de son application.
Le service C reçoit des requêtes et a été mis à l'échelle pour gérer la charge en créant plusieurs instances. Chaque instance contient plusieurs conteneurs et fonctionne comme un ensemble indépendant. Dans chaque ensemble, seul le conteneur d'entrée reçoit la requête, mais les autres conteneurs contribuent à 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 supprime 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 Google Cloud région spécifique et se compose d'une ou de plusieurs tâches de job qui sont exécutées pour exécuter un ou plusieurs conteneurs jusqu'à la fin. Les tâches de job sont indépendantes et peuvent être 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, 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.
Pools de nœuds de calcul Cloud Run
Les pools de nœuds de calcul sont une ressource Cloud Run spécialement conçue pour les charges de travail sans requête, telles que les files d'attente de récupération. Notez que les pools de nœuds de calcul ne disposent pas des fonctionnalités suivantes :
- Aucun point de terminaison ni URL
- Le conteneur déployé n'est pas tenu d'écouter les requêtes sur un port.
- Pas de scaling automatique
Comme pour un service Cloud Run, le déploiement ou la mise à jour d'un pool de nœuds de calcul crée une révision.
Les instances de pool de nœuds de calcul peuvent être mises à l'échelle manuellement selon les besoins pour adapter le nombre d'instances aux charges de travail. Toutefois, vous pouvez créer votre propre autoscaler si nécessaire. Le scaler automatique Kafka en est un exemple. Il gère le scaling des charges de travail provenant de la file d'attente de messages Kafka.