Introducing IBM Node.js Tools for Eclipse Beta

IBM has recently added a lightweight collection of tools in Eclipse, enabling Node.js developers to rapidly build and deploy JavaScript applications targeting the Node.js environment.

Complimenting the existing IBM offerings, such as Bluemix tools for Eclipse and Websphere Developer Tools for Enterterprise Java Development, the Node.js tools for Eclipse provide:

Read more

Announcing StrongLoop API Gateway Powered by Node.js

This morning, we announced the private beta of StrongLoop Gateway. We’ve never seen so much interest in a product that we haven’t even released or promoted. Of course, for any business, this is a “good problem” to have. It’s been rewarding to validate that the StrongLoop Gateway will meet the needs of so many people. It’s also rewarding to see that we have an advantage over competitors because the StrongLoop Gateway is tailored to the needs of API development and not – management.

Let’s start from the beginning and explain the overloaded term “gateway.”

Overview

An API gateway externalizes, secures, and manages APIs. It is an intermediary between API consumers (clients) and backend API providers (API servers).

Screen Shot 2015-07-29 at 2.13.14 PM

In this intermediary position, the API gateway performs several functions depending on the needs of the enterprise, as summarized in the table below.

Function API Gateway Role
Security Acts as both provider and delegator to authentication, authorization, and auditing (AAA) sources within the enterprise as the first intercept to establish identity.
Mediation and Transformation Mediates between protocols and transforms portions of the API payload (both header and body) for clients that have fixed and/or specific requirements for consumption.
Infrastructure QoS Performs infrastructure-level API consumption functions required by client such as pagination, throttling, caching, delivery guarantee, firewall,  and so on.
Monitoring and Reporting Instruments APIs to fulfill service-level agreements (SLAs) through the monitoring of APIs and also injects metadata to report on API usage, health, and other metrics.
Aggregation Composes coarse-grained APIs (mashups) from fine-grained micro-APIs to fulfill specific business case operations through dynamic invocation and construction.
Virtualization A layer of abstraction that virtualizes API endpoints and acts  as a reverse proxy to API server host instances for high availability, security and scale.

Read more

Building Better npm Modules with Travis and Coveralls

Part of what makes Node.js so great is the wide variety of high-quality modules available on npm. But, way too many modules don’t take advantage of testing tools like Travis and Coveralls. Travis is a lightweight continuous integration tool that runs tests on every commit to your GitHub repo, even pull requests. Coveralls is a test coverage reporter that you can integrate with Travis. These tools improve your workflow, make reviewing pull requests easier, and make users more confident in your module’s quality. In this article, you’ll learn how to integrate these tools with mocha and istanbul for a simple Node project.

This example will use a JavaScript implementation of the well-known “fizzbuzz” programming challenge. Fizzbuzz is far from a complex module, but it’s just complex enough to get real test coverage results. To walk through this example, fork it on GitHub. The actual code is below.

Read more

How to Hire Great Node.js Developers

Startups are my passion, managing an inspired group of developers is what I do. I do it at Strongloop, and I’ve done it in the past at a series of startups. Startups pose their own unique challenges for hiring – the budget is tight, the deadlines even tighter. Combine this with open source development, and a relatively young technology framework like Node.js, and all of a sudden hiring the right team presents a unique challenge.

As with any new and fast-adopting technology framework, the challenge is resourcing your engineering team with productive talent from day one.  Before leaping to conclusions about turning Javascript devs into a Node.js factory, lets take a look at the core questions around Node and context in which you want to develop your products. In summary, the core issues are:

  • Node.js has an event-based programming paradigm
  • The web is going to smaller sensor/message-based infrastructure
  • In the end, the majority of the problems we are trying to solve still need to be powered by scalable backend architectures as opposed to UI.

Lets analyze each of these in turn and expose the challenges they present. That should shed light on what to look for in a candidate.

Read more

Automatic Node.js Clustering with Log Aggregation

As if slc run --cluster cpu wasn’t awesome enough for automagically scaling your app in a multi-process cluster, it now aggregates your worker logs for you when clustering!

In this post I’ll talk about the new logging features in strong-supervisor v0.2.3 (the module behind slc run). slc run is the runtime management utility StrongLoop provides on top of the Node executable.

I’ll start by explaining why it works the way it does and then walk through a short example starting from simple dev-time logging through to mature production logging to a remote log aggregator, all without modifying the original code or using any log frameworks. To get started just run slc update to get the latest version.

Read more