Choisir la version Node.js appropriée pour Azure
Lors du développement d’applications JavaScript pour Azure, il est essentiel d’aligner les versions de Node.js dans votre environnement de développement local et l’environnement d’exécution de l’hôte. Cet alignement de version garantit la compatibilité, réduit la probabilité d’erreurs d’exécution et utilise les fonctionnalités complètes de la plateforme Azure. Dans cet article, vous allez apprendre à sélectionner la version Node.js appropriée pour vos applications et services hébergés par Azure.
Versions Node.js
Node.js suit une planification de mise en production prévisible qui inclut à la fois le support à long terme (LTS) et les versions actuelles. Les versions LTS sont désignées pour la maintenance et la stabilité à long terme, ce qui les rend idéales pour les environnements de production. Ces versions reçoivent des correctifs de bogues critiques, des mises à jour de sécurité et des améliorations des performances pendant une période prolongée, généralement 30 mois. Node.js utilise un système de numérotation pair/impair pour faire la distinction entre les versions LTS et Actuelles : les versions numérotées paires (par exemple, 18, 20) sont des versions LTS, tandis que les versions impaires (par exemple, 19, 21) sont des versions actuelles. Les versions actuelles incluent les dernières fonctionnalités et améliorations, mais ne sont prises en charge que pendant six mois, après quoi elles passent à une version LTS si elles ont un numéro pair.
Vous ne devez pas utiliser les versions actuelles en production, car la fenêtre de six mois peut mal s’aligner avec les runtimes de plateforme d’hébergement Azure et les kits sdk. Vous remarquerez que les conteneurs de développement pour Node.js ne proposent pas de versions avec numéros impairs ni de versions actuelles.
Conditions préalables
Tous les services Azure SDKs et d’hébergement utilisent les versions LTS de Node.js. Si votre code d’application s’exécute dans une version antérieure de Node.js, qui n’est plus disponible pour la prise en charge à long terme (LTS), vous devez mettre à jour le code source de votre application pour qu’il s’exécute dans un runtime LTS.
Vous devez également savoir quel service d’hébergement souhaitez déployer sur et tous les services Azure utilisés par votre application déployée.
Compatibilité entre les environnements
Une fois que vous savez quels services et kits de développement logiciel (SDK) Azure utilisent votre application, vérifiez que tous les environnements pour l’application peuvent générer et exécuter la même version de Node.js:
- environnement de développement local ou conteneur de développement
- Environnement de processus CI/CD
- Runtime de l’hôte d’application
- Kits de développement logiciel (SDK) Azure
Pour obtenir une explication des problèmes liés à l’utilisation de différentes versions dans votre environnement, consultez problèmes de compatibilité.
Services d’hébergement
Lorsque vous utilisez des services d’hébergement Azure, vous pouvez sélectionner soit déployer un conteneur sur l’hôte, soit sélectionner une version Node.js comme runtime pour l’hôte. Dans les deux cas, vous devez aligner la version du runtime, le code de l’application et les dépendances telles que les Kits de développement logiciel (SDK) Azure.
Pour rechercher des informations d’exécution, utilisez le tableau suivant :
Service
Informations sur la version
Pour les environnements d'exécution Linux. Vous pouvez également exécuter la commande Azure CLI suivante pour afficher toutes les versions prises en charge.
az webapp list-runtimes | grep node
Les nouveaux projets doivent utiliser le modèle de programmation le plus récent.
Il existe deux runtimes différents à prendre en compte : le serveur frontal et l’API si vous hébergez votre API dans Static Web Apps.
L’interface CLI SWA fournit des fonctionnalités d’environnement de développement, notamment le proxy, l’authentification et d’autres configurations.
Kits de développement logiciel (SDK) Azure
Les kits de développement logiciel (SDK) Azure nécessitent les versions LTS Node.js, comme indiqué dans la politique de support . Il peut y avoir une courte période lorsque les versions LTS prises en charge par l’environnement d’hébergement et les kits sdk ne correspondent pas, car il faut du temps pour vérifier les nouvelles versions Node.js LTS. Étant donné qu’il existe généralement trois versions de Node.js marquées comme versions de support à long terme, vous pouvez généralement cibler la version intermédiaire. Cette cible vous permet de tester et de vérifier que votre application peut passer à la version LTS suivante.
Gérer plusieurs versions de Node.js
Lorsque vous devez gérer plusieurs versions de Node.js dans vos environnements locaux et distants, nous vous recommandons :
- conteneurs de développement: utilisez un conteneur avec une version Node.js spécifique. Vous pouvez gérer la version de Node.js dans plusieurs environnements à l’aide de conteneurs. L’extension Remote - Containers de Visual Studio Code simplifie ce processus.
- NVM (Node Version Manager): interface de ligne de commande pour définir ou changer votre version locale de Node.js.
Télécharger et installer Node.js en fonction de votre utilisation prévue
Vous pouvez télécharger et installer Node.js en fonction de vos besoins.
- Page de téléchargement de Node.js
- Image officielle de Docker
- conteneurs de développement
Problèmes de compatibilité
Voici quelques catégories courantes de problèmes de compatibilité qui peuvent survenir lorsque Node.js versions ne correspondent pas entre les environnements :
vulnérabilités de sécurité: l’utilisation d’une version obsolète avec des vulnérabilités de sécurité connues peut exposer votre application aux risques de sécurité.
erreurs de syntaxe: les applications qui utilisent la dernière syntaxe JavaScript, non prise en charge par les versions antérieures Node.js, peuvent entraîner des erreurs de syntaxe. Ces erreurs empêchent l’exécution de l’application.
API déconseillées: les API déconseillées dans les versions plus récentes Node.js peuvent toujours être présentes dans les versions antérieures, ce qui entraîne des erreurs de comportement ou d’exécution inattendues si les versions ne sont pas alignées.
dégradation des performances: les versions Node.js plus récentes incluent souvent des améliorations des performances. L’exécution de votre application sur une version antérieure peut entraîner des temps d’exécution plus lents et des performances réduites.
comportement incohérent: différences dans la façon dont Node.js versions gèrent certaines opérations, telles que la gestion des mémoires tampons, le comportement de boucle d’événement ou la résolution de module, peuvent entraîner un comportement incohérent entre les environnements.
conflits de dépendances: Node.js modules ou packages compatibles avec une version de Node.js peuvent ne pas être compatibles avec une autre, provoquant des conflits de dépendances et des erreurs d’exécution.
Échecs de build : les pipelines CI/CD utilisant une version différente de Node.js que l’environnement de développement local peuvent entraîner des défaillances de build, causant des retards dans le processus de développement et de mise en production.
En veillant à ce que tous les environnements utilisent la même version de Node.js, vous pouvez atténuer ces problèmes de compatibilité et garantir un processus de développement et de déploiement plus fluide.