Cómo desplegar una aplicación NodeJS en un Servidor Cloud

NodeJS es un  un polivalente framewok para el desarrollo frontend que se ha convertido en uno de los recursos más extendidos entre los equipos técnicos.  Tras explicar cómo instalar NodeJS en un Servidor Cloud , hoy vamos más allá y te facilitamos las pautas básicas para realizar el proceso de despliegue de una aplicación NodeJS en un Servidor Cloud de Arsys.

Generalmente, este tipo de aplicaciones suelen consistir en servicios web, a los que se accede mediante HTTP y donde es habitual usar el framework Express. Las aplicaciones con Node y Express tienen una particularidad que las distingue de aplicaciones desarrolladas mediante un lenguaje como PHP. Se trata básicamente de la necesidad de levantar explícitamente los procesos sobre los cuales se ejecutarán, mientras que en PHP este tipo de situaciones se resuelve automáticamente, dado que requieren Apache para funcionar, quien es el encargado de gestionar los procesos.

Para nuestra tarea damos por entendido que tenemos ya un Servidor Cloud en Arsys. Si no es así, lo podemos crear, fácilmente y en cuestión de minutos, a través del panel de control de Cloudbuilder Next, algo muy sencillo y que tienes detallado en nuestro Centro de Ayuda. En este servidor deberemos instalar NodeJS, algo que también puedes consultar en este enlace.

Copia de archivos

El primer paso consiste en la copia de los archivos de la aplicación desarrollada en el servidor. Este proceso es bastante sencillo y se podría realizar de diversas maneras. Podemos usar por ejemplo SCP para la transferencia de ficheros al servidor, pero una alternativa muy práctica la tenemos gracias a Git.

Mediante Git simplemente necesitaríamos entrar en el servidor por SSH y clonar el repositorio de código del proyecto. Por supuesto, tenemos que instalar Git primero, vía los repositorios de aplicaciones de sistema operativo instalado. Por ejempl,o en Ubuntu o Debian:

apt-get install git

Luego podemos clonar el repositorio con Git, con un comando como:

git clone https://example.com/repositorio_a_clonar.git

Usar Git para el copiado de archivos nos otorga la habilidad de traernos actualizaciones del código mediante la operación pull, facilitando también el proceso de despliegue de las futuras versiones de la aplicación.

Ten en cuenta que la carpeta donde clonemos el repositorio es indiferente en principio, por lo que podrás escoger la que mejor te parezca. Esto se debe a que no existe un servidor como Apache, o cualquier otro software que nos marque la colocación de los archivos de aplicación en un punto determinado.

Generalmente, después de este procedimiento tendrás que instalar las dependencias de tu aplicación vía nmp o similar:

npm install

Levantar los procesos

Para poder ofrecer el servicio correspondiente necesitamos ejecutar la aplicación NodeJS instalada en el servidor. Para ello nos tenemos que dirigir a la carpeta donde tenemos los ficheros y ejecutar el comando para iniciarla, que generalmente será algo como:

node app

Ahora NodeJS levantará la aplicación basada en Express, que generalmente producirá un servidor que estará escuchando en un puerto. Sin embargo, antes de poder acceder a este servicio web desde fuera, necesitamos configurar el firewall.

Abrir el puerto en el firewall

Esta tarea la tenemos que realizar desde el panel de control de Cloudbuilder Next, desde la sección Red>Políticas de firewall.

Allí tenemos que crear una nueva política. En el formulario se solicitará asignar un nombre y una serie de reglas. Aquí dependerá del puerto que se haya definido al crear la aplicación Express. Suponiendo que sea el 3000, el formulario lo podemos rellenar como aparece en la siguiente imagen:

Luego pulsamos el botón + para crear la regla. Finalizamos pulsando el botón Crear de la derecha. Te puede resultar útil consultar el artículo Qué son las políticas de firewall y cómo se configuran en Cloudbuilder Next.

Una vez generada esta política de firewall, podemos configurar los servidores a los que se desea asignar. Desde la pantalla de configuración de la política, podemos elegir el servidor o servidores en la sección IP asignada. Quedará como la siguiente imagen:

También es posible indicar las políticas del firewall desde la pantalla de configuración del Servidor Cloud, una vez que lo hemos creado.

Una vez configurada la regla de firewall podemos acceder al servidor en producción, a través de la IP del servidor y el puerto usado en la aplicación: http://0.0.0.0:3000.

Otros detalles importantes

Hemos visto lo básico para poder arrancar la aplicación Node en un Servidor Cloud de Arsys, sin embargo, a partir de este punto se nos abren muchas posibilidades y configuraciones para ajustar el servidor de producción.

Por ejemplo, es importante la gestión de procesos en el servidor, para poder arrancar varias instancias de la aplicación, o iniciar de nuevo los procesos, en caso de reinicio del servidor o de fallos en la aplicación. Otra configuración habitual en despliegues NodeJS y Express consiste en usar Ngnix como proxy inverso. Pero todo eso son configuraciones más avanzadas que veremos más adelante.