Node.js reference architecture

As we start the new year, it's a good time to look back on what the Red Hat Node.js team accomplished in 2021. Time goes by quickly, and it's easy to forget the work we've done and the useful assets that we've put together.

The team is involved in a variety of projects: working on the upstream Node.js releases, keeping the V8 JavaScript engine running on Power and s390 platforms, publishing content to help Node.js developers learn and adopt Node.js, and creating guidance for enterprise Node.js deployments on Red Hat OpenShift and other settings. Through our wide-ranging work, we have the opportunity to collaborate with many people from across the community and ecosystem. Here are some of the highlights from the past year.

Node.js 17 and community involvement

In accordance with the regular release schedule, the Node.js project shipped two major versions in 2021. Node.js 16 was released in April and promoted to long-term support in October. Also in October, Node.js 17 was released, becoming our current release line. Beth Griggs led both these releases and authored the following upstream Node.js release announcements on behalf of our team:

Aside from the major releases, several members of the Red Hat team have supported the upstream Node.js security releases, which often require quick turnarounds in response to discovered issues.

Releases are only one of the areas where our team is active within the community. Behind the scenes, we help keep the infrastructure running as part of the Node.js Build Working Group, with Ash Cripps and Richard Lau investing a lot of their time. We are also active members of the Package Maintenance Working Group and Node-API team and help lead forward-thinking efforts like the Next 10 effort. Dan Bevenius and Richard Lau helped land the OpenSSL 3.0 update, released in Node.js 17, which was a significant effort.

While the main goal of doing this work is to support the Node.js ecosystem, it also pays dividends by keeping us up to date on key topics and technologies in Node.js and JavaScript. It's also a great way to build contacts with other community leaders and experts and to learn from them. Tasks that look daunting on your own can be easier as a team effort. As an example, one new thing we tried out was a "team triage day" where we progressed 134 issues across community projects.

Things we shipped

While we do spend a lot of our time on community work, we also work on a number of key initiatives for Red Hat. This past year our team shipped a wide range of assets and content, from articles and cheat sheets to node modules and containers.

Cheat Sheets

In 2021 the team released a variety of quick reference guides for Node.js developers:

Node modules

Along with the various modules we maintain in the NodeShift organization, we've released a new module called Kube Service Bindings. Service bindings is a Kubernetes specification defining how to communicate service secrets to applications in an automated way. The goal of this package is to make it easy for Node.js applications to consume Kubernetes and OpenShift secrets, without requiring developers to be familiar with service bindings.

Opossum, a circuit breaker that helps keep Node.js applications running, has been a community project since late 2016. It now has more than 70,000 downloads per week. The project is supported by the Nodeshift community. This year, Red Hat has released a fully supported version of Opossum that is distributed through Red Hat's customer registry as @redhat/opossum. Opossum will always be a community project, but if you would like to know that the version you are using has Red Hat's support, the @redhat/opossum version might be for you. You can learn more about Red Hat's Node.js offerings at our customer portal, and more about Opossum in the article What is a circuit breaker?

Helm

There are many different ways to deploy Node.js applications to Kubernetes and OpenShift. Helm charts provide a particularly convenient way to create and share ways to build varied images. The article Deploy Node.js applications to Red Hat OpenShift with Helm shows you how to deploy a Node.js application using Helm, along with some recent additions to OpenShift.

Red Hat containers

This year also marked the release of Node.js 14 as a UBI (Universal Base Image) minimal image on Red Hat Enterprise Linux. Minimal images are typically used in conjunction with a larger build image. The larger builder image contains all the dependencies and tools needed for your application's build process, whereas the smaller runtime image contains just the dependencies needed to run your application.

Find out more by reading the article Optimize Node.js images with the UBI 8 Node.js minimal image.

Serverless

We provided content that showed how to use the Opossum circuit breaker with serverless functions, Node.js circuit breakers for serverless functions. The team also released a series of posts diving deeper into some of the different aspects of serverless functions. The series includes information on logging and debugging. The first two articles in the series can be found at the following links:

Node.js reference architecture

The Node.js reference architecture was a focus for our team last year. We gathered information and documented the experience from experts across Red Hat and IBM, based on our real-world Node.js developments and expertise. Although we still have a lot of work to do, we are proud of what we've covered so far and regularly point our internal teams and customers to the document as a resource to answer common questions.

Interested in some of the discussions that went into the reference architecture? The Introduction to the Node.js reference architecture, Part 1: Overview is a good place to start.

Conferences

The Red Hat team continued to participate in many conferences in 2021, with members of the team presenting talks, holding workshops, and assisting at virtual booths. This year again, the conferences were all virtual but still offered a great opportunity for us to connect with the wider community. Two major conferences for us this year were OpenJS World 2021 and NodeConf Remote, with our team presenting a number of talks at both conferences.

See the following articles covering our participation at these conferences:

Looking forward to 2022

In 2022, we'll continue to be active in the community, supporting the planned new major releases of Node.js 18 and 19. We'll also continue to develop our Node.js Reference Architecture. We hope 2022 is the year we get to return to in-person conferences and collaboration summits so that we can meet with the wider community face-to-face again.

To keep up with what Red Hat is up to with Node.js, visit the Node.js topic page on Red Hat Developer.

Happy new year from the Node.js team at Red Hat!

Last updated: September 20, 2023