La création d'une application Node.js n'est que la première étape du cycle de vie du développement logiciel. C'est au moment de la rendre accessible, performante et résiliente dans un environnement de production que le déploiement d'applications prend tout son sens. Le déploiement d'applications Web modernes implique de sélectionner une architecture qui correspond à votre profil de trafic, à l'étape du cycle de vie et au budget alloué aux ressources.
Que vous lanciez un prototype full stack assisté par l'IA ou que vous déployiez un service de backend de production, les environnements cloud modernes offrent des solutions automatisées et conteneurisées. Ce guide présente les concepts fondamentaux de l'architecture Web Node.js, explore les principales considérations liées au déploiement et explique, étape par étape, comment créer et déployer une application Node.js sur une infrastructure gérée à l'aide des quotas du niveau sans frais.
Node.js est un environnement d'exécution JavaScript Open Source multiplate-forme basé sur le moteur JavaScript Chrome V8. Il permet d'exécuter JavaScript côté serveur en dehors du navigateur Web. Les ingénieurs peuvent ainsi écrire des codebases full stack unifiés à l'aide d'un seul langage de programmation.
Contrairement aux serveurs Web multithread traditionnels qui génèrent un thread de système d'exploitation isolé pour chaque connexion simultanée, Node.js repose sur un modèle d'E/S non bloquant, monothread et basé sur les événements. Cette architecture rend Node.js léger et efficace pour gérer des milliers de connexions simultanées, comme les API RESTful, les services de messagerie en temps réel, les services de streaming et les outils d'orchestration d'agents IA.
Lorsque vous vous préparez à déployer un backend Node.js, le choix de l'environnement de calcul approprié a un impact direct sur la charge de maintenance, la vitesse de scaling et la rentabilité.
Fonctionnalité | Machines virtuelles (IaaS/VPS) | Hébergement PaaS/buildpack | Conteneurs sans serveur modernes |
Gestion des infrastructures | Application manuelle de correctifs à l'OS, gestion des pare-feu et mises à jour de l'environnement d'exécution | Couche de plate-forme entièrement gérée avec des contraintes propres à l'environnement d'exécution du fournisseur | Infrastructure entièrement gérée ; aucune gestion de l'OS |
Mécanisme de scaling | Autoscaling des VM basé sur des métriques (le démarrage des instances prend quelques minutes) | Autoscaling basé sur le nombre d'instances ou les limites des nœuds de calcul | Autoscaling instantané basé sur les requêtes, y compris le scaling à zéro instance |
Format de packaging | Fichiers sources bruts, services systemd ou gestionnaires de processus PM2 | Intégration de dépôts via Git push avec des buildpacks automatisés. | Images de conteneurs OCI/Docker standards |
Profil de coût en cas d'inactivité | Facturation 24h/24, 7j/7, quel que soit le trafic HTTP entrant | Implique souvent une tarification de base minimale par instance. | Facturation uniquement à la seconde lors du traitement des requêtes actives |
Portabilité | Portabilité élevée, mais risque élevé de dérive de l'environnement | Faible portabilité ; dépendance aux conventions de la plate-forme | Portabilité élevée ; exécute un conteneur identique dans n'importe quel environnement |
Fonctionnalité
Machines virtuelles (IaaS/VPS)
Hébergement PaaS/buildpack
Conteneurs sans serveur modernes
Gestion des infrastructures
Application manuelle de correctifs à l'OS, gestion des pare-feu et mises à jour de l'environnement d'exécution
Couche de plate-forme entièrement gérée avec des contraintes propres à l'environnement d'exécution du fournisseur
Infrastructure entièrement gérée ; aucune gestion de l'OS
Mécanisme de scaling
Autoscaling des VM basé sur des métriques (le démarrage des instances prend quelques minutes)
Autoscaling basé sur le nombre d'instances ou les limites des nœuds de calcul
Autoscaling instantané basé sur les requêtes, y compris le scaling à zéro instance
Format de packaging
Fichiers sources bruts, services systemd ou gestionnaires de processus PM2
Intégration de dépôts via Git push avec des buildpacks automatisés.
Images de conteneurs OCI/Docker standards
Profil de coût en cas d'inactivité
Facturation 24h/24, 7j/7, quel que soit le trafic HTTP entrant
Implique souvent une tarification de base minimale par instance.
Facturation uniquement à la seconde lors du traitement des requêtes actives
Portabilité
Portabilité élevée, mais risque élevé de dérive de l'environnement
Faible portabilité ; dépendance aux conventions de la plate-forme
Portabilité élevée ; exécute un conteneur identique dans n'importe quel environnement
Pour développer une application Node.js prête pour la production, vous devez implémenter des modèles architecturaux capables d'éliminer les goulots d'étranglement et de garantir une disponibilité maximale :
Vous pouvez créer et déployer une application Node.js à l'aide de deux workflows principaux : le prototypage rapide assisté par l'IA (aucune configuration locale requise) ou le déploiement standard basé sur des conteneurs (pour les codebases existants).
Pour le prototypage rapide et les applications d'IA, le mode Compilation de Google AI Studio permet aux développeurs de décrire des architectures Node.js full stack en langage naturel et de les déployer sur Cloud Run sans outils de ligne de commande locaux ni configurations de facturation obligatoires.
Étape 1 : Initialisez l'application en mode Compilation
Étape 2 : Configurez les données et l'authentification intégrées
Étape 3 : Publiez l'application sur Cloud Run géré
Pour les codebases préexistants et les microservices personnalisés, empaquetez votre application Node.js dans un conteneur compatible avec OCI et déployez-la directement sur Cloud Run.
Étape 1 : Structurez le code du serveur Node.js
Créez un serveur HTTP minimal avec Express, Fastify ou les bibliothèques Node.js standards (index.js) :
Remarque : Cloud Run injecte automatiquement la variable d'environnement PORT au moment de l'exécution. La valeur de remplacement || 8080 dans le code ci-dessus sert principalement à faciliter les tests locaux sur votre machine avant le déploiement.
Étape 2 : Créez un Dockerfile sécurisé en plusieurs étapes
Empaquetez votre application à l'aide d'un build en plusieurs étapes afin d'obtenir une image de production minimale et sécurisée.
Bonne pratique : Créez un fichier .dockerignore dans votre répertoire racine et ajoutez-y node_modules et .env. Cela permet d'éviter que des fichiers utilisés pour le développement local ne soient accidentellement inclus dans votre image de conteneur, ce qui la garde propre et sécurisée.
Créez un fichier nommé Dockerfile dans votre répertoire racine :
Étape 3 : Effectuez le déploiement sur Cloud Run
Exécutez le déploiement à l'aide de Google Cloud CLI à partir de votre dossier racine local. Vous pouvez également créer une URL personnalisée au format <user-defined>.cloud.run pour votre application :
Comprendre le fonctionnement des allocations sans frais vous permet de prototyper et de faire évoluer votre application Node.js de manière prévisible :
Type de niveau | Allocation de puissance de calcul et de ressources | Exigences/Limites |
Google Cloud niveau Starter (prototypage) | • Cloud Run : jusqu'à deux applications Web actives • Cloud Firestore : 1 Gio de stockage, 50 000 lectures/jour, 40 000 écritures/jour • Cloud SQL : édition PostgreSQL pour les développeurs (scaling à zéro instance) • Firebase Auth : Google Sign-In inclus | • Compte Google valide • Aucune carte de crédit ni aucun compte de facturation requis • Déploiement limité à une seule région |
Niveau sans frais standard de Google Cloud (compte standard) | • Cloud Run : 2 millions de requêtes/mois, 180 000 vCPU-secondes/mois, 360 000 Gio-secondes/mois, 1 Go de sortie réseau/mois en Amérique du Nord • Accès à un crédit de bienvenue de 300 $ pendant les 90 premiers jours | • Compte de facturation Cloud associé • Accès complet aux API de la plate-forme dans toutes les régions |
Type de niveau
Allocation de puissance de calcul et de ressources
Exigences/Limites
Google Cloud niveau Starter (prototypage)
• Cloud Run : jusqu'à deux applications Web actives
• Cloud Firestore : 1 Gio de stockage, 50 000 lectures/jour, 40 000 écritures/jour
• Cloud SQL : édition PostgreSQL pour les développeurs (scaling à zéro instance)
• Firebase Auth : Google Sign-In inclus
• Compte Google valide
• Aucune carte de crédit ni aucun compte de facturation requis
• Déploiement limité à une seule région
Niveau sans frais standard de Google Cloud (compte standard)
• Cloud Run : 2 millions de requêtes/mois, 180 000 vCPU-secondes/mois, 360 000 Gio-secondes/mois, 1 Go de sortie réseau/mois en Amérique du Nord
• Accès à un crédit de bienvenue de 300 $ pendant les 90 premiers jours
• Compte de facturation Cloud associé
• Accès complet aux API de la plate-forme dans toutes les régions
Commencez à créer des applications sur Google Cloud avec 300 $ de crédits inclus et plus de 20 produits toujours sans frais.