The Blog

 

On October 10th at Node+JS Interactive conference in Vancouver, I spoke about the work that IBMers have been doing as part the Node.js community over the last five years, as well as some of the new initiatives we’ve been driving over the last twelve months.

Highlights of my keynote included:

A brief history

IBM’s history with Node.js really started in 2013, when Node.js was an emerging but fast growing framework. We’d been tracking it for a while, had been hearing about it increasingly from clients, and had teams inside IBM that were starting to use it. Because of its growing popularity, we started work to bring Node.js to some of the IBM provide platforms, including AIX, Linux on POWER, Linux on Z, and Z/OS (IBMs mainframe platform).

That required a significant effort in both the V8 JavaScript engine that powers Node.js and libuv that provides its I/O, networking, and concurrency. From there, the next natural steps were in contributing to the Node.js core libraries and then onwards to the Node.js Working Groups.

To date, current IBMers have contributed almost 8,000 commits and over 4.5 million lines of code to the Node.js projects – and that doesn’t include wider efforts in the Node.js ecosystem through frameworks like LoopBack and contributions to Express.js, which it depends on.

Image 1

Adding more value to the Node.js community

While we continue to contribute in those areas, we are also starting to look at additional areas where we can add value to the success of Node.js. Our areas of focus largely target providing assets, tools, and technologies to make it easier to create, deploy, and scale cloud-native Node.js applications.

To that end, we’ve completed or contributed to the following projects in 2018:

  • Removal of the IBM SDK for Node.js While removing the IBM SDK for Node.js might sound like not doing something, its removal is only possible because all of the work required to enable Node.js on IBMs platforms has now been pushed up-stream into the community repositories. We are now in a position to build, test, and release Node.js for the IBM platforms as part of the community.

    All of our team members now work directly in the community build and release workgroups, and we directly support those community builds, including providing commercial support for any LTS version of Node.js that’s downloaded from Nodejs.org.

  • Module Insights Module Insights makes it easy to select, validate, and verify which NPM modules you should use in your projects. It’s a free-to-use test, analysis, and analytics framework that makes it easy to obtain information about a subset of NPM modules (the subset is currently small as it’s in beta). This includes information on a module’s current test status against every LTS version of Node.js on a large range of platforms, information on its code coverage, its license (including the license of all of its dependencies), and whether or not it has signed up the to the Module LTS policy.
  • Module LTS Policy The Module LTS Policy is an LTS policy for NPM modules that aims to reduce the frequency with which applications need to undergo migrations. The Module LTS policy aligns the LTS lifecycles of the module to the lifecycles of Node.js itself. This means that you should only have to update a major version of a module that adheres to the Module LTS policy when you already have to update a major version of Node.js itself.
  • Cloud Native JS Nearly all Node.js applications are now deployed to the cloud, but only 12% of those are “cloud native” and use the full potential of modern cloud computing platforms.

    CloudNativeJS is an open source community project that provides best-practices, assets, and tools to make it easier to integrate open source technologies from the Cloud Native Computing Foundation (CNCF). These include providing best-practice Dockerfiles for building Docker images, Helm Charts to deploy your application to Kubernetes, as well as modules that provide Health Checks, Prometheus Metrics, and OpenTracing-based request tracking.

Adding value to the Node.js community

LoopBack 4 and OASGraph releases

In addition to the above work, we also made two major announcement at Node+JS Interactive: the availability of LoopBack 4 and the release of OASGraph.

Introducing LoopBack 4

LoopBack 4 is not just an evolutionary step from LoopBack 3, it’s is a radical step forward that provides significant new enterprise-grade features to this API framework.

LoopBack 4 fully leverages the power of TypeScript and ES2017, making it much safer and easier to write scalable async applications. It also has fully integrated support for OpenAPI/Swagger, making it easier to build fully compliant best-practice REST APIs, and to test those directly in your browser using the OpenAPI Explorer.

Introducing OASGraph

In addition to LoopBack 4, we released OASGraph. OASGraph can take any REST API with an OpenAPI definition and give it a GraphQL schema and endpoint, meaning that you get dual REST and GraphQL support out-of-the box. This can either be used as a standalone gateway working with any existing OpenAPI documented REST API, or as an embedded component inside a new LoopBack 4 application.

All of these projects are open source, community focused, and free to use.

New LoopBack projects

Watch the keynote

Watch Chris Bailey’s keynote from the Node+JS Interactive conference.