Seasoned developers know that every few months a new “game changing” technology comes up just to pass into oblivion soon after. In my new role as technology strategist at Dynatrace I’m often asked why I think that this isn’t the case for Node.js. In this post I will explain why Node is different and how it is already used by enterprises.
Before going into more detail, let’s review Node.js’ relevance in the industry by looking at some statistical data.
Google Trends shows the search traffic over time for given terms and is a way to find out more about the relevance of a given topic.
As a chart only shows percentage values and related terms need to be added to provide a baseline for comparisons.
Comparing Node.js with other popular newish technologies like Groovy and Ruby on Rails we clearly see that it constantly is gaining momentum after its introduction in 2009 while Groovy and Rails are already declining or stagnating.
Indeed Job Trends
Another strong indicator of relevance is Indeed Job Trends as it shows the number of job postings and relative growth for a given skill.
Please note that this chart compares the growth and not the absolute number of job offerings where Java still rules it all. It tells us that Node.js has the highest growth rate of all compared technologies.
Alert readers may now argue that the charts would have looked quite the same for technologies like Ruby on Rails some years before. So how is Node.js different?
Big brands are using Node.js
Every new kid on the technology block gains momentum in the beginning. Especially because startups tend to use the freshest technologies available and there are many willing and experimental startups at any given time. But as we see here, big established companies with years of legacy software are shifting to Node.js. This is quite uncommon and to understand the reasons for that we have to peek into how Node.js works.
Node.js in a (tiny) nutshell
I will cover this topic in more depth in another post, but in short this means that program execution doesn’t stop and wait when performing I/O requests which in turn saves system resources while providing better overall performance.
What enterprises say
“Node.js powers our web applications and has allowed our teams to move much faster in bringing their designs to life”
Jeff Harrell – Director of Engineering at PayPal
“Node’s evented I/O model freed us from worrying about locking and concurrency issues that are common with multithreaded async I/O”
Subbu Allarmarju – Principal Member, Technical Staff at ebay
“On the server side, our entire mobile software stack is completely built in Node. One reason was scale. The second is Node showed us huge performance gains.”
Kiran Prasad – Mobile Development Lead at LinkedIn
According to these statements at least some reasons for Nodes adoption in enterprise environments are
- Short development cycles
How enterprises incorporate Node.js
During the last few years the requirements for network connected software systems changed dramatically. Static or semi static websites for desktop computers were replaced by responsive, dynamic sites that load additional content via Ajax or even rely on push technologies like WebSockets. Streaming services are on the rise. Data of all kinds needs to be delivered to an ever growing number of users with different devices in different formats.
Those changing and growing demands can either be fulfilled by adding new hardware and extending existing software or by adding a new layer that utilizes existing infrastructure more efficient and supports all the most wanted new technologies like WebSockets and REST services.
Node.js shines in modern web-connected applications that need to gather data from different sources, consolidate it and push it to many clients in real-time. This makes it a perfect bridging technology for existing systems as it provides an easily deployable migration layer that either proxies data to existing systems or collects and reformats data for different uses. Please watch this video by Eran Hammer Sr. Architect at WalMart to see how they did it.
Looking at all the industry voices and the level of adoption by enterprises it is clear that Node.js is here to stay.
While it is already quite mature, it isn’t bullet proof and should be monitored to tackle problems like memory leaks or slow external services.
Node.js at Dynatrace
At the time of writing our Node.js agent is in beta state and already provides full PurePaths for selected frameworks.
Update: Our Node.js agent is available. It is with our free trial so try it out – we appreciate your feedback!
How do you use Node.js and what do you expect from an APM tool?
Please use the comment form below to tell your Node story. Also include the frameworks you are using and possible performance issues you had to tackle.