fbpx

¿Por qué las grandes empresas utilizan Node.js?

¿Qué es Node.js?

Node.js es un entorno de ejecución de JavaScript de código abierto y orientado a objetos que se ejecuta directamente en el servidor, y para esto, hace uso de motor V8 JavaScript, el cual es propiedad de Google, y lo utiliza en su navegador Chrome.

Node.js llego a nosotros como una solución de escalabilidad para los servidores que tuvieran un tráfico muy elevado. Con otras tecnologías como Java o PHP, cada conexión hacia el servidor genera un nuevo hilo al que se le asignan aproximadamente 2 MB de memoria. Si hablamos de un sistema de 8 GB de RAM, nos daría un número máximo de 4’000 usuarios solamente. A medida que crece la base de clientes de un negocio o empresa necesitará soportar cada vez un número mayor de conexiones simultáneas, a lo que se necesitaran agregar más y más servidores, eso sin mencionar que podría llegar a darse la situación en la que un usuario utilice más de una conexión.

Por las razones anteriores los servidores presentaban un cuello de botella según el número de conexiones que eran capaces de soportar.

Node resuelve este problema cambiando la forma en que se realiza una conexión con el servidor. En lugar de generar un nuevo hilo para cada conexión y asignarle los 2 MB de memoria, cada conexión tan solo dispara una ejecución de evento, además, Node también afirma que nunca se quedará en un punto muerto y que su sistema puede soportar decenas de miles de conexiones.

Aquí tenemos un par de ejemplos de cómo trabaja Node:

Fila de tuits. Twitter recibe tuits y los escribe en una base de datos. Literalmente hay miles de tuits entrantes cada segundo y la base de datos posiblemente no puede seguir el ritmo de publicación de los tuits en horas pico. En este escenario Node se convierte en una pieza clave del sistema. Ya dijimos que Node puede manejar decenas de miles de tuits entrantes, bien, pues en vez de ir escribiendo tuit a tuit mientras llegan, Node reúne los tuits rápidamente y después los pasa a un sistema de cola en memoria, desde donde otro proceso separado puede escribirlos en la base de datos.

Otra situación. Ahora tenemos un servidor PHP normal que intenta manejar escriturasen la base de datos directamente, cada tuit causaría una pequeña demora mientras se escribe en la base de datos, porque mientras se realiza la escritura la base de datos estaría bloqueada. Un sistema diseñado de esta manera solo podría soportar unos 2’000 tuits entrantes por segundo, debido a la latencia de la base de datos. Lo que significa que a un millón de tuits por segundo se necesitarían 500 servidores. Node en su lugar, maneja cada conexión y no causa bloqueo, permitiendo capturar tantos tuits como se le puedan arrojar.

En ese caso, un sistema que utilice Node, podría manejar 50’000 tuits por segundo, que disminuiría drásticamente el número de servidores necesarios a tan solo 20.

Las estadísticas en los videojuegos. Cuando juegas algún videojuego online como lo sería un Call of Duty, los servidores se encargan de monitorear toneladas de información sobre lo que sucede en las partidas para poder producir las estadísticas a tiempo real. Después multiplica esto por los millones de personas que lo juegan en cualquier momento y tendrás una idea de la gigantesca cantidad de información que se genera con bastante velocidad.

En este escenario Node también es una solución perfecta, porque puede capturar los datos que están generando los juegos, procesarlos y luego ponerlos en una fila para que se escriban en una base de datos. Parecería poco eficiente dedicar todo un servidor a rastrear el número de balas que disparan los jugadores, pero si en lugar de ello el servidor rastrea casi todas las estadísticas del videojuego con Node, el proceso sería mucho más efectivo. Ahora veamos algunas de las ventajas que nos brinda Node.

Ventajas de utilizar Node

• Puede ejecutarse en una variedad de servidores, entre los que destacan Microsoft Windows, Mac OS X y Unix.
• Plataformas como Linkedin, eBay o PayPal fueron creadas con Node.js, lo que indirectamente es una muestra de su calidad.

• Su rendimiento ha sorprendido a programadores de todo el mundo, pues permite crear trabajos de gran calidad y disminuye el margen de experimentar errores técnicos.
• Su parecido con JavaScript hace que este lenguaje sea más fácil de aprender.

• Node.js abre todo un nuevo mundo de posibilidades para los programadores, a quienes permitirá crear aplicaciones altamente escalables e innovadoras, escribiendo códigos que permitan decenas de miles de conexiones simultáneas en un único servidor.
• Es ideal para manejar aplicaciones de alto tráfico de usuarios y eventos, como por ejemplo Twitter donde a cada segundo se envían cientos de miles de tuits.

• El desarrollo de aplicaciones y las aplicaciones en sí son mucho más rápidas, y por lo tanto el usuario puede acceder a una mejor experiencia de uso. Esto se debe a que Node.js utiliza el motor V8 de Google.
• El hecho de permitir a los desarrolladores escribir en JavaScript tanto del lado del servidor como del lado del cliente hace que la transferencia de datos entre estos puntos sea más rápida y por consiguiente que se reduzcan los tiempos de trabajo.

• Promueve el intercambio entre desarrolladores, quienes pueden inspirarse en las soluciones de otros colegas para sus propios trabajos o compartir sus logros con estos y así generar una comunidad colaborativa.
• Es la mejor opción del mercado para aplicaciones en tiempo real, como chats online o videojuegos.

¿Quieres aprender Node.js?

Empezar a programar en Node no es nada difícil, en realidad es muy sencillo si ya sabes usar JavaScript. Si ya tienes conocimientos de JavaScript puedes meterte de lleno en nuestro Curso Profesional de Node.js en el que aprenderás desde lo más básico hasta un nivel intermedio-avanzado de Node.

Pero si recién comienzas a programar y quieres empezar tu carrera de la mejor manera posible, entonces te recomendamos inscribirte en nuestro Curso Profesional de HTML y CSS, 2 de los 3 pilares de la web. El tercer pilar de la web es JavaScript, y es que también contamos con un Curso Profesional de JavaScript para que puedas familiarizarte a fondo con este lenguaje de programación.

Y si llegas a tener cualquier duda nosotros siempre te apoyaremos y estaremos para resolverla juntos, tan solo tienes que publicarla en Azul School, la red social de los programadores.

Artículos relacionados

Respuestas