Creación y acoplamiento de una aplicación Node.js con arquitectura sin estado con la ayuda de Kinsta

 

 

 


Índice
  1. Creando una aplicación Node.js
    1. Paso 1: Inicialice el proyecto Node.js
    2. Paso 2: Instalar Express
    3. Paso 3: crea tu aplicación sin estado
  2. Arquitectura sin estado
  3. Dockerizando la aplicación
    1. Paso 1: instale Docker
    2. Paso 2: crea un archivo Docker
    3. Paso 3: construir y ejecutar el contenedor Docker
  4. Más ventajas sorprendentes de acoplar una aplicación Node.js
    1. Gestión de dependencia simplificada
  5. Alojamiento de contenedores con Kinsta
  6. Conclusión

Dockerizar sus aplicaciones Node.js puede conducir a un éxito rotundo: ofrece coherencia, depuración sencilla y gestión de dependencias sin complicaciones. Cuando aloja este contenedor en Kinsta, también se beneficia de un rendimiento de alta velocidad, una seguridad sólida y una escalabilidad de primer nivel. Al combinar estos dos, seguramente te lo pasarás en grande mientras navegas sin problemas por los mares del desarrollo.

 

Este artículo ha sido apoyado amablemente por nuestros queridos amigos de Kinsta , quienes están comprometidos con la mejor experiencia para desarrolladores y empresas, creando rendimiento y facilidad de uso. ¡Gracias!

En este artículo, intentaremos crear una aplicación Node.js sin estado y acoplarla, haciendo que nuestro entorno de desarrollo sea limpio y eficiente. A lo largo del camino, exploraremos los beneficios de alojar contenedores en plataformas como Kinsta, que ofrece un entorno de alojamiento administrado y al mismo tiempo admite contenedores Docker, así como alojamiento de aplicaciones y bases de datos, lo que permite a los usuarios implementar y escalar sus aplicaciones con más flexibilidad y facilidad.

Creando una aplicación Node.js

En caso de que sea nuevo en el código, Node.js es una plataforma construida sobre el motor JavaScript de Chrome que permite a los desarrolladores crear aplicaciones del lado del servidor usando JavaScript. Es popular por su naturaleza liviana, rendimiento eficiente y capacidades asincrónicas.

Las aplicaciones sin estado no almacenan ninguna información sobre la sesión del usuario, lo que proporciona una forma limpia y eficiente de administrar sus aplicaciones. Exploremos cómo crear una aplicación Node.js de esta manera.

Paso 1: Inicialice el proyecto Node.js

Primero, cree un nuevo directorio y navegue hasta él:

mkdir smashing-app cd smashing-app

A continuación, inicialice un nuevo proyecto Node.js:

npm init -y

Paso 2: Instalar Express

Express es un marco de aplicación web Node.js mínimo y flexible que proporciona un conjunto sólido de funciones para aplicaciones web y móviles. Instale Express con el siguiente comando:

npm install express

Paso 3: crea tu aplicación sin estado

Cree un nuevo archivo llamado "app.js" y agregue el siguiente código:

const express = require("express");const app = express();const port = process.env.PORT || 3000;app.get("/", (req, res) = { res.send("Welcome to our smashing stateless Node.js app!");});app.listen(port, () = { console.log(`Smashing app listening at https://localhost:${port}`);});

Exploremos esto un poco. Esto es lo que hace cada línea:

  • const express = require("express");
    Esta línea importa el marco Express.js al código, haciéndolo disponible para su uso.
  • const app = express();
    Esta línea crea una instancia del marco Express.js llamada aplicación. Esta instancia de aplicación es donde definimos las rutas y configuraciones de nuestro servidor.
  • const port = process.env.PORT || 3000;
    Esta línea establece el número de puerto para el servidor. Busca un número de puerto establecido en una variable de entorno llamada PORT. Si esa variable no está configurada, el valor predeterminado es el puerto 3000.
  • app.get("/", (req, res) = {}
    Esta línea define una ruta para el servidor cuando se realiza una solicitud GET a la URL raíz (“/”).
  • res.send("Welcome to our smashing stateless Node.js app!");
    Esta línea envía la cadena "¡Bienvenido a nuestra espectacular aplicación Node.js sin estado!" como respuesta a la solicitud GET realizada a la URL raíz.
  • app.listen(port, () = {})
    Esta línea inicia el servidor y escucha en el número de puerto especificado anteriormente.

Ahora, ejecuta la aplicación con:

 

node app.js

Su aplicación Node.js ahora se está ejecutando en https://localhost:3000.

Arquitectura sin estado

La arquitectura sin estado significa que el servidor no almacena ninguna información sobre la sesión del usuario, lo que genera varios beneficios:

  • Escalabilidad
    Las aplicaciones sin estado pueden escalar horizontalmente fácilmente agregando más instancias sin preocuparse por los datos de la sesión.
  • Simplicidad
    Sin datos de sesión que administrar, la lógica de la aplicación se vuelve más simple y fácil de mantener.
  • Tolerancia a fallos
    Las aplicaciones sin estado pueden recuperarse rápidamente de fallos porque no hay ningún estado de sesión que perder o recuperar.

Bien, tenemos nuestro servidor Node.js ejecutándose localmente, pero ¿cómo podemos empaquetarlo para que cualquiera pueda ejecutarlo? ¿Incluso las personas que no tienen Node.js instalado y lo ejecutan en cualquier plataforma? Ahí es donde entra Docker.

Dockerizando la aplicación

Docker es una herramienta que ayuda a los desarrolladores a crear, enviar y ejecutar aplicaciones en un entorno en contenedores. Simplifica el proceso de implementación de aplicaciones en diferentes plataformas y entornos.

Paso 1: instale Docker

Primero, asegúrese de tener Docker instalado en su máquina. Puedes descargarlo aquí .

Paso 2: crea un archivo Docker

Cree un nuevo archivo llamado Dockerfile en el directorio de su proyecto y agregue el siguiente código:

FROM node:18-alpineWORKDIR /usr/src/appCOPY package*.json ./RUN npm installCOPY . .ENV PORT=3000CMD [ "node", "app.js" ]

Una vez más, echemos un vistazo a lo que esto hace con un poco más de detalle:

  • FROM node:18-alpine
    Esta línea especifica la imagen base para esta imagen de Docker. En este caso se trata de la imagen oficial de Node.js Docker basada en la distribución Alpine Linux. Esto le da Node.js al contenedor Docker, que es como una “máquina virtual” pero más liviana y eficiente.
  • WORKDIR /usr/src/app
    Esta línea establece el directorio de trabajo dentro del contenedor Docker en /usr/src/app.
  • COPY . .
    Esta línea copia todos los archivos del directorio local al directorio de trabajo en el contenedor Docker.
  • RUN npm install
    Esta línea instala las dependencias especificadas en el package.jsonarchivo.
  • ENV PORT=3000
    Usando esta directiva, hacemos que la aplicación sea más configurable usando la variable de entorno PORT. Este enfoque proporciona flexibilidad y permite a los proveedores de alojamiento como Kinsta conectar la aplicación a su infraestructura sin problemas.
  • CMD [ "node", "app.js" ]
    Esta línea especifica el comando que se ejecutará cuando se inicie el contenedor Docker. En este caso, ejecuta el comando node con app.js como argumento, que iniciará la aplicación Node.js.

Entonces, este Dockerfile crea una imagen de Docker que configura un directorio de trabajo, instala dependencias, copia todos los archivos en el contenedor, expone el puerto 3000 y ejecuta la aplicación Node.js con el comando node. Mazos del Hearthstone

 

Paso 3: construir y ejecutar el contenedor Docker

Ahora construyamos esto y lo ejecutamos localmente para asegurarnos de que todo funcione bien.

docker build -t smashing-app

Cuando esto tenga éxito, ejecutaremos el contenedor:

docker run -p 3000:3000 smashing-app

Analicemos esto porque -p 3000:3000puede parecer confuso. Esto es lo que está pasando:

  1. docker runes un comando utilizado para ejecutar un contenedor Docker.
  2. -p 3000:3000es una opción que asigna el puerto 3000en el contenedor Docker al puerto 3000en la máquina host. Esto significa que 3000se podrá acceder al puerto del contenedor desde la máquina host en el puerto 3000. El primer número de puerto es el número de puerto de la máquina host (la nuestra) y el segundo número de puerto es el número de puerto del contenedor.
  3. Podemos 1234asignar el puerto de nuestra máquina al puerto 3000del contenedor y luego localhost:1234señalaremos container:3000y seguiremos teniendo acceso a la aplicación.
  4. smashing-appes el nombre de la imagen de Docker en la que se basa el contenedor, la que acabamos de crear.

Su aplicación Dockerized Node.js ahora debería estar ejecutándose en https://localhost:3000.

Al ejecutar el contenedor Docker, también podemos pasar un valor de PUERTO personalizado como variable de entorno:

docker run -p 8080:5713 -d -e PORT=5713 smashing-app

Este comando asigna el puerto 5713 del contenedor al puerto 8080 del host y establece la variable de entorno PORT en 5713 dentro del contenedor.

El uso de la variable de entorno PORT en Dockerfile permite una mayor flexibilidad y adaptabilidad al implementar la aplicación Node.js en varios proveedores de alojamiento, incluido Kinsta .

Más ventajas sorprendentes de acoplar una aplicación Node.js

Dockerizar una aplicación Node.js aporta varias ventajas a los desarrolladores y al ciclo de vida general de la aplicación. A continuación se muestran algunos beneficios clave adicionales con ejemplos de código:

Gestión de dependencia simplificada

Docker le permite encapsular todas las dependencias dentro del propio contenedor, lo que facilita su administración y uso compartido entre los miembros del equipo. Por ejemplo, digamos que tiene un archivo package.json con una versión específica de un paquete:

{ "dependencies": { "lodash": "4.17.21" }}

Al incluir esto en su Dockerfile, la versión específica de lodash se instala y empaqueta automáticamente dentro de su contenedor, lo que garantiza un comportamiento consistente en todos los entornos.

 

Fácil control de versiones de la aplicación

Docker le permite etiquetar y versionar las imágenes de su aplicación, lo que facilita volver a versiones anteriores o implementar diferentes versiones en paralelo. Por ejemplo, si desea crear una nueva versión de su aplicación, puede etiquetarla usando el siguiente comando:

docker build -t smashing-app:v2 .

Luego puedes ejecutar varias versiones de tu aplicación simultáneamente:

docker run -p 3000:3000 -d smashing-app:v1docker run -p 3001:3000 -d smashing-app:v2
Variables de entorno

Docker facilita la administración de variables de entorno, que se pueden pasar a su aplicación Node.js para modificar su comportamiento según el entorno (desarrollo, preparación, producción). Por ejemplo, en su archivo app.js:

const express = require('express');const app = express();const port = process.env.PORT || 3000;const env = process.env.NODE_ENV || 'development';app.get('/', (req, res) = { res.send(`Welcome to our smashing stateless Node.js app running in ${env} mode!`);});app.listen(port, () = { console.log(`Smashing app listening at https://localhost:${port}`);});

En su Dockerfile, puede configurar la NODE_ENVvariable:

FROM node:18-alpineWORKDIR /usr/src/appCOPY package*.json ./RUN npm installCOPY . .ENV NODE_ENV=productionCMD [ "node", "app.js" ]

O puedes pasarlo al ejecutar el contenedor:

docker run -p 3000:3000 -d -e NODE_ENV=production smashing-app

El TL;DR de esto es que a través de Dockerizing aplicaciones de nodo, podemos eliminar toda una clase de problemas de "funciona en mi máquina" y al mismo tiempo aumentar la reutilización, capacidad de prueba y portabilidad de nuestras aplicaciones Node.js.

Alojamiento de contenedores con Kinsta

Ahora que tenemos nuestra aplicación Node.js sin estado Dockerizada, es posible que se pregunte dónde alojarla. Kinsta es ampliamente conocido por su alojamiento de aplicaciones y bases de datos. Exploremos cómo haríamos esto con Kinsta paso a paso.

  1. Inicie sesión o regístrese en su cuenta de Kinsta.
  2. Desde allí, deberías estar en tu panel de control.
  3. Usando la barra lateral, navegue hasta Aplicaciones.
  4. Desde aquí, debería poder agregar un servicio de tipo aplicación .
  5. Una vez que agregue una aplicación, se le invitará a conectar su cuenta de GitHub a Kinsta para que Kinsta pueda implementar automáticamente su aplicación cuando se le envíen actualizaciones.
  6. Ahora puede elegir el repositorio que contiene el código que desea implementar, además de configurar algunos detalles básicos como el nombre de la aplicación y las variables de entorno.
  7. A continuación, especificamos el entorno de compilación de nuestra aplicación. Es aquí donde especificamos la ubicación del Dockerfile en nuestro repositorio que acabamos de crear.
  8. Finalmente, asignamos recursos informáticos para nuestro contenedor, ingresamos nuestra información de pago y ¡estamos listos para comenzar!

Kinsta ahora construirá e implementará nuestra aplicación y nos brindará un enlace público y seguro desde donde será accesible. ¡Nuestra aplicación ya está publicada en la web!

Conclusión

En este tutorial, creamos una aplicación Node.js y la acoplamos a Docker, lo que facilita su implementación en varios entornos. También exploramos los beneficios de la arquitectura sin estado y mencionamos algunas excelentes opciones para alojar contenedores, como Kinsta .

(yk, il)Explora más en

  • Nodo.js
  • Aplicaciones
  • Apátrida
  • javascript





Tal vez te puede interesar:

  1. Creación de su propia biblioteca de validación de React: las características (Parte 2)
  2. Creación de un componente de diagrama de Gantt interactivo con Vanilla JavaScript (Parte 1)
  3. Introducción a Quasar Framework: creación de aplicaciones multiplataforma
  4. Creación de un componente web retro que se puede arrastrar con iluminación

Creación y acoplamiento de una aplicación Node.js con arquitectura sin estado con la ayuda de Kinsta

Creación y acoplamiento de una aplicación Node.js con arquitectura sin estado con la ayuda de Kinsta

Creando una aplicación Node.jsArquitectura sin estadoDockerizando la aplicaciónMás ventajas sorprendentes de acoplar una aplicación Node.jsAlojamiento de c

programar

es

https://pseint.es/static/images/programar-creacion-y-acoplamiento-de-una-aplicacion-node-1170-0.jpg

2024-06-30

 

Creación y acoplamiento de una aplicación Node.js con arquitectura sin estado con la ayuda de Kinsta
Creación y acoplamiento de una aplicación Node.js con arquitectura sin estado con la ayuda de Kinsta

Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente

 

 

Update cookies preferences