Herramientas y servidores para deploy en Node #programadorIO

Grabación del streaming emitido el 11/12/2017
Este lunes hangout: Qué tipos de servidores o infraestructura son adecuados para el deploy de aplicaciones basadas en NodeJS. Herramientas para entornos profesionales de Node.
11/12/2017 -

El lunes 11 de diciembre vamos a emitir un hangout dedicado a NodeJS, con compañeros que lo usan habitualmente en diversos proyectos en sus empresas. En esta ocasión vamos a explicar cómo se ponen en marcha, en producción, las aplicaciones realizadas con Node, bajo diferentes enfoques. Abordaremos diversas temáticas relacionadas con estos procesos, como servidores, herramientas y procedimientos diversos que pueden usarse atendiendo a las necesidades de las aplicaciones.

El deploy de aplicaciones NodeJS tiene una particularidad fundamental, que lo diferencia con respecto al realizado habitualmente con otros lenguajes populares como PHP. Básicamente se deriva de varios puntos fundamentales:

1.- Primero, aunque no sea lo más importante, hay que señalar que no es tan habitual disponer de NodeJS en un servicio de hosting clásico. Por ese motivo en la mayoría de las ocasiones no es suficiente contar con un alojamiento compartido, como el que sí serviría comúnmente para un sitio web montado con PHP, WordPress, etc.

2.- El segundo punto está más relacionado con la característica del lenguaje, ya que el flujo de ejecución de NodeJS dispone de un único hilo. Esto produce que, a la hora de desplegar un proyecto, se deba aplicar una estrategia distinta para su correcto funcionamiento, el escalado de aplicaciones, etc.

3.- En parte como consecuencia del punto anterior, hay que remarcar que habitualmente con NodeJS no se acostumbra a construir sitios web tradicionales, basados en contenido, sino servicios web. Este tipo de servicios, APIs REST, o microservicios basados en NodeJS requieren de unas características específicas que generalmente se deberán tener en cuenta.

Es por ello que, lo que sabemos sobre el despliegue de aplicaciones en general no siempre se aplica a Node. Es básicamente de lo que vamos a hablar en este hangout, abordando asuntos diversos como:

  • Alternativas de servidores que podemos usar en NodeJS: Dedicados, VPS, Cloud, Cloud functions...
  • Qué es Single Thread. Por qué NodeJS dispone de un único proceso de ejecución
  • Cómo instalar un proceso de manera perpetua en Node, alternativas populares, con sus ventajas y desventajas.
  • Qué tipo de proyectos se suelen hacer con Node, servicios, microservicios
  • Cómo se debe escalar aplicaciones en NodeJS.
  • Cómo sacar partido a la virtualización y cloud computing en general
  • Por qué Docker puede ser una alternativa interesante para aplicaciones NodeJS.
  • Qué se necesita para que "dockerizar" una aplicación y sacarle provecho a la herramienta.
  • Para qué nos puede ser esencial el uso de otras herramientas paralelas como Kubernetes.
  • Herramientas para el desarrollo moderno usadas en Node: Integración continua, control de versiones, tests, linters...

En general, trataremos un montón de asuntos importantes para los desarrolladores en NodeJS y que servirán también para las personas interesadas en conocer un poco más sobre este lenguaje y su uso en el ámbito de la web.