TECH NEWS

Node.js prêt pour partir en production

Depuis ces dernières années, le Javascript révolutionne le monde du développement informatique. Ceci est notamment dû à l’arrivée des standards HTML5, permettant le développement d’applications natives, ainsi qu’au gain de puissance de nos navigateurs, tel que le moteur V8 de Google Chrome. Par ailleurs, cette évolution entraine en outre la mort de certaines technologies tels que Flash Player d’Adobe et Silverlight de Microsoft.

August 5, 2015

Depuis ces dernières années, le Javascript révolutionne le monde du développement informatique. Ceci est notamment dû à l’arrivée des standards HTML5, permettant le développement d’applications natives, ainsi qu’au gain de puissance de nos navigateurs, tel que le moteur V8 de Google Chrome. Par ailleurs, cette évolution entraine en outre la mort de certaines technologies tels que Flash Player d’Adobe et Silverlight de Microsoft.

Certains aiment, d’autres détestent, mais il y a peu d’entre-deux quand il est question de Javascript. Néanmoins, il sera de plus en plus difficile de l’éviter tant il est possible d’être sur tous les fronts avec cette technologie. Depuis longtemps, une technologie dite front-end qui était utilisée pour créer des sites internet plus « interactif » avec les utilisateurs ; elle est de nos jours utilisée pour créer de véritables applications en Javascript de bout en bout, notamment, grâce à de puissants frameworks front-end, exemple : AngularJS, Backbone.js, Ember.js, ExtJS… Côté back-end, il est maintenant possible de développer en Javascript grâce à Node.js, la plateforme libre et open-source orientée application web, basé sur le moteur V8 de Google. Grâce à cette plateforme, il est aussi possible de créer des applications desktops en Javascript tels que Atome, Popcorn-Time (avec des frameworks comme Electron ou NW.js) ou encore des applications mobiles cross-plateform iOS, Android et bientôt Windows Phone (grâce à Ionic, Phonegap / Cordova, React Native). Le tout en passant par des outils eux aussi écrit en Javascript comme NPM, Bower, Grunt, Gulp ou Webpack…
commitstrip
Analyse par Florent Bennani – Consultant chez Agile Partner
 Capture d’écran 2015-08-05 à 09.07.27

Node.js en bref

Node.js a explosé ces dernières années et ce n’est pas pour rien. Il y a plusieurs explications à cela. Première chose, cette technologie n’est rien de plus que du Javascript, ce qui a l’avantage d’être connu par beaucoup de développeurs. Peu importe le niveau de connaissance JS, les développeurs peuvent tester et se lancer avec node sans trop de problèmes. En plus de cela, la plateforme est très légère, elle s’installe facilement et rapidement sur tous les systèmes d’exploitation (Linux, Windows, OS X…) et ne requiert quasiment aucune dépendance externe. Pas besoin d’un serveur HTTP externe de type Nginx, Tomcat ou IIS pour lancer une application node.js, le serveur HTTP est inclus dans l’installation ! Ensuite, cette techno est basé sur le moteur Javascript V8 de Google qui est lui-même amené à s’améliorer ce qui profitera indirectement aux applications node.js.
Cependant, pour ceux qui n’ont pas l’habitude de développer avec du JS, les débuts avec node peuvent être perturbants. En effet, l’outil tourne sur un unique thread, tout doit être codé de façon asynchrone, en utilisant des callbacks ou des promises. L’avantage est que c’est du non-bloquant, le programme n’attend jamais qu’une tâche soit finie pour pouvoir travailler sur une autre. Node.js est en parfaite adéquation pour gérer des dizaines de milliers d’opérations ou de requêtes concurrentes très facilement et très rapidement. Cela lui permet ainsi une haute « scalabilité ». Par ailleurs, la plateforme est très simple à interfacer avec des bases de données NoSQL comme MongoDB, ElasticSearch, Redis et d’autres. Grâce à cela, node.js est particulièrement utile pour des applications demandant beaucoup d’opérations I/O. Exemple : des applications en temps réel, des API REST JSON, du big data ou de toutes sortes d’applications Data-Intensive Real-Time (DIRT)… Et pour cela vous ne commencez pas de zéro ! Des frameworks comme Express.js, Loopback pour créer des API par exemple, ou Socket.io pour du temps-réel et plein d’autres sont là pour vous aider ! Néanmoins, si vous voulez créer une application très consommatrice de CPU, node.js n’est peut-être pas à préférer. Ici un langage compilé comme du C/C++ ou Go est beaucoup plus performant.
graph_node
Les détracteurs diront que la jeunesse de la technologie ne lui permet pas d’avoir beaucoup de librairies, de modules ou d’outils disponibles et prêts à l’emploi comme il pourrait y avoir en Java ou en C#. Et bien si ! Node.js, fort de sa très large communauté encore grandissante, propose des puissants outils tels que Grunt ou Gulp permettant de scripter rapidement vos tâches répétitives. Par ailleurs, node.js vient de base avec son propre outil de gestionnaire de paquets NPM (Node Package Manager). Il a l’avantage d’être très puissant, est simple à utiliser. Il comporte à ce jour, d’après modulecounts bien plus de modules que n’importe quelle autre technologie de développement (cf image ci-contre). Néanmoins, plus ne veut pas toujours dire mieux, mais plus veut certainement dire plus de choix, et la plupart des modules ont leur code source sur Github. Vous pourrez donc vérifier vous-même si un module vous plait ou non.

On vous le dit !

Walmart, Paypal, Yahoo! et plein d’autres utilisent aujourd’hui node.js en production pour leurs applications phares. Nous-même, chez Agile Partner, nous avons une application interne tournant en production et développée en Javascript de bout en bout avec de l’AngularJS pour la partie front-end, et du Node.js pour la partie serveur. Après, 6 mois, aucun souci n’est à déplorer. Nous avons même développé notre propre outil pour lancer des tests unitaires et d’intégrations, de concaténer le code, de le minifier, et de le déployer sur les serveurs AWS sur base de Grunt et de node.js. Microsoft Azure, Heroku et bien d’autres sont aussi des solutions possibles pour mettre en production une application node.js. En effet, la grande majorité des plateformes de service de cloud computing supportent déjà node.js. Par ailleurs, node.js se déploie aussi très facilement avec l’aide des technologies comme Docker.
Enfin, il est parfaitement possible de déployer votre application sur n’importe quel type de système d’exploitation sans soucis. Vous n’avez donc aucune excuse pour ne pas tester dès à présent node.js !
Bien entendu, si vous aussi avez fait l’expérience de node.js, n’hésitez pas à venir échanger avec nous sur notre blog !

Watch video

In the same category