Node.js - En Español

Open source Node.js hosting


Esté artículo en Inglés.

Las aplicaciones de Node.js son escritas en JavaScript y pueden ejecutarse en diferentes plataformas como FreeBSD, Linux, Windows, OS X (macOS recientemente), Node.js es un entorno de código abierto enfocado en el desarrollo de aplicaciones web.

Cuando se tiene la necesidad de alojar una aplicación Node.js tenemos un gran abanico de posibilidades que van desde Servidores dedicados, Servidores virtuales privados (VPS) hasta Plataformas como servicio (PaaS), pero a la hora de elegir es donde viene el problema, cada uno brinda algo diferente; ya sea rendimiento, flexibilidad de configuración, precio, entre otros factores que veremos a continuación.

Soluciones como los servidores virtuales privados (VPS) permiten configurar todo a gusto pero al mismo tiempo requiere de mayor conocimiento y tiempo de configurarlos para dejarlos en condiciones óptimas.

Por otro lado las plataformas como servicio (PaaS) nos permiten desplegar rápidamente nuestras aplicaciones sin nada o poca configuración, aunque aquí el precio puede llegar a ser un factor, además, la solución por defecto por lo general no se ajusta bien a nuestras necesidades y terminamos ajustando nuestra aplicación para que funcione como debería, aumentando los costos de desarrollo.

Aquí es donde los proveedores de alojamiento de código abierto juegan un papel importante, ¿Cómo? gracias a las tecnologías de código abierto que brindan un amplio rango de opciones, acceso a muchas herramientas y frameworks que están disponibles públicamente.

Algunos de ellos son:

OpenShift

OpenShift es una Plataforma como Servicio (PaaS) para aplicaciones creada por Red Hat. Como plataforma de aplicación en la nube, gestiona la pila de aplicaciones para que el desarrollador pueda centrarse en su código. OpenShift Origin es una colección de componentes de código abierto que se utilizan en la plataforma OpenShift como un servicio.

Cloudify

Cloudify es una plataforma de software de orquestación de nube basada en TOSCA de código abierto. Automatiza el proceso de instalación, despliegue y también post-despliegue como el monitoreo, remediación y escalado automático de la pila de aplicaciones.

Amazon OpsWorks

AWS OpsWorks es un servicio de administración de configuraciones que utiliza Chef, una plataforma de automatización que trata las configuraciones de servidor como código. OpsWorks usa Chef para automatizar la manera en la que los servidores se configuran, implementan y administran en las instancias de Amazon Elastic Compute Cloud (Amazon EC2) o en entornos de computación on-premise. OpsWorks tiene dos opciones, AWS Opsworks for Chef Automate y AWS Opsworks Stacks.

Digital Garage

Digital Garage es una plataforma donde los desarrolladores pueden crear aplicaciones de forma rápida y sencilla utilizando la consola web, la interfaz de línea de comandos o entornos de desarrollo integrados. Proporciona una plataforma inmutable basada principalmente en contenedores Docker para desplegar y ejecutar aplicaciones y microservicios.

Todos estos hostings se basan en tecnologías de código abierto, lo que permite extenderlos fácilmente, encontrar muchos recursos como tutoriales, documentación, ejemplos y hasta soluciones completas en la web, esto garantiza que siempre se conseguirá ayuda en la comunidad.

Por ejemplo en github podemos conseguir gran cantidad de proyectos de código abierto, uno de ellos puede ser Origin S2I NodeJS un repositorio que contiene la fuente para S2I un conjunto de herramientas y flujo de trabajo para crear imágenes Docker reproducibles a partir del código fuente. Justamente este es un ejemplo de las ventajas de usar tecnologías de código abierto, ya que este proyecto puede ser usado en Digital Garage o en Openshift, permite desplegar una instancia de Node.js en un contenedor de Docker, lo cual es genial! no se debe configurar servidor web, proxies o Node.js en particular.

Y ajustar nuestro proyecto a usar Docker es facilísimo, basta agregar un Dockerfile sencillo con el siguiente contenido:
FROM ryanj/centos7-nodejs:current
MAINTAINER ryanj ryanj@redhat.com

Si en nuestro package.json ya tenemos implementado un script start no tenemos que hacer nada, en caso contrario solo debemos colocar allí nuestro comando de arranque y ¡Estamos listos! ¿Fácil no?

¿Docker qué? por si no lo conoces, Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software, proporcionando una capa adicional de abstracción y automatización de virtualización a nivel de sistema operativo en Linux.

Gracias a las tecnologías de código abierto y a los proveedores que las implementan, es fácil por ejemplo, hacer que nuestra aplicación funcione correctamente en nuestro ambiente, ejecutarla en un ambiente de staging en Openshift (gratuito) y desplegarla a producción en Digital Garage sin siquiera tocar una línea de código de nuestra aplicación para ajustarla a cualquiera de esos ambientes.

Además muchos cuentan con planes bastantes económicos e inclusive gratuitos. permitiéndonos probar nuestras aplicaciones y realizar demostraciones. Además de eso, al ser de código abierto, cuentan con comunidades que contribuyen constantemente a mejorar estas herramientas, por lo que siempre contarás con las mejores prácticas empleadas por la mayoría de la comunidad.

Si estás empezando, gratis o económico es lo mejor, cuando tus necesidades crezcan ya tendrás conocimientos sobre cómo funciona un hosting de Node.js y si es conveniente continuar a largo término con tu hosting actual.