SAFOZI fournit une intégration prête à l’emploi du serveur d’application rapide, léger et hautement évolutif NodeJS. Il est automatiquement fourni avec de nombreux outils d’optimisation et de gestion pour rendre le processus d’hébergement le plus pratique possible pour les développeurs.

Dans cet article, nous allons passer en revue les principaux outils et fonctionnalités disponibles sur la plate-forme pour fournir le niveau requis d’hébergement Node.js.

Environnement Node.js

Pour exécuter votre application Node.js, vous devez configurer l’environnement approprié en utilisant l’assistant de topologie puissant et intuitif. Passez à l’onglet Node.js, sélectionnez la version du moteur requise pour votre serveur d’application et ajoutez toute autre pile logicielle requise. Si nécessaire, ajustez d’autres paramètres, tels que le nombre de nuages et de nœuds, IPv4 publics, etc.

Note : Chaque instance est un conteneur complètement isolé, totalement indépendant et non influencé par d’autres piles. De plus, les nœuds mis à l’échelle sont automatiquement répartis sur les serveurs physiques (ou VM), assurant ainsi une haute disponibilité.

Versions Node.js

Actuellement, les versions suivantes de Node.js sont supportées :

  • 6.11.5 – 6.14.1
  • 8.9.0 – 8.11.3
  • 9.0.0 – 9.11.1
  • 10.0.0 – 10.8.0

Vous pouvez sélectionner la version requise de Node.js directement depuis l’assistant de topologie lors de la création d’un nouvel environnement et l’adapter à l’environnement existant via le redéploiement de conteneurs.

Déploiement d’applications Node.js

SAFOZI automatise le processus de déploiement des serveurs d’applications NodeJS gérés en utilisant :

  • archive d’application téléchargée depuis la machine locale ou via une URL externe
  • dépôt VCS distant (par ex. GitHub)

Gestionnaires de paquets Node.js

Pour plus d’aisance, chaque serveur d’application NodeJS contient un outil de développement intégré appelé Package Manager, qui assure la standardisation et l’automatisation des processus d’installation, de mise à jour, de configuration et de suppression.

SAFOZI supporte deux types de gestionnaires de paquets :

  • npm – gère les exigences de votre projet en installant les modules supplémentaires, les packages et les applications prêtes à l’emploi.
  • yarn – fonctionne selon les mêmes exigences qu’en npm (aucune modification n’est donc nécessaire pour les applications existantes), tout en offrant une vitesse, une fiabilité et une aisance élevées.

Par défaut, le gestionnaire de paquets npm est utilisé pour les serveurs d’application NodeJS, mais, si nécessaire, il peut être facilement commuté en fil. Pour cela, accédez au cadre des variables du conteneur et définissez la valeur PACKAGE_MANAGER appropriée (npm ou yarn).

Gestionnaires de processus Node.js

Les gestionnaires de processus permettent de contrôler le cycle de vie des applications, de surveiller les services en cours d’exécution et de maintenir l’opérabilité du projet. Jelastic PaaS prend en charge les gestionnaires de processus suivants pour la pile NodeJS :

  • npm – initie et configure plusieurs processus
  • pm2 – offre une grande variété de fonctionnalités de gestion d’applications, y compris la surveillance des processus Node.js lancés
  • forever – permet d’exécuter vos processus Node.js en continu et de les redémarrer automatiquement en cas d’échec.
  • supervisor – surveille les applications en cours d’exécution pour les modifications et redémarre automatiquement celles qui sont nécessaires pour les tenir à jour

Les utilisateurs peuvent choisir le gestionnaire de processus nécessaire lors du redéploiement des conteneurs ou en ajustant la variable PROCESS_MANAGER (en utilisant toujours, npm, pm2 ou superviseur comme valeur, le redémarrage des conteneurs est nécessaire pour appliquer de nouvelles options).

Gestion de domaines

Votre application Node.js peut être facilement complétée par le nom de domaine personnalisé à utiliser à la place de celui par défaut. Il existe deux options en fonction de la topologie de votre environnement :

  • Redirection CNAME, en cas d’utilisation Shared Load Balancer, est recommandé pour les environnements de développement et de test.
  • DNS A Record, si une IP publique est utilisée, peut gérer une forte charge de trafic et convient aux environnements de production.

De plus, vous pouvez rapidement basculer le trafic entre vos environnements – Swap Domains (par exemple pour rediriger les clients vers la nouvelle version de l’application sans temps d’arrêt) en utilisant la fonctionnalité des domaines de swap ou à l’aide de la méthode API/CLI SwapExtIps.

Évolutivité verticale automatique

Jelastic P4D fournit dynamiquement la quantité exacte de ressources (RAM et CPU) requises par vos nœuds en fonction de la charge actuelle, sans intervention manuelle. Par conséquent, vous ne payez jamais trop cher pour des ressources inutilisées et vous gagnez du temps car la plate-forme élimine le besoin de gérer les ajustements liés à la charge ou les modifications architecturales.

Il vous suffit de définir la limite supérieure des cloudlets (chacun équivaut à 128 Mo de RAM et 400 MHz de CPU) pour votre serveur d’application NodeJS et tout le reste sera géré automatiquement par la plate-forme.

Évolutivité horizontale manuelle

Pour mettre à l’échelle les serveurs d’application NodeJS, vous devez accéder à l’assistant de topologie et cliquer sur les boutons +/- dans la section Mise à l’échelle horizontale pour définir le nombre de nœuds requis. De plus, à partir de la version 5.5 de la plate-forme, vous pouvez régler le mode de mise à l’échelle préféré :

  • Stateless – crée simultanément tous les nouveaux nœuds à partir du modèle d’image de base
  • Stateful – copie séquentiellement le système de fichiers du conteneur maître dans les nouveaux nœuds.

Le nombre maximum de serveurs de même type au sein d’une même couche d’environnement dépend des paramètres d’un fournisseur d’hébergement particulier (généralement cette limite est de 16 nœuds et peut être augmentée en envoyant la demande de support appropriée).

De plus, pour une distribution correcte des requêtes, une instance Load-Balancer est automatiquement ajoutée lors de l’évolutivité du serveur NodeJS.

Évolutivité horizontale autmatique

Accédez à la section Paramètres de l’environnement > Surveillance > évolutivité horizontale automatique (Automatic Horizontal Scaling) pour configurer des déclencheurs spéciaux accordables, qui permettent d’augmenter ou de diminuer le nombre de nœuds en fonction de la charge de l’application. Configurez le type de ressource à surveiller (CPU, RAM, Network, Disk) et la condition exacte de mise à l’échelle.

En savoir plus sur l’évolutivité horizontale automatique (Automatic Horizontal Scaling) dans le document lié.

De plus, l’hébergement chez Jelastic permet d’utiliser d’autres outils et fonctionnalités intégrés, par exemple :

  • SSL personnalisé ou préconfiguré
  • Public IPv4
  • Une large gamme de piles de logiciels gérés
  • Container firewalls, endpoints et environnements isolation
  • Interface utilisateur conviviale et accès direct à SSH pour la gestion
  • API ouverte et scripts en cloud pour l’automatisation
  • Modèle de tarification à l’utilisation
  • Fonctionnalité de collaboration pour le travail d’équipe
  • Distribution multi-cloud

Vous voulez profitez d’un tel service, suivez alors ce lien.