With the recent launch of IBM Cloud Private 2.1, now is a better time than ever to check it out for yourself, especially if you’re looking to build and deploy Node.js applications.

This short blog post refers to the provided Node.js sample application where you can find plenty of details on monitoring, creating and deploying applications. Before starting it’ll be useful¬†to check out all of the benefits of using Kubernetes¬†and there’s plenty of helpful¬†material on YouTube to learn with.

TL;DR version?

  • Install IBM Cloud Private (can be on your laptop with Vagrant)
  • View the catalog, find the “ibm-nodejs-sample” tile, click to install it then view it (it’ll be a deployed service)
  • Go on to create, deploy and monitor your own Node.js applications on IBM Cloud Private

The motivation

In addition to the benefits of running applications on top of Kubernetes, IBM Cloud Private has the following benefits:

  • A catalog of Helm charts: applications or smaller microservices that you can deploy to your own private cloud
  • Multi-platform: workers in your private cloud can can be launched on Linux x86-64, Linux on Power LE and Linux on Z systems
  • The community edition is free to pick up and try!

For Node.js, think of it as having your own cloud running on your hardware (and so you can shrink/extend your cloud as you wish, and lock it down if desired). Depending on your operating system, you can run this with Vagrant on your own laptop too. The install process for IBM Cloud Private itself consists of retrieving and loading Docker images and a few shell commands.

Material to get you started

You’ll know you’re ready to bring your Node.js applications to IBM Cloud Private when you see this dashboard:


IBM Cloud Private dash

 

Installing applications, including the Node.js sample

You can find our Node.js sample in the catalog, accessible from the main menu of IBM Cloud Private:


Node.js sample in the catalog

Installing the sample is as simple as clicking on its tile, choosing a release name (anything you’d like), further configuring the sample (optional), then clicking “Install”.

On success, you can click to view the Helm release:


The helm release information

You can then click on the release name hyperlink (I creatively named the release “blog“) and you’ll see something like this representing the service information for our sample. This is how we’ll actually access the sample.


The deployed sample as a Kubernetes service

See that “Node port” hyperlink above? The sample will be running on a pod within your IBM Cloud Private instance and this is how you can access it via the endpoint we’ve provided.¬†Go ahead and click the hyperlink¬†to launch the sample in the browser.

To view information about your newly deployed sample, you can use the IBM Cloud Private menu again to select “Workloads” and then “Deployments”. Look for the sample application (labelled “blog-ibm-nodejs-sample” in my case) and you’ll see something like this:


Sample as a pod

Note that you can also install the application using a¬†CLI (Helm directly, which is bundled with the IBM Cloud Developer Tools for example) if that’s what you’d prefer. Instructions for how to do this and the code for the sample can be found all on Github.

There’s also a plugin you can download for IBM Cloud Private itself (although not mandatory): follow¬†the¬†install steps and browse the command reference list for more details.

Conclusion

Within the sample you’ll find plenty of information – so feel free to clone, modify and deploy it, push your own great Node.js applications to your IBM Cloud Private instance, and¬†explore the benefits of Kubernetes.

Add horizontal pod-autoscaling, use Prometheus and Zipkin for monitoring resources across pods and end-to-end tracing respectively, explore the use of load balancers and liveness probes, and play around with those cool ideas like Blue-Green deployments, A/B testing and Canary Releases within the comforts and freedom of your own private cloud.

Further reading

Join The Discussion

Your email address will not be published. Required fields are marked *