Save time managing and deploying your node.js app

Nodejitsu has joined GoDaddy

We are excited to join GoDaddy to help spearhead their largest Node.js product: Website Builder. Please read our blog post to learn more about customer transition plans and our continued support for Open Source within the node community.

Want to know all the details?
Read the full blog post or read the GoDaddy Announcement.

Major new Features at Nodejitsu

About the author

nodejitsu nodejitsu

Other popular posts

- Scaling Isomorphic Javascript Code - Keep a node.js server up with Forever - Package.json dependencies done right
- npm cheat sheet - 6 Must Have Node.js Modules

Nodejitsu has been around for three years. In that time we've built all of our infrastructure from the ground up. This dedication to building infrastructure software has given us a unique perspective on what works and what doesn't work.

We saw the deficiencies in our current implementation and decided to redesign the core deployment process by removing haibu and moving to an agentless architecture. Our own Maciej Malecki will explain the technical details around what all of this means at a low-level in a follow-up post next week, but for now here is what it means to our users:

  • Support for node 0.10.x: We now support node@0.10.x while still supporting older versions of node.
  • Streaming Logs with jitsu logs tail: Our new process monitor, forza, now sends logs and metrics to a new streaming endpoint. You can tail you live logs with jitsu logs tail.
  • No more ECONNREFUSED errors or zombie processes: By moving from haibu to an agent-less architecture you will never see an ECONNREFUSED error or a zombie application process again!
  • More efficient memory usage: Because forza is written entirely in C and libuv there is no-longer any additional memory overhead from haibu.
  • Metrics collection: We are now collecting metrics for every application on the Nodejitsu platform. Look for these features being integrated in WebOps and jitsu soon!

These features are live right now! Why don't you go try them out?

Important note: these features will only be enabled when you redeploy your application. That means if you're application is running right now, you should redeploy it using "jitsu deploy". We will be doing scheduled maintenance in two weeks for all applications that have not yet switched over.

Using node 0.10.x on Nodejitsu

You asked for node@0.10.x support and we listened! We know that not having support for 0.10.x over these last few months has been a problem for our users. It has prevented them from using new node libraries like hapi. Thankfully, that is a thing of the past.

The versions of node that are available on Nodejitsu are now:

  • 0.6.21
  • 0.8.26
  • 0.10.21

You can deploy to Nodejitsu using v0.10.x by updating your package.json. You should always use

    "engines": {
      "node": "0.10.x"

Once you've updated your package.json you can deploy your application as always using jitsu:

  $ jitsu deploy

There are two other details you should be aware of:

  • Always use wildcards: You must use the wildcard engine notation 0.10.x or ~0.8.10 in the engines property because Nodejitsu only runs the latest stable releases of Node.js
  • What happens if no engines?: If no engines are specified in your package.json we will continue to use 0.6.x. _We plan on changing this in the near future so if you're still running on 0.6.x make sure to do so explicitly!.

New Streaming Logs!

This is a feature that has been in high demand by our users. We know that it is important for debugging and conflict resolution to be able to tail the logs of your application processes at Nodejitsu. You can now do this with jitsu logs tail.

  $ jitsu logs tail
  info:    Welcome to Nodejitsu indexzero
  info:    jitsu v0.12.15, node v0.10.15
  info:    It worked if it ends with Nodejitsu ok
  info:    Executing command logs tail
  info:    Attempting to load logs for yayyy-logs/package.json
  info:    Listing logs for yayyy-logs
  [08/14 03:57:28 EDT][out] 200 url: /
  [08/14 03:57:28 EDT][out] 200 url: /static/fav.ico
  [08/14 03:57:28 EDT][out] 200 url: /login
  [08/14 03:57:28 EDT][out] CouchDB call succeeded
  [08/14 04:14:59 EDT][out] Request Recieved
  [08/14 04:14:59 EDT][out] 200 url: /
  [08/14 04:14:59 EDT][out] 200 url: /static/fav.ico
  [08/14 04:14:59 EDT][out] 200 url: /login
  [08/14 04:14:59 EDT][out] CouchDB call succeeded
  [08/14 04:24:15 EDT][out] Request Recieved
  [08/14 04:24:15 EDT][out] 200 url: /
  [08/14 04:24:15 EDT][out] 200 url: /static/fav.ico
  [08/14 04:24:15 EDT][out] 200 url: /login
  [08/14 04:24:15 EDT][out] CouchDB call succeeded
  [08/14 04:39:36 EDT][out] Request Recieved
  [08/14 04:39:36 EDT][out] 200 url: /

Right now this feature is in beta, but it has gone through extensive testing by the jitsuka. We will be monitoring it's performance closely over the next few weeks to ensure that it is as production-ready as we think it is!

Application Metrics & What's Next

In addition to send logs for stdout and stderr our new process monitor, forza, sends process metrics about your application to an endpoint which then stores them in graphite. This is very much the focus of what's next on our roadmap. We promise it's coming soon! So check back soon for more new features and awesomeness at Nodejitsu!