Node.js is now available and supported on z/OS â€“ thatâ€™s a fact. In addition to all Node.jsâ€™s renowned advantages, Node.js on z/OS provides extra security and performance by leveraging the capabilities of IBM Z and taking advantage of co-location. Node.js on z/OS can also accelerate your digital transformation on the mainframe with tailored connectors to z assets. This blog will further articulate the benefits of running your Node.js applications on z/OS.
In many organizations, IBM Z is the platform of choice for powering business critical transactions and hosting enterprise data, due to its high level of security, speed and resilience. These critical assets commonly run on z/OS and use middleware such as DB2, CICS, IMS and VSAM, with applications written in COBOL, PL/I or other languages. Node.js has several common use-cases that may require access to the z critical assets; from hosting an API gateway/orchestrator, to web server, microservices applications and data access layer.
Consider such a Node.js application that requires access to z/OS data. You have the choice between hosting it on the z/OS or on a distributed platform. Hosting the Node.js application on z/OS will ensure you minimize high ETL, maintenance, development and transactional costs, and remove network latency from the equation.
Hosting the Node.js application on z/OS can be beneficial to your organization for several additional reasons. First, it will inherit the acclaimed capabilities of IBM Z. With full connection to the z critical assets, it will leverage the trusted environment of IBM Z and maximize the security and uptime of critical Node.js applications. Figure 1 depicts possible connectivity options to z/OS assets.
Second, co-locating the data and your Node.js application on the same system will keep the data secure. You can control which data will be exposed externally, while keeping all confidential data secure inside the Z platform. Nowadays, with the pervasive encryption capabilities of IBM z14, there is no better alternative for securing your data than on IBM Z. In addition, keeping the application close to the data will improve performance, throughput, and response time. We measured up to 2.5 times* better throughput and 60% faster response time to DB2 on z/OS, when hosting a Node.js application on Linux on z over Intel x86. These numbers would be even higher if the Node.js application resided on the same image as DB2 on z/OS for direct access.
Third, the IBM Z stack was designed with large I/O capacities to support high volumes of transactions. Node.js applications on z/OS exploit the underlying asynchronous I/O support in z/OS and hardware, to scale to thousands of connections with minimal overhead. We measured up to 2.5 times* better performance on Linux on z over Intel x86 on AcmeAir. Furthermore, Node.js on z/OS takes advantage of the latest hardware features available, including SIMD instructions on IBM z13, and new multiply instructions specifically designed to accelerate Node.js on IBM z14. This hardware-software synergy allows IBM to optimize the full stack from the hardware layer to the application layer, and delivers a highly available and performant Node.js platform.
Lastly, Node.js runtime on z/OS has the same capabilities as on distributed platforms. However, we have extended Node.js packaging and capabilities with z/OS specific extensions. For example, the Node.js runtime is available via SMP/E installation and Node.js applications can be invoked from OMVS and z/OS Unix System Services (USS) and/or as a started task via a JCL job. In the true spirit of an open-source community, contributors have started provided useful Node.js capabilities like: Node Accessor module to interface with MVS datasets https://github.com/IBM/zos-node-accessor, interacting with CICS via EXCI https://www.npmjs.com/package/cics-exci and Node.js module to interact with VSAM files https://www.npmjs.com/package/vsam.js. The ability to reuse resources to manage the critical assets and applications of your business is a fundamental value of Node.js and is now enhanced for z/OS community.
To summarize, IBM invests in making Node.js a first-class runtime on the z platform and is highly involved in the Node.js community. IBM has been a platinum sponsor of the Node.js foundation since its inception. In addition, IBM invests in Node.js on IBM Z, with full stack improvements and performance features. Also, it invests in making the integration of the Node.js applications on z/OS simple and smooth, by creating connectors to critical-assets on the system to provide best solutions for your environment.
Node.js is vastly adopted by enterprises for its simplicity, ease of development, scalability, full-stack solution, and skills availability. It became a crucial player in the digital transformation, allowing modularity, connectivity and agility. Hosting the Node.js on z/OS and leveraging the trusted environment of IBM Z, while taking advantage of co-location for high security and performance, will further empower your enterprise digital experience in the open and connected era.
Finally, IBM SDK for Node.js â€“ z/OS is eligible for container pricing. This enables you to scale Node.js workload without impacting workloads or directly impacting costs of other workload running on the system. And the best part is that you can try Node.js on z/OS for free! Download the 90-day free trial from IBM Marketplace. For more information please visit IBM SDK for Node.js. To get started, follow our developer journey here. It provides an introductory step-by-step tutorial to create a Node.js application based on LoopBack framework.
We are looking for sponsor users, so if this appeals to you please contact me, Iris Baron, at firstname.lastname@example.org or Roland Koo, the Node.js Offering Manager, at email@example.com.
We want to hear your feedback and learn more about ways to further improve the Node.js offering. Please comment below for any questions, concerns or requests you may have, or contact me directly at firstname.lastname@example.org.
* Controlled measurement environment, results may vary.