At Red Hat, we are involved with many different open source communities and upstream projects. Our involvement in these projects helps to inform our products and direction. One such project that we’ve been increasingly involved in is Node.js.
Last September, myself and a few other team members moved over from IBM to Red Hat. The goal for this move was primarily so we could collaborate more closely with the existing Node.js team at Red Hat. We are settled in and now is as good a time as any to share some of what the team’s been working on.
First, what is Node.js?
While our team lives and breathes Node.js, we understand that not everybody knows what it is and why it’s become so popular.
Node.js unlocks the ability for developers to work on both the back and front ends using the same language. It consistently ranks as one of the top languages in which developers want to work. It also has a vibrant ecosystem with over 1.4 million modules published to npm. This combination of factors leads to significant developer productivity gains over other languages, which along with the efficient resource usage and good performance that Node.js delivers, explains the rapid increase of use and deployment over the last number of years.
The TLDR is that Node.js delivers significant gains in developer productivity along with good performance leading to efficient use of both hardware and people resources.
Red Hat’s involvement in Node.js
Red Hat and IBM have been involved in the Node.js project since 2014, helping to bring the community back together after the io.js fork. As part of this work, the IBM team expanded the platform support to include platforms like Linux on Z and P, as well as helping set key elements of the Long Term Support (LTS) release process.
For the past two years, Node.js has been a supported runtime in Red Hat Runtimes and on Red Hat OpenShift. We deliver Red Hat Node.js binaries through Red Hat Enterprise Linux (RHEL) and related containers (for example ubi8/nodejs-14). This provides customers using Node.js with the ability to manage their risk by leaning on Red Hat’s Node.js expertise developed through our leadership and work in the Node.js community.
As I write this, Red Hat and IBM currently employ four members on the Node.js Technical Steering committee and 10 core collaborators who can review and land commits. We also help keep key elements of the project running, such as releases and the build infrastructure. In addition, we work to help capture what’s important for ongoing success through initiatives like the next-10 effort.
Building on our work in the community, our goal is to enable customers to successfully integrate Node.js into other aspects of the Red Hat stack. The team builds and provides a number of resources available through GitHub, and Nodeshift Application Starters to help people get started with Node.js in general and with deploying their Node.js applications to OpenShift. One of our current focus areas is to build out the Node.js page of the Red Hat Developers site.
The whole Red Hat Node.js team is looking forward to continuing to work with the larger team to maintain our community involvement and contributions while also increasing the pace at which we can support the use of Node.js with the Red Hat portfolio.
What’s next for Node.js?
So, after reading this background on what Node.js is and why it is important, you may be wondering: what’s next for the project? As per the LTS process, April brings a new major Node.js release (16.x) which will be ‘current’ for 6 months before being promoted to LTS in October. Check back to the blog then - we will share an update on all of the new features.
In the meantime, to learn more about the Node.js community and to learn how you can contribute, take a look at the upstream community. If you want to read more about what Red Hat is up to on the Node.js front, check out the Node.js developers page here. Finally, if you’re a Red Hat customer, check out the customer portal for more information.
About the author
Michael Dawson is an active contributor to the Node.js project and chair of the Node.js Technical Steering Committee (TSC). He contributes to a broad range of community efforts including platform support, build infrastructure, N-API, Release, as well as tools to help the community achieve quality with speed (e.g., ci jobs, benchmarking and code coverage reporting).