EXPERTISE + LIBERTÉ
= OPINIONS

Node JS à l’assault de l’informatique d’entreprise

Publié le
4/2/2016
|
Keley Consulting
|
Tech
Publié le
4/2/2016
Keley Consulting
|
Tech

Pour certains, Node JS est l’alternative de choix au duo « NET & JAVA », utilisé par la majorité des projets d’entreprise. Pour d’autres, il ne s’agit que d’une bulle technologique de plus.

En tout état de cause, Node JS connaît une croissance spectaculaire puisqu’en cinq ans, ses composants ont été téléchargés plus de deux milliards de fois.

Que faut-il en penser ?

Les origines de Node JS : la guerre des navigateurs

Créé en 2009, Node JS est une plateforme libre permettant de créer des applications serveur avec le langage Javascript, là où la plupart des applications d’entreprise utilisent JAVA, C#, PHP ou encore Ruby.

Javascript étant le langage interprété par les navigateurs au sein des pages Web, l’intérêt est donc d’utiliser ce langage à la fois pour le « front » (dans le navigateur) et pour le « back » (côté serveur).

Pour comprendre d’où vient Node JS, il est utile de revenir sur l’histoire de Javascript.

Phase 1 (1995 – 2004) : les pages Web animées. En 1995, Brendan Eich, ingénieur chez Netscape, est chargé d’inventer un langage interprété par le navigateur édité par sa société : c’est la naissance de Javascript.

Le langage et les outils qui l’accompagnent sont conçus dès le début pour permettre de réaliser des applications hors du navigateur. Mais pendant ses dix premières années d’existence, Javascipt est utilisé quasi exclusivement pour permettre des interactions simples avec des éléments d’interface utilisateur : animer des boutons, changer la couleur d’éléments, contrôler le contenu de formulaires…

Phase 2 (2005 – 2009) : les applications Web riches. Puis l’utilisation de Javascript s’étend, notamment grâce à des frameworks libres tels que JQuery, qui facilitent la création d’interfaces riches, proches de celles des applications installables : rechargement partiel de pages, échanges de données en temps réel…

Ces évolutions représentent alors un challenge important pour les éditeurs de navigateurs (Microsoft, Mozilla…) qui doivent rendre les pages Web toujours plus rapides à charger, tandis que leur complexité ne cesse d’augmenter. C’est dans ce contexte, en 2009, que Google dote le navigateur Chrome qu’il vient d’éditer d’un nouvel environnement d’exécution Javascript, le moteur V8, qui contribuera fortement à ses performances.

Phase 3 : (2009 - *) : « Javascript is eating the World ». Quelques mois plus tard, Ryan Dahl, ingénieur employé par Joyent, a l’idée d’exploiter le moteur V8, distribué sous licence libre, pour construire Node JS. Cette fois, le développement en Javascript côté serveur bénéficie d’un momentum : Javascript est devenu la « seconde langue » de la plupart des développeurs Web et motorise les projets les plus actifs sur la plateforme de partage de code Github.

Depuis, Node JS a été adopté par de nombreux géants du secteur technologique tels que Microsoft, Amazon, eBay, IBM, Uber et se développe de manière significative en France, dans différents secteurs.

Les apports de Node JS

Faciliter le développement d’applications performantes

Au-delà de l’utilisation de Javascript, la promesse de Node JS est de faciliter le développement d’applications performantes en mettant en œuvre un modèle « non bloquant ».

Pour faciliter la compréhension de ce concept, prenons l’image du fonctionnement d’un fast-food.

Dans un fonctionnement dit « bloquant », lorsqu’un client passe une commande au comptoir d’un fast-food, le vendeur lance la préparation de la commande et attend que celle-ci soit préparée avant de s’adresser au client suivant. Pendant la préparation de la commande en cuisine, le vendeur attend : son temps de travail n’est pas optimisé.

La solution pour contourner ce problème est un fonctionnement dit « non bloquant », qui est d’ailleurs mis en œuvre dans de nombreux fast-foods : le vendeur au comptoir prend les commandes à la chaîne et les livre au fur et à mesure qu’elles sont préparées. Node JS fonctionne de la même manière en réceptionnant les requêtes et en distribuant les traitements associés. Lorsqu’un traitement est exécuté, le processus de Node JS est « prévenu » par un événement et « livre » le résultat.

Améliorer la productivité

Comme évoqué, un langage unique, Javascript, permet d’améliorer la productivité en permettant aux développeurs de se concentrer sur une seule et même technologie utilisée à la fois pour le back et pour le front.

De plus, un écosystème riche de 200 000 composants réutilisables a été développé par une communauté très active. On trouve ainsi des composants répondant à une très large gamme de besoins : gestion de différentes bases de données, tests automatisés, manipulation de fichiers…

A titre d’exemple, Paypal a réalisé une analyse montrant une multiplication par deux de la productivité d’une de ses équipes en lui faisant réaliser un projet en Node JS par rapport au même projet en JAVA.

Attirer les talents

L’adoption de Node JS augmente et permet d’attirer des profils d’ingénieurs performants qui s’intéressent naturellement aux technologies modernes.

Bien qu’à caractère auto-réalisateur, cet effet n’en est pas moins un argument significatif. Un cadre de Paypal, Bill Scott, déclarait d’ailleurs : “Why go to Facebook and do PHP when you can go to PayPal and do Node.js ?”. Yahoo a également pris le pari de Node JS en constituant une équipe de plus de 200 développeurs ayant réalisé plus de 1000 modules.

Optimiser l’infrastructure d’hébergement

Une application réalisée avec Node JS consomme souvent nettement moins de ressources matérielles que si celle-ci avait été réalisée avec d’autres technologies, telles que JAVA ou Microsoft.NET.

Les économies réalisées sur les coûts de matériel et de maintenance peuvent ainsi être significatives. Linkedin est, par exemple, passé de 15 serveurs à 4 serveurs pour le serveur backend qui alimente son application mobile en le réécrivant en Node JS.

De plus, la capacité à résister à des pics de charge s’en trouve généralement renforcée, ce qui limite les éventuelles pertes financières liées à l’indisponibilité de services. En période d’affluence, pendant le « Black Friday », Walmart s’appuie sur Node JS pour répondre à 70% des 1,5 milliards de requêtes reçues.

Les facteurs clés de succès pour se lancer

Un périmètre fonctionnel adapté

Le domaine fonctionnel de l’application à développer doit tirer parti des avantages de Node JS et de son modèle non bloquant : une application répondant à un grand nombre d’utilisateurs simultanés, avec peu de traitements intensifs pour le processeur tels que les traitements d’image ou le chiffrement.

Les contextes d’utilisation les plus fréquents de Node JS concernent la mise en place de serveurs d’API utilisés pour motoriser des applications mobiles et des sites Web : gestion des utilisateurs, de transactions, analytics…

Les applications relatives à l’Internet des objets sont également fréquentes car le volume de connexions peut être important et les besoins de communications en temps réel également.

Une équipe expérimentée et organisée

Il est crucial de disposer, au sein de l’équipe de réalisation, de profils ayant un niveau d’expertise suffisant en Javascript. En effet, les développeurs débutants en Javascript (les « java-script kiddies »), capables uniquement de modifier des scripts existants, auront certainement un niveau insuffisant pour maîtriser les subtilités nécessaires au développement réalisé avec Node JS.

Par ailleurs, il est conseillé de découper le périmètre du projet en unités réalisables par des équipes de 4 à 5 ingénieurs au plus pour éviter les problèmes de coordination liés à la conception événementielle de Node JS.

Une sélection prudente des modules Open Source

L’écosystème des composants réutilisables de Node JS est si riche qu’il est tentant de procéder systématiquement par assemblage pour gagner du temps et réaliser des économies de coûts : après tout, n’est-ce pas l'une des promesses clés de cette technologie ?

En réalité, il convient de définir une politique stricte en matière de choix de composants et de ne retenir que les composants suffisamment documentés et mis à jour régulièrement par une communauté active.

En conclusion

Node JS apporte des gains de productivité significatifs, validés par des projets industriels chez des acteurs de premier plan. De plus, sa communauté de développeurs, qui augmente rapidement, est devenue la plus active sur le plan du nombre de composants libres publiés ces derniers mois, toutes technologies confondues.

L’adoption de Node JS devrait donc poursuivre son accélération au sein des projets d’entreprises : pourquoi pas vous ?

Pour obtenir des renseignements additionnels concernant Node JS, contactez-nous

Auteur : Keley Consulting

Nous contacter

Contactez-nous
Partager cet article:

Inscrivez-vous à La newsletter keley

Recevez tous les mois nos paroles d'experts et l'actualité du digital dans notre newsletter.

Merci ! Votre message a bien été envoyé.
Désolé ! Votre message n'a pu être envoyé.