Cloud Run est la plateforme serverless totalement managée de Google Cloud, qui vous permet de déployer des applications sans vous soucier de la gestion de l’infrastructure. C’est très flexible et idéal pour une grande variété de projets, du side-project à l’entreprise.
Dans cet article, je vous explique ce qu’est Cloud Run, comment il fonctionne, à quels besoins il répond et comment il se compare aux autres solutions serverless. Je vous montre également, étape par étape, comment déployer votre première application Cloud Run !
Avant de commencer : si vous débutez totalement sur le cloud, je vous recommande notre cours Introduction to Cloud Computing. Il décrypte les bases du cloud, explique des notions clés comme la scalabilité et la latence, et présente les avantages des outils cloud proposés par des fournisseurs comme GCP.
Qu’est-ce que Cloud Run ?
Cloud Run est une plateforme d’exécution serverless pour conteneurs qui vous permet de déployer des applications sans gestion d’infrastructure.
Avec des déploiements classiques sur serveur, vous devez généralement provisionner et maintenir des machines virtuelles. Cloud Run fonctionne différemment : il abstrait tout cela et offre un environnement entièrement managé.
Il est bâti sur Knative (une plateforme open source basée sur Kubernetes qui permet les charges serverless), ce qui signifie que votre application s’adapte automatiquement à la demande. Quand le trafic augmente, Cloud Run lance davantage d’instances pour l’absorber. Quand il baisse, il réduit l’échelle, jusqu’à zéro : vous ne payez donc rien lorsque votre application ne tourne pas activement.
Cloud Run est économique, mais aussi très flexible. Vous pouvez déployer des applications dans n’importe quel langage et avec n’importe quel framework ou binaire, tant que cela s’exécute dans un conteneur. Vous pouvez travailler avec des technologies courantes comme Node.js, Python, Go, Java, ou des langages plus confidentiels. Concrètement, Cloud Run peut propulser des services backend, des APIs, des charges IA, des applications web et même des jobs batch planifiés.
C’était l’avant-goût. Allons un peu plus loin dans les fonctionnalités clé de Cloud Run.
Fonctionnalités clé de Cloud Run
Nous en avons déjà mentionné quelques-unes, voici un panorama complet des atouts de Cloud Run.
Agnostique au langage et au framework
L’un des grands avantages de Cloud Run est qu’il ne vous enferme pas dans un langage ou un framework particulier. Tant que votre application tourne dans un conteneur, vous pouvez la déployer. Si votre équipe utilise une stack technologique variée, vous pouvez adopter Cloud Run pour l’ensemble de vos services. Un seul outil pour tout piloter !
Mise à l’échelle automatique
Cloud Run met à l’échelle horizontalement et dynamiquement en fonction du trafic. Si votre application reçoit plus de requêtes, Cloud Run démarre automatiquement d’autres instances. Quand la demande baisse, il réduit l’échelle, jusqu’à zéro si besoin.
Sécurité et conformité intégrées
Cloud Run offre le HTTPS automatique pour tous les services déployés, une identité de service gérée par Google pour une authentification sécurisée, une connectivité VPC pour le réseau privé et des certifications de conformité intégrées telles que SOC 2, ISO 27001 et HIPAA (pour les applications de santé). En bref, vous êtes entre de bonnes mains.
Intégration avec les services Google Cloud
Parce que Cloud Run fait partie de l’écosystème Google Cloud, il s’intègre parfaitement aux autres services GCP. Vous pouvez le connecter simplement à Cloud SQL pour les bases de données, diffuser des données avec Pub/Sub, stocker des fichiers dans Cloud Storage, ou l’utiliser avec BigQuery, Firebase et les services d’IA/ML.
Prise en charge des GPU à la demande
Pour les charges IA, Cloud Run propose désormais des GPU à la demande. C’est une vraie avancée pour l’inférence machine learning, le traitement vidéo et le calcul scientifique, car vous pouvez exécuter des charges accélérées GPU sans gérer le matériel sous-jacent.
Cloud Run Functions : un modèle Function-as-a-Service (FaaS)
Si vous ne souhaitez pas gérer des conteneurs complets, Cloud Run Functions propose un mode événementiel simplifié pour exécuter de petites fonctions à usage unique. C’est comparable à AWS Lambda ou Google Cloud Functions, mais exécuté sur l’infrastructure de Cloud Run.
Comment fonctionne Cloud Run : pas à pas
Dans cette section, je vous explique comment déployer une application simple sur Cloud Run. Nous allons containeriser votre application, la déployer sur Cloud Run et la faire s’adapter automatiquement à la demande.
Nous utiliserons Docker pour containeriser l’application, mais ce n’est pas toujours obligatoire. J’y reviens à la fin.
Étape 1 : préparer votre environnement
Avant tout déploiement, installez les outils suivants :
Google Cloud SDK : l’interface en ligne de commande (CLI) pour interagir avec les services Google Cloud, dont Cloud Run. Installez-la depuis ce lien.
Docker : si votre application n’est pas encore containerisée, vous en aurez besoin pour l’emballer. Installez Docker depuis ce lien.
Projet Google Cloud : assurez-vous d’avoir un projet Google Cloud configuré. Vous pouvez en créer un depuis la console Google Cloud.
Étape 2 : écrire le code de votre application
Nous allons maintenant écrire une application Node.js « Hello World ».
Créez un dossier pour votre application :
mkdir hello-world-app
cd hello-world-appPropulsé par
Créez un fichier index.js dans ce dossier avec le contenu suivant :
const http = require('http');
const requestListener = (req, res) => {
res.writeHead(200);
res.end('Hello, Cloud Run!');
};
const server = http.createServer(requestListener);
server.listen(8080, () => {
console.log('Server is running on port 8080');
});Propulsé par
Créez un fichier package.json pour définir les dépendances de votre application :
L’application est prête : passons à sa containerisation.
Étape 3 : containeriser l’application
Créer un Dockerfile pour définir l’image du conteneur
Dans le répertoire du projet, créez un fichier « Dockerfile » avec le contenu suivant :
# Use the official Node.js image as a base
FROM node:16-alpine
# Set the working directory inside the container
WORKDIR /usr/src/app
# Copy package.json and install dependencies (if any)
COPY package*.json ./
# Copy the rest of the application code
COPY . .
# Expose port 8080 for Cloud Run
EXPOSE 8080
# Start the app
CMD ["node", "index.js"]Propulsé par
Construire l’image Docker
Exécutez la commande suivante pour construire votre image Docker :
docker build -t gcr.io/your-project-id/hello-world-app .Propulsé par
Remarque : remplacez your-project-id par l’ID de votre projet Google Cloud.
Tester l’image en local
Vous pouvez tester votre conteneur Docker en local avec :
docker run -p 8080:8080 gcr.io/your-project-id/hello-world-appPropulsé par
Ouvrez http://localhost:8080 dans votre navigateur pour vérifier que l’application fonctionne.
Étape 4 : pousser l’image dans Google Artifact Registry
Activer Artifact Registry pour votre projet
Si vous n’avez pas encore activé Artifact Registry, exécutez la commande suivante
gcloud services enable artifactregistry.googleapis.comPropulsé par
Remarque : vous devrez activer la facturation pour effectuer cette étape !
Créer un dépôt dans Artifact Registry
Créez un nouveau dépôt Docker dans Artifact Registry :
gcloud artifacts repositories create hello-world-repo \
--repository-format=docker \
--location=us-central1Propulsé par
Authentifier Docker auprès d’Artifact Registry
Configurez Docker pour s’authentifier avec Artifact Registry :
gcloud auth configure-docker us-central1-docker.pkg.devPropulsé par
Taguer l’image Docker pour Artifact Registry
Assignez un tag à votre image Docker avec l’URL du dépôt Artifact Registry :
docker tag gcr.io/your-project-id/hello-world-app us-central1-docker.pkg.dev/your-project-id/hello-world-repo/hello-world-appPropulsé par
Pousser l’image dans Artifact Registry
Poussez l’image taguée dans votre dépôt Artifact Registry :
docker push us-central1-docker.pkg.dev/your-project-id/hello-world-repo/hello-world-appPropulsé par
Étape 5 : déployer sur Cloud Run
Une fois votre image poussée dans Artifact Registry, vous pouvez la déployer sur Cloud Run directement depuis Artifact Registry.
Déployez votre image sur Cloud Run avec la commande suivante :
gcloud run deploy hello-world-app \
--image us-central1-docker.pkg.dev/your-project-id/hello-world-repo/hello-world-app \
--platform managed \
--region us-central1 \
--allow-unauthenticatedPropulsé par
hello-world-app : nom de votre service Cloud Run.
us-central1-docker.pkg.dev/your-project-id/hello-world-repo/hello-world-app : URL de votre image stockée dans Artifact Registry.
--platform managed : garantit l’usage de la plateforme Cloud Run entièrement managée (et non d’un cluster GKE).
--region us-central1 : spécifie la région de déploiement du service.
--allow-unauthenticated : autorise l’accès public au service. Pour un accès restreint, adaptez ce paramètre.
Après exécution, Cloud Run déploie votre application conteneurisée et vous fournit une URL pour y accéder.
Et voilà ! Jetez un œil dans la console GCP : vous devriez voir votre nouvelle instance.
Étape 6 : nettoyage
Pour éviter toute facturation continue, supprimez votre service une fois vos tests terminés.
1. Supprimer le service Cloud Run
Exécutez la commande suivante pour supprimer le service Cloud Run déployé :
gcloud run services delete hello-world-app --region us-central1Propulsé par
Cette action supprime l’instance Cloud Run mais ne supprime pas l’image du conteneur.
2. Supprimer l’image dans Artifact Registry
Pour retirer l’image d’Artifact Registry, listez d’abord les images :
gcloud artifacts docker images list us-central1-docker.pkg.dev/your-project-id/hello-world-repoPropulsé par
Puis supprimez l’image avec :
gcloud artifacts docker images delete us-central1-docker.pkg.dev/your-project-id/hello-world-repo/hello-world-app --delete-tagsPropulsé par
Votre Artifact Registry est désormais propre.
3. Supprimer le dépôt Artifact Registry (si vous n’en avez plus besoin)
Pour supprimer entièrement le dépôt Artifact Registry, exécutez :
gcloud artifacts repositories delete hello-world-repo --location=us-central1Propulsé par
Cette étape n’est nécessaire que si vous n’utilisez plus du tout le dépôt ; sinon, vous pouvez le réutiliser pour de futurs déploiements.
4. (Optionnel) Supprimer le projet Google Cloud
S’il s’agissait d’un projet de test et que vous n’en avez plus l’utilité, vous pouvez supprimer tout le projet pour retirer toutes les ressources associées :
gcloud projects delete your-project-idPropulsé par
Déploiements depuis le code source
Vous vous souvenez quand je disais que vous n’êtes pas toujours obligé de containeriser votre app manuellement ?
Cloud Run prend maintenant en charge les déploiements à partir du code source : il peut construire l’image à partir de votre référentiel grâce à Cloud Build.
Utilisez la commande :
gcloud run deploy hello-world-app \
--source . \
--region us-central1 \
--allow-unauthenticatedPropulsé par
Cloud Build détecte automatiquement le langage de votre application (Node.js, Python, Go, Java, etc.), construit une image pour vous et la stocke dans Artifact Registry. Cloud Run déploie ensuite cette image comme si vous l’aviez créée manuellement. Je recommande vivement cette approche pour des applications simples dans des langages pris en charge (Node.js, Python, Go, Java, etc.), mais pas si vous avez besoin d’un contrôle total du conteneur (dépendances spécifiques, ajustements au niveau de l’OS, builds multi-étapes).
Astuces pour utiliser Cloud Run efficacement
Déployer une application sur Cloud Run est très simple, mais l’optimiser demande quelques réglages. J’ai appris par l’expérience — et parfois à mes dépens — les points suivants :
1. Les cold starts, c’est réel
Surtout avec des images de conteneur volumineuses. Plus votre image est compacte, plus votre service se lance vite. Utiliser une image de base minimale comme distroless peut faire une vraie différence. Pour les applis Python, essayez les versions slim des images officielles. Ou, si le coût n’est pas votre priorité, réglez le nombre minimal d’instances sur 1.
2. La meilleure variable à ajuster : la concurrence des requêtes
Cloud Run permet à chaque instance de gérer plusieurs requêtes en parallèle, mais la valeur par défaut (80 requêtes par conteneur) est rarement optimale. Pour des tâches intensives en CPU, réduire la concurrence à 1 ou 2 rend souvent le tout plus fluide. À l’inverse, des APIs supportent généralement une valeur plus élevée. Plus elle est haute, plus vous pouvez réduire le nombre d’instances nécessaires — et donc vos coûts. Testez plusieurs valeurs pour trouver le bon équilibre.
3. Fixez des limites à vos instances !
Très utile quand quelqu’un (moi) lance un test de charge et déclenche un nombre absurde de requêtes. J’ai appris pour vous : définissez un nombre maximal d’instances.
4. Vérifiez qui peut accéder à votre instance
Par défaut, les services Cloud Run sont accessibles par toute personne disposant de l’URL : parfait pour une démo, moins pour la production. Si votre application n’a pas vocation à être publique, restreignez l’accès avec IAM.
5. Cloud Logging et Cloud Trace deviendront vos alliés
Si, comme moi, vous débuguez d’habitude en vous connectant en SSH aux machines virtuelles, vous serez déconcerté. Les logs Cloud Run sont envoyés directement dans le tableau de bord Google Cloud. Ajoutez de la journalisation structurée dans votre application : le diagnostic s’en trouvera grandement facilité.
Cas d’usage de Cloud Run
Nous avons évoqué certains usages de Cloud Run, comme l’exécution d’applications web, d’APIs ou de tâches planifiées (cron), mais il y en a bien d’autres.
Analyse vidéo et image
Vous pouvez déployer un modèle de reconnaissance d’images pour traiter des uploads en temps réel pour un réseau social, ou lancer des tâches de transcodage vidéo lors d’un téléversement. Cloud Run gère les pics de charge (contenu viral) grâce à sa mise à l’échelle automatique, tout en restant économique quand la demande retombe.
Imaginez que vous construisiez un système qui suit le comportement des utilisateurs sur une place de marché en ligne. En traitant des flux d’événements en provenance de Pub/Sub ou BigQuery, vous pouvez déclencher instantanément des actions selon l’activité, comme l’envoi de notifications push ou l’analyse des tendances en temps réel. Cloud Run monte en charge automatiquement pour absorber les pics et redescend quand le volume diminue.
Un cas d’usage typique : l’analyse de logs en temps réel pour une grande entreprise. Dès qu’un fichier journal est téléversé dans Cloud Storage, Cloud Run peut déclencher un conteneur pour le parser, l’analyser et stocker les résultats, tout en s’adaptant dynamiquement à la taille du fichier et à la complexité du traitement.
Cloud Run est idéal pour gérer les services backend des applications IoT. Par exemple, dans une solution IoT qui suit des données environnementales provenant de milliers de capteurs, Cloud Run peut traiter les données entrantes de chaque dispositif en temps réel.
Cloud Run suit un modèle à l’usage : vous ne payez que pour les ressources de calcul utilisées lorsque votre application traite des requêtes. Quand elle est inactive, elle peut passer à zéro : pas de coûts superflus.
Détail des tarifs
En mars 2025, Cloud Run facture selon deux facteurs principaux :
Ressource
Coût
Offre gratuite
CPU
0,000018 $ par seconde vCPU
240 000 secondes vCPU/mois
Mémoire
0,000002 $ par seconde GiB
450 000 secondes GiB/mois
Cette tarification concerne la facturation par instance, mais elle diffère pour la facturation par requête. Les prix et le niveau gratuit varient aussi légèrement selon la région : consultez la page officielle Google Cloud pour les chiffres exacts. Un calculateur de prix vous aide à estimer vos coûts, et des remises pour engagement sont proposées.
Petit conseil : le trafic entre services Google Cloud dans une même région est gratuit. Privilégiez donc Cloud Storage, Cloud SQL ou Pub/Sub plutôt que des services externes pour vos échanges de données.
Cloud Run vs Cloud Run Functions
Google propose deux options de calcul serverless : Cloud Run et Cloud Run Functions (anciennement Cloud Functions). Les deux exécutent du code sans gestion d’infrastructure, mais ils diffèrent sur certains points.
Caractéristique
Cloud Run
Cloud Functions
Modèle d’exécution
Exécute des applications conteneurisées complètes
Exécute des fonctions individuelles (modèle FaaS)
Contrôle du runtime
N’importe quel langage, framework, binaires personnalisés
Runtimes prédéfinis (Node.js, Python, Go, etc.)
État
Sans état, mais peut maintenir des connexions pendant une requête
Sans état, conçu pour les charges événementielles
Mise à l’échelle
Mise à l’échelle par instance de conteneur
Mise à l’échelle par invocation de fonction
Déclencheurs
Requêtes HTTP, Pub/Sub, événementiel
Événementiel (Pub/Sub, Cloud Storage, HTTP, etc.)
Cold starts
Minimisés avec des instances préchauffées
Peuvent entraîner des latences notables au scaling
Idéal pour
APIs, microservices, services backend, charges IA
Fonctions légères événementielles, automatisation
Quand utiliser Cloud Run
✅ Vous avez besoin d’un contrôle total sur le runtime et les dépendances.
✅ Vous exécutez un service web, une API ou un microservice gérant des requêtes persistantes.
✅ Vous souhaitez déployer une application déjà conteneurisée avec un minimum de modifications.
✅ Vous avez des traitements en arrière-plan ou de longue durée (inférence IA, jobs batch, etc.).
Quand utiliser Cloud Run Functions
✅ Vous voulez des fonctions simples, événementielles, déclenchées par des messages Pub/Sub ou des uploads Cloud Storage.
✅ Vous gérez des opérations de courte durée : notifications, petits traitements, transformations de données.
✅ Vous préférez ne pas gérer de conteneurs et utiliser des runtimes préconstruits pour JavaScript, Python, Go, etc.
Vous n’êtes pas obligé de choisir : vous pouvez combiner les deux ! Par exemple, votre backend Cloud Run peut déclencher des Cloud Run Functions pour des tâches spécifiques comme l’envoi d’e-mails ou le traitement d’images en asynchrone.
Comparaison avec d’autres services Google Cloud
Nous avons déjà bien comparé Cloud Run et Cloud Run Functions, mais deux autres services méritent d’être mentionnés : GKE et App Engine.
Caractéristique
Cloud Run
Google Kubernetes Engine (GKE)
App Engine
Type de gestion
Serverless entièrement managé
Clusters Kubernetes auto-gérés
Platform-as-a-service entièrement managé
Mise à l’échelle
Automatique, jusqu’à zéro
Manuelle ou automatique via Kubernetes
Automatique (mais pas jusqu’à zéro)
Déploiement
Déploiement de conteneurs (tout langage)
Déploiement de conteneurs via Kubernetes
Déploiement de code (runtimes spécifiques pris en charge)
Cas d’usage
APIs, microservices, apps web, batch, IA
Apps complexes, microservices à grande échelle, workloads ML
Apps web, backends mobiles, APIs
Langages pris en charge
Tout (basé sur conteneur)
Tout (basé sur conteneur)
Runtimes spécifiques pris en charge
Il y a évidemment plus de nuances, mais en bref : si vous voulez une solution conteneurisée, entièrement managée, flexible et à mise à l’échelle automatique, optez pour Cloud Run. Si vous construisez une app web avec un minimum de configuration, choisissez App Engine. Et si vous voulez un contrôle total de vos clusters Kubernetes pour des applications complexes à grande échelle, prenez GKE.
Comment gérer les connexions à la base de données dans Cloud Run ?⌄
Utilisez Cloud SQL Auth Proxy, activez un pool de connexions (par ex. PgBouncer pour PostgreSQL) ou optez pour des bases de données serverless comme Firestore pour éviter les limites de connexions.
Puis-je utiliser un domaine personnalisé avec Cloud Run ?⌄
Oui. Configurez-la dans la console Cloud Run sous Gérer les domaines personnalisés, vérifiez la propriété et mettez à jour les enregistrements DNS. Le SSL est fourni automatiquement.
Cloud Run prend-il en charge les WebSockets et les connexions persistantes ?⌄
Oui, mais les instances peuvent s’arrêter si elles sont inactives. Pour maintenir les connexions, définissez un minimum d’instances ou utilisez Pub/Sub pour une communication événementielle.
Cloud Run peut-il gérer des tâches en arrière-plan ?⌄
Pas directement, car il est basé sur les requêtes. Utilisez Cloud Tasks, Pub/Sub ou Workflows pour déclencher et orchestrer les traitements en arrière-plan.
Puis-je exécuter des applications avec état sur Cloud Run ?⌄
Ce n’est pas recommandé, les instances étant sans état. Utilisez Cloud Storage, Firestore ou une base de données externe pour persister l’état.
Auteur
Marie Fayard
Je suis un chef d'équipe technique axé sur les produits, spécialisé dans le développement de startups en phase de démarrage, du premier prototype à l'adéquation produit-marché et au-delà. Je suis infiniment curieux de savoir comment les gens utilisent la technologie, et j'aime travailler en étroite collaboration avec les fondateurs et les équipes interfonctionnelles pour donner vie à des idées audacieuses. Lorsque je ne construis pas de produits, je cherche l'inspiration dans de nouveaux coins du monde ou je me défoule au studio de yoga.
Découvrez la plateforme Google Cloud (GCP) grâce à ce cours sur le stockage, le traitement des données et la modernisation des entreprises à l'aide de GCP.
Cloud Run est la plateforme serverless totalement managée de Google Cloud, qui vous permet de déployer des applications sans vous soucier de la gestion de l’infrastructure. C’est très flexible et idéal pour une grande variété de projets, du side-project à l’entreprise.
Dans cet article, je vous explique ce qu’est Cloud Run, comment il fonctionne, à quels besoins il répond et comment il se compare aux autres solutions serverless. Je vous montre également, étape par étape, comment déployer votre première application Cloud Run !
Avant de commencer : si vous débutez totalement sur le cloud, je vous recommande notre cours Introduction to Cloud Computing. Il décrypte les bases du cloud, explique des notions clés comme la scalabilité et la latence, et présente les avantages des outils cloud proposés par des fournisseurs comme GCP.
Qu’est-ce que Cloud Run ?
Cloud Run est une plateforme d’exécution serverless pour conteneurs qui vous permet de déployer des applications sans gestion d’infrastructure.
Avec des déploiements classiques sur serveur, vous devez généralement provisionner et maintenir des machines virtuelles. Cloud Run fonctionne différemment : il abstrait tout cela et offre un environnement entièrement managé.
Il est bâti sur Knative (une plateforme open source basée sur Kubernetes qui permet les charges serverless), ce qui signifie que votre application s’adapte automatiquement à la demande. Quand le trafic augmente, Cloud Run lance davantage d’instances pour l’absorber. Quand il baisse, il réduit l’échelle, jusqu’à zéro : vous ne payez donc rien lorsque votre application ne tourne pas activement.
Cloud Run est économique, mais aussi très flexible. Vous pouvez déployer des applications dans n’importe quel langage et avec n’importe quel framework ou binaire, tant que cela s’exécute dans un conteneur. Vous pouvez travailler avec des technologies courantes comme Node.js, Python, Go, Java, ou des langages plus confidentiels. Concrètement, Cloud Run peut propulser des services backend, des APIs, des charges IA, des applications web et même des jobs batch planifiés.
C’était l’avant-goût. Allons un peu plus loin dans les fonctionnalités clé de Cloud Run.
Fonctionnalités clé de Cloud Run
Nous en avons déjà mentionné quelques-unes, voici un panorama complet des atouts de Cloud Run.
Agnostique au langage et au framework
L’un des grands avantages de Cloud Run est qu’il ne vous enferme pas dans un langage ou un framework particulier. Tant que votre application tourne dans un conteneur, vous pouvez la déployer. Si votre équipe utilise une stack technologique variée, vous pouvez adopter Cloud Run pour l’ensemble de vos services. Un seul outil pour tout piloter !
Mise à l’échelle automatique
Cloud Run met à l’échelle horizontalement et dynamiquement en fonction du trafic. Si votre application reçoit plus de requêtes, Cloud Run démarre automatiquement d’autres instances. Quand la demande baisse, il réduit l’échelle, jusqu’à zéro si besoin.
Sécurité et conformité intégrées
Cloud Run offre le HTTPS automatique pour tous les services déployés, une identité de service gérée par Google pour une authentification sécurisée, une connectivité VPC pour le réseau privé et des certifications de conformité intégrées telles que SOC 2, ISO 27001 et HIPAA (pour les applications de santé). En bref, vous êtes entre de bonnes mains.
Intégration avec les services Google Cloud
Parce que Cloud Run fait partie de l’écosystème Google Cloud, il s’intègre parfaitement aux autres services GCP. Vous pouvez le connecter simplement à Cloud SQL pour les bases de données, diffuser des données avec Pub/Sub, stocker des fichiers dans Cloud Storage, ou l’utiliser avec BigQuery, Firebase et les services d’IA/ML.
Prise en charge des GPU à la demande
Pour les charges IA, Cloud Run propose désormais des GPU à la demande. C’est une vraie avancée pour l’inférence machine learning, le traitement vidéo et le calcul scientifique, car vous pouvez exécuter des charges accélérées GPU sans gérer le matériel sous-jacent.
Cloud Run Functions : un modèle Function-as-a-Service (FaaS)
Si vous ne souhaitez pas gérer des conteneurs complets, Cloud Run Functions propose un mode événementiel simplifié pour exécuter de petites fonctions à usage unique. C’est comparable à AWS Lambda ou Google Cloud Functions, mais exécuté sur l’infrastructure de Cloud Run.
Comment fonctionne Cloud Run : pas à pas
Dans cette section, je vous explique comment déployer une application simple sur Cloud Run. Nous allons containeriser votre application, la déployer sur Cloud Run et la faire s’adapter automatiquement à la demande.
Nous utiliserons Docker pour containeriser l’application, mais ce n’est pas toujours obligatoire. J’y reviens à la fin.
Étape 1 : préparer votre environnement
Avant tout déploiement, installez les outils suivants :
Étape 2 : écrire le code de votre application
Nous allons maintenant écrire une application Node.js « Hello World ».
Créez un dossier pour votre application :
Créez un fichier index.js dans ce dossier avec le contenu suivant :
Créez un fichier package.json pour définir les dépendances de votre application :
L’application est prête : passons à sa containerisation.
Étape 3 : containeriser l’application
Créer un Dockerfile pour définir l’image du conteneur
Dans le répertoire du projet, créez un fichier « Dockerfile » avec le contenu suivant :
Construire l’image Docker
Exécutez la commande suivante pour construire votre image Docker :
Remarque : remplacez your-project-id par l’ID de votre projet Google Cloud.
Tester l’image en local
Vous pouvez tester votre conteneur Docker en local avec :
Ouvrez http://localhost:8080 dans votre navigateur pour vérifier que l’application fonctionne.
Étape 4 : pousser l’image dans Google Artifact Registry
Activer Artifact Registry pour votre projet
Si vous n’avez pas encore activé Artifact Registry, exécutez la commande suivante
Remarque : vous devrez activer la facturation pour effectuer cette étape !
Créer un dépôt dans Artifact Registry
Créez un nouveau dépôt Docker dans Artifact Registry :
Authentifier Docker auprès d’Artifact Registry
Configurez Docker pour s’authentifier avec Artifact Registry :
Taguer l’image Docker pour Artifact Registry
Assignez un tag à votre image Docker avec l’URL du dépôt Artifact Registry :
Pousser l’image dans Artifact Registry
Poussez l’image taguée dans votre dépôt Artifact Registry :
Étape 5 : déployer sur Cloud Run
Une fois votre image poussée dans Artifact Registry, vous pouvez la déployer sur Cloud Run directement depuis Artifact Registry.
Déployez votre image sur Cloud Run avec la commande suivante :
Après exécution, Cloud Run déploie votre application conteneurisée et vous fournit une URL pour y accéder.
Et voilà ! Jetez un œil dans la console GCP : vous devriez voir votre nouvelle instance.
Étape 6 : nettoyage
Pour éviter toute facturation continue, supprimez votre service une fois vos tests terminés.
1. Supprimer le service Cloud Run
Exécutez la commande suivante pour supprimer le service Cloud Run déployé :
Cette action supprime l’instance Cloud Run mais ne supprime pas l’image du conteneur.
2. Supprimer l’image dans Artifact Registry
Pour retirer l’image d’Artifact Registry, listez d’abord les images :
Puis supprimez l’image avec :
Votre Artifact Registry est désormais propre.
3. Supprimer le dépôt Artifact Registry (si vous n’en avez plus besoin)
Pour supprimer entièrement le dépôt Artifact Registry, exécutez :
Cette étape n’est nécessaire que si vous n’utilisez plus du tout le dépôt ; sinon, vous pouvez le réutiliser pour de futurs déploiements.
4. (Optionnel) Supprimer le projet Google Cloud
S’il s’agissait d’un projet de test et que vous n’en avez plus l’utilité, vous pouvez supprimer tout le projet pour retirer toutes les ressources associées :
Déploiements depuis le code source
Vous vous souvenez quand je disais que vous n’êtes pas toujours obligé de containeriser votre app manuellement ?
Cloud Run prend maintenant en charge les déploiements à partir du code source : il peut construire l’image à partir de votre référentiel grâce à Cloud Build.
Utilisez la commande :
Cloud Build détecte automatiquement le langage de votre application (Node.js, Python, Go, Java, etc.), construit une image pour vous et la stocke dans Artifact Registry. Cloud Run déploie ensuite cette image comme si vous l’aviez créée manuellement. Je recommande vivement cette approche pour des applications simples dans des langages pris en charge (Node.js, Python, Go, Java, etc.), mais pas si vous avez besoin d’un contrôle total du conteneur (dépendances spécifiques, ajustements au niveau de l’OS, builds multi-étapes).
Astuces pour utiliser Cloud Run efficacement
Déployer une application sur Cloud Run est très simple, mais l’optimiser demande quelques réglages. J’ai appris par l’expérience — et parfois à mes dépens — les points suivants :
1. Les cold starts, c’est réel
Surtout avec des images de conteneur volumineuses. Plus votre image est compacte, plus votre service se lance vite. Utiliser une image de base minimale comme distroless peut faire une vraie différence. Pour les applis Python, essayez les versions slim des images officielles. Ou, si le coût n’est pas votre priorité, réglez le nombre minimal d’instances sur 1.
2. La meilleure variable à ajuster : la concurrence des requêtes
Cloud Run permet à chaque instance de gérer plusieurs requêtes en parallèle, mais la valeur par défaut (80 requêtes par conteneur) est rarement optimale. Pour des tâches intensives en CPU, réduire la concurrence à 1 ou 2 rend souvent le tout plus fluide. À l’inverse, des APIs supportent généralement une valeur plus élevée. Plus elle est haute, plus vous pouvez réduire le nombre d’instances nécessaires — et donc vos coûts. Testez plusieurs valeurs pour trouver le bon équilibre.
3. Fixez des limites à vos instances !
Très utile quand quelqu’un (moi) lance un test de charge et déclenche un nombre absurde de requêtes. J’ai appris pour vous : définissez un nombre maximal d’instances.
4. Vérifiez qui peut accéder à votre instance
Par défaut, les services Cloud Run sont accessibles par toute personne disposant de l’URL : parfait pour une démo, moins pour la production. Si votre application n’a pas vocation à être publique, restreignez l’accès avec IAM.
5. Cloud Logging et Cloud Trace deviendront vos alliés
Si, comme moi, vous débuguez d’habitude en vous connectant en SSH aux machines virtuelles, vous serez déconcerté. Les logs Cloud Run sont envoyés directement dans le tableau de bord Google Cloud. Ajoutez de la journalisation structurée dans votre application : le diagnostic s’en trouvera grandement facilité.
Cas d’usage de Cloud Run
Nous avons évoqué certains usages de Cloud Run, comme l’exécution d’applications web, d’APIs ou de tâches planifiées (cron), mais il y en a bien d’autres.
Analyse vidéo et image
Vous pouvez déployer un modèle de reconnaissance d’images pour traiter des uploads en temps réel pour un réseau social, ou lancer des tâches de transcodage vidéo lors d’un téléversement. Cloud Run gère les pics de charge (contenu viral) grâce à sa mise à l’échelle automatique, tout en restant économique quand la demande retombe.
Source : Google Cloud
Traitement de flux en temps réel
Imaginez que vous construisiez un système qui suit le comportement des utilisateurs sur une place de marché en ligne. En traitant des flux d’événements en provenance de Pub/Sub ou BigQuery, vous pouvez déclencher instantanément des actions selon l’activité, comme l’envoi de notifications push ou l’analyse des tendances en temps réel. Cloud Run monte en charge automatiquement pour absorber les pics et redescend quand le volume diminue.
Source : Google Cloud
Traitement de fichiers en temps réel
Un cas d’usage typique : l’analyse de logs en temps réel pour une grande entreprise. Dès qu’un fichier journal est téléversé dans Cloud Storage, Cloud Run peut déclencher un conteneur pour le parser, l’analyser et stocker les résultats, tout en s’adaptant dynamiquement à la taille du fichier et à la complexité du traitement.
Source : Google Cloud
Backends IoT serverless
Cloud Run est idéal pour gérer les services backend des applications IoT. Par exemple, dans une solution IoT qui suit des données environnementales provenant de milliers de capteurs, Cloud Run peut traiter les données entrantes de chaque dispositif en temps réel.
Source : Google Cloud
Tarification de Google Cloud Run
Cloud Run suit un modèle à l’usage : vous ne payez que pour les ressources de calcul utilisées lorsque votre application traite des requêtes. Quand elle est inactive, elle peut passer à zéro : pas de coûts superflus.
Détail des tarifs
En mars 2025, Cloud Run facture selon deux facteurs principaux :
Cette tarification concerne la facturation par instance, mais elle diffère pour la facturation par requête. Les prix et le niveau gratuit varient aussi légèrement selon la région : consultez la page officielle Google Cloud pour les chiffres exacts. Un calculateur de prix vous aide à estimer vos coûts, et des remises pour engagement sont proposées.
Petit conseil : le trafic entre services Google Cloud dans une même région est gratuit. Privilégiez donc Cloud Storage, Cloud SQL ou Pub/Sub plutôt que des services externes pour vos échanges de données.
Cloud Run vs Cloud Run Functions
Google propose deux options de calcul serverless : Cloud Run et Cloud Run Functions (anciennement Cloud Functions). Les deux exécutent du code sans gestion d’infrastructure, mais ils diffèrent sur certains points.
Quand utiliser Cloud Run
Quand utiliser Cloud Run Functions
Vous n’êtes pas obligé de choisir : vous pouvez combiner les deux ! Par exemple, votre backend Cloud Run peut déclencher des Cloud Run Functions pour des tâches spécifiques comme l’envoi d’e-mails ou le traitement d’images en asynchrone.
Comparaison avec d’autres services Google Cloud
Nous avons déjà bien comparé Cloud Run et Cloud Run Functions, mais deux autres services méritent d’être mentionnés : GKE et App Engine.
Il y a évidemment plus de nuances, mais en bref : si vous voulez une solution conteneurisée, entièrement managée, flexible et à mise à l’échelle automatique, optez pour Cloud Run. Si vous construisez une app web avec un minimum de configuration, choisissez App Engine. Et si vous voulez un contrôle total de vos clusters Kubernetes pour des applications complexes à grande échelle, prenez GKE.
Conclusion
Maintenant que vous savez tout sur Cloud Run, lancez votre première instance ou explorez d’autres services Google Cloud pour trouver le juste équilibre entre contrôle et automatisation qui vous convient !