Node.js hosting

Open source Node.js hosting


This article in Spanish.


 

Node.js it’s an open source environment focused on the development of web applications. Node.js applications are written in Javascript and can be executed in different platforms such as FreeBSD, Linux, Windows, OS X (macOS recently).

When we need to host a Node.js application, we have a range of possibilities from Dedicated Servers, Virtual Private Servers (VPS) to Platform as a Service (PaaS), but when it’s time to choose one, that’s when it gets tricky, each one of these provides something different; whether it’s performance, configuration flexibility, price, among other factors that we will discuss next.

Solutions such as Virtual Private Servers (VPS) allow you to configure everything at ease but at the same time it requires more knowledge and configuration time to leave them in optimum conditions.

On the other hand, Platform as a Service (PaaS) allow us to quickly deploy our applications without any or little configuration, although here the price may become a deciding factor, in addition, the default solution usually does not fit quite well to our needs and we end up adjusting our application so that it works as it should, increasing development costs.

This is where open source hosting providers play an important role. How? Thanks to the open source technologies that provide a wide range of options, access to many tools and frameworks that are publicly available.

Some of them are:

OpenShift

Openshift it’s a Platform as Service (PaaS) for applications created by Red Hat. As a cloud application platform, it manages the application stack so that the developer can focus on it’s code. OpenShift Origin it’s a collection of open source components that are used on the OpenShift platform as a service.

Cloudify

Cloudify is an open source TOSCA based cloud orchestration software platform. It automates the instalation, deployment and also post-deployment process such as monitoring, remediation and automatic scaling of the application stack.

Amazon OpsWorks

AWS OpsWorks is a configuration management service that uses Chef, an automation platform that treats server configurations as code. OpsWorks uses Chef to automate the way servers are configured, deployed and managed on Amazon Elastic Compute Cloud (Amazon EC2) instances or on-premise computing environments. OpsWorks has two options, AWS Opsworks for Chef Automate and AWS Opsworks Stacks.

Digital Garage

Digital Garage is a platform where developers can create applications in a fast and simple way using the web console, command line interface or integrated development environments. It provides an immutable platform based primarily on Docker containers to deploy and run applications and microservices.

All of these hostings are based on open source technologies, which allow us to extend them easily, find a lot of resources such as tutorials, documentation, examples and even complete solutions in the web, this ensures that we will always find any help in the community.

Let’s take for example github, there we can find a large quantity of open source projects, one of them could be Origin S2I NodeJS a repository that contains the S2I source code, a set of tools and workflow to create reproducible Docker images from the source code. Precisely this is an example of the advantages of using open source technologies, since this project can be used in Digital Garage or OpenShift, it allows to deploy an instance of Node.js in a container of Docker, which is great! We do not have to configure a web server, proxies or Node.js in particular.

Additionally, adjust our project to use Docker is really easy, just add a simple Dockerfile with the following content:

FROM ryanj/centos7-nodejs:current  
MAINTAINER ryanj <ryanj@redhat.com>  

If in our package.json we already have implemented a start script we don’t have to do anything else, otherwise we should just place our start command there and we are ready! Piece of cake right?

Docker what? In case you do not know it, Docker is an open source project that automates the deployment of applications inside software containers, providing an additional layer of abstraction and virtualization automation at the operating system level in Linux.

Thanks to the open source technologies and the providers that implement them, it’s easy for example to make our application works properly on our environment, run it in a staging environment in Openshift (For free) and deploy it to production in Digital Garage without even touch a single line of code of our application to adjust it to any of those environments.

Furthermore, many of them have really cheap plans and some of them are even free, allowing us to test our applications and perform demonstrations. On the other hand, being open source, they have a lot of communities that are constantly contributing to improve these tools, so you can always count that they will have the best practices used by the majority of the community.

If you are starting, free or economical is the best option, when your needs grow you will already have knowledge about how a Node.js web hosting works and if it is convenient to continue long term with your current hosting.