Seasoned developers know that every few months a new “game changing” technology comes up just to pass into oblivion soon after. In my role as technology strategist at Dynatrace I’m often asked why I think that this isn’t the case for Node.js. It's because the way I see enterprises using Node as a new strategic technology to build scalable applications that keeps them in business.
Before going into more detail, let’s review Node.js’ relevance in the industry by looking at some statistical data.
I like Google Trends as it shows search traffic by keyword over time. Its is a great way to identify the relevance of a given topic especially when correlated with other terms which in this case act as a baseline.
Comparing Node.js with Ruby on Rails clearly indicates that Node gained much momentum after its introduction in 2009 and now already supersedes its 'competitor'.
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
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 Node's 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/XHR 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 - at this time 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.
Enterprise grade Release Model
In Fall 2015 the Node.js project introduced a new LTS model that added predictable release cycles and long term support released needed by many enterprises.
This means that long term support (LTS) releases will be actively developed for 18 months and maintained for another 12 months. So a LTS release may effectively stay in production for 30(!) months while still receiving bug- and security fixes.
If you need even more enterprise features and support you also may want to consider using N|Solid the premier Enterprise-grade Node.js platform.
Enterprise grade Monitoring
While Node.js is already quite mature, it isn’t bullet proof and should be monitored to tackle problems like memory leaks or slow external services.
With Ruxit Dynatrace offers a turnkey monitoring solution that provides transactional insights into the health of your full stack including all Node.js tiers.
Combined with N|Solid you can even deep dive into Node.js processes. Both products can be tried for free.
Given the adoption rate in large enterprises it is clear that Node.js is here to stay. Especially for tasks that involve asynchronous I/O it's an excellent choice.
This is an extended and updated repost of Why Node.js is hitting the big time in Enterprise Markets.
Feel free to reach out to me on Twitter anytime @dkhan. More posts of mine can be found on Dynatrace APM Blog.