From underground to enterprise – story of the Node.JS
In 2015 Netflix started to migrate its architecture to Node.js. This step allowed the company to simplify application development, which, as it turned out, was one of the steps that make Netflix so successful. More and more large companies and developers are choosing Node.js as a technology for the development of their product. Why?
Initially, Node.js was a simple tool created in the “underground”. It was supposed to help in solving some development problems, such as scalability, speed, I/O support (inputs/outputs). Initially, it was mainly used as a temporary tool to support current solutions. Currently, Node.js is part of the architecture of the main players in the IT industry. Among them are Google, Microsoft, Amazon, Netflix and many, many others.
Underground origins of Node.js
Before we start writing about the possibilities of the tool, we should go back to 2009, the time when it was written by Ryan Dahl. Dahl’s inspiration for this tool was… a progress bar at Flickr (pro tip: never underestimate even the most trivial elements of the reality around you – you never know where you will find inspiration for something… ;)).
Currently, when we start sending a file through web interfaces, we see a progress bar that usually informs us about the time remaining to complete the operation, the size of the file or other facts that the interface creator thinks should be useful for users… Dahl a few years ago (almost a dozen years ago!) unfortunately did not see such information, so he didn’t know how much he had to wait. This common problem of the lack of a progress bar meant that Ryan began to look for a solution that was simpler, faster, more user-friendly and, above all, easy to implement by other programmers.
From the underground to the mainstream – why is Node.js so popular?
Socket.io is a server framework that allows you to create “real-time” applications. It enables building real-time communication between clients and servers. It acts as a client-side library, as well as a server-side Node.js library. It allows you to program applications such as chats, audio-video communication or streaming.
Express.js, on the other hand, if we can put it this way, is designed in a minimalistic style. Mainly used to build APIs for web and mobile applications. It also offers support for the construction of views – the front-end. It is used to build more advanced solutions, such as Keystone.js – CMS platform (Content Management System).
From the programmer’s perspective, it is also important to efficiently manage libraries and library dependencies in written software. Node.js provides such management by providing NPM (Node Package Manager) software. Thanks to the package manager we can easily find the library we are interested in. The most popular packages are gulp, grunt, and express. In NPM registers we can also find popular ones from the front end: jQuery, Bootstrap or React.
Node.js – the favorite of giants?
Currently, many large companies and corporations use Node.js. Among them are such giants as Google, Microsoft, Amazon, Netflix, but also GoDaddy, Groupon, PayPal, Uber, and LinkedIn. One of the most interesting examples of companies that can be considered as precursors of using Node.js in their architecture is Netflix, which in 2015 began to migrate its architecture to Node.js. This step allowed Netflix to simplify application development and the development itself. It also allowed for a new approach, namely migration from the architecture of the monolith to the architecture of micro-services. Thanks to the introduction of Node.js, it was possible to improve the performance of the application, which in turn reduced the costs of maintenance and development of the entire infrastructure.
Amazon also uses it. It can be used during the development of the Lambda function. This is a cloud solution that allows you to build serverless applications. Similar solutions can now be found in Google Cloud.
This is the short story of the main hero of the text. What does its future look like, what do you think about Node.js and do you use it? Let us know in your comments! 🙂
Written by: Piotr Pawlak & Justyna Kot