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.
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.
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.
In 2021 the team released a variety of quick reference guides for Node.js developers:
- ECMAScript Modules Cheat Sheet
- Node.js Event Emitter Cheat Sheet
- npm CLI Cheat Sheet
- Node.js Cheat Sheet
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?
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.
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 serverless functions on Red Hat OpenShift, Part 1: Logging
- Node.js serverless functions on Red Hat OpenShift, Part 2: Debugging locally
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.
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!