StrongLoop has been staunch supporters of the Node community since day one. We’ve demonstrated this by being the biggest code contributor to Node, upgrading and developing new modules, plus supporting conferences and meetups. Core contributors Ben Noordhuis and Bert Belder have put together a video to discuss why they founded StrongLoop and to help articulate the mission we are on to serve the Node community and mobile developers looking to transform the Enterprise.
Even though it’s Summer, we’ve been pretty busy here at StrongLoop since our last release in June. Today, we are excited to announce some new features and modules designed to help developers with debugging apps, managing Node clusters and setting up private npm registries. If you’d like to see a deep dive of all the features highlighted in this post, register for our technical webinar on August 1.
Oh, and in case you missed our other announcement today, we’ve acquired NodeFly, the wildly popular Node.js performance monitoring service. We’ve changed the name of the service to StrongOps, to better match the naming scheme of our other products, and baked it into our distribution. There’s also some cool new features that have been added to the service like aggregated data views for all processes, CPU profiling and a native EventLoop statistics. If you want to learn more about the acquisition and what it means for new and existing users, read Al’s blog.
Advanced Node.js Debugging
Over the years, Node developers have come to rely on Danny Coates’ node-inspector module to debug their applications. While popular, the community has nonetheless been clamoring for additional features. Node-inspector has also been in need of an infrastructure refresh with Google abandoning support for WebKit awhile back. StrongLoop has stepped up and made a considerable investment in updating the work started by Danny to upgrade the GUI and add some killer features in the process.
Here’s a partial list of the new features in the debugger:
- The most popular enhancement request – the ability to set breakpoints in a file not yet loaded.
- A new GUI based on Google’s Blink Dev Tools with source files organized in a tree.
- You can now break on uncaught exceptions and have them handled by the domains error handler, set breakpoints and restore them after restarting a debugging session (note that this requires Node.js v0.11.3).
- Files are now loaded and parsed during a debug session and automatically added to the GUI.
- Quick navigation by jumping to files and functions easily with hot keys.
- Plus, the ability to hover over a variable to display and edit its value.
- Finally, we’ve added support for Source Maps which allow you to keep client-side code readable and debuggable despite it being combined and minified, all without it impacting performance.
Danny Coates has also decided to hand over the stewardship of node-inspector to StrongLoop. Here’s what he has to say:
Enabling Scalable, Clustered Node.js Apps
If you’re a developer who’s running a Node.js app in production, you’ve inevitably run into scalability issues and wrestled with how to best address them. Likely you’ve had to increase the number of simultaneous clients your app can handle by distributing the load among workers. For most developers, this has meant setting up a cluster.
StrongLoop has developed several modules to make the management and monitoring of a Node.js cluster a little easier. We’ve created an implementation of the socket.io store using Node’s native cluster messaging to provide an easy solution for running a socket.io server in a Node cluster. There’s also a implementation of connect session store using Node’s native cluster messaging. It provides an easy way for using sessions in connect or express-based applications running in a Node cluster. And finally, we’ve created a module for run-time management of a Node cluster. It is an extension of Node cluster, not a replacement. It works beside it to add a few basic features.
Updates to Private On-Premise npm Registries
We’ve enhanced the work we’ve done previously with private npm registries so that it is now even easier to install a local npm server behind the firewall. We all know there are already some write-ups on how to go about hacking your own solution together, but we wanted to make it as simple as possible with the least amount of dependencies, for example, without the need to install CouchDB or Redis.
For this release we’ve put together a solution suitable for small developer teams based on the work previously done by Mike Brevoort on the node-reggie module. StrongLoop has extended node-reggie with the most common elements of npm protocol to make it easy to use. According to Mike, “Any team building private source, non-trivial Node.js applications soon realizes the need for a private NPM registry. Setting up and maintaining your own CouchDb based replica of the public NPM registry is complex and time consuming. I created Reggie as an experimental, light weight alternative to the a full blown NPM registry. I’m excited to have Miroslav and StrongLoop’s interest and help in maintaining and progressing Reggie further!”
For more info on how to get started with node-reggie, check out Matt’s blog.
StrongOps (formally NodeFly) Now Bundled in StrongNode
As mentioned at the beginning of the post, the StrongOps (NodeFly) agent is now baked into the distribution. So, if you already have the StrongNode distro installed, it just takes “slc install strong-agent” to enable it. (Don’t forget to make it a require for you application.) If you want to learn more about the features in the latest release, check out Al’s blog.
New and Updated Supported Modules
Here’s a recap of the new and updated modules now available in the StrongLoop Node distribution:
- strong-agent – previously known as the NodeFly agent.
- node-inspector – a debugging interface for Node.js based on Blink.
- node-reggie – a lightweight alternative to a full blown npm registry.
- strong-mq – previously known as sl-mq, a message queue API with cluster integration, implemented over various message queues.
- strong-cluster-socket.io-store – implementation of socket.io store using Node’s native cluster messaging providing an easy solution for running a socket.io server in a Node cluster.
- strong-cluster-connect-store – an implementation of connect session store using Node’s native cluster messaging providing an easy way for using sessions in Connect/Express-based applications running in a Node cluster.
- strong-cluster-control – is a module for run-time management of a node cluster. It is an extension of Node cluster, not a replacement. It works beside it to add a few basic features.
- strong-store-cluster (key value store) – returns a collection object which lets you share data between Node processes.
For a complete list of support modules, check out the StrongNode products page.
New Download Formats Available
We also got feedback from the community asking for tarballs and an Amazon AMI of our distribution. Ask and you shall receive, tarballs and an AMI of our distribution are now available from the StrongLoop downloads page.
- What’s in the upcoming Node v0.12 release? Six new features, plus new and breaking APIs.
- Ready to develop APIs in Node.js and get them connected to your data? Check out the Node.js LoopBack framework. We’ve made it easy to get started either locally or on your favorite cloud, with a simple npm install.
- Need training and certification for Node? Learn more about both the private and open options StrongLoop offers.