Guía para implementar una aplicación Node.js contenerizada en Huawei Cloud
Tags: containers, huaweicloud, kubernetes, node
Published: 2024-03-26 02:20:29

La adopción de la nube pública para implementar aplicaciones modernas es una tendencia creciente entre las empresas que buscan escalabilidad, flexibilidad y confiabilidad. Huawei Cloud ofrece una robusta plataforma de servicios en la nube, incluidos los servicios de contenedores, que permiten a los desarrolladores desplegar y gestionar aplicaciones de manera eficiente. En esta guía, exploraremos cómo levantar una aplicación Node.js utilizando el servicios de Cloud Container Engine (CCE) de la nube pública de Huawei.

## Paso 1: Preparación del entorno

Antes de comenzar, asegúrate de tener una cuenta activa en Huawei Cloud y haber configurado tu entorno de desarrollo local con Node.js y Docker.

Si no tienes una cuenta, puedes registrar una en el [siguiente link](https://reg.huaweicloud.com/registerui/intl/register.html?locale=es-us) y completar los datos para el [TIER gratuito](https://activity.huaweicloud.com/intl/es-us/free_packages/index.html).

## Paso 2: Creación de la aplicación Node.js

Para este ejemplo, crearemos una aplicación Node.js sencilla. Abre tu editor de texto y crea un archivo llamado `app.js`. Dentro de este archivo, puedes escribir el siguiente código de ejemplo:

```javascript
const http = require('http');

const hostname = '0.0.0.0';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('¡Hola desde Huawei Cloud!\n');
});

server.listen(port, hostname, () => {
  console.log(`Servidor corriendo en http://${hostname}:${port}/`);
});
```

Este código crea un servidor HTTP simple que responde con un mensaje de bienvenida.

## Paso 3: Dockerización de la aplicación

Para contenerizar nuestra aplicación, necesitamos crear un archivo `Dockerfile` en el directorio raíz de nuestro proyecto. Este archivo contendrá las instrucciones para construir la imagen de Docker de nuestra aplicación.

```Dockerfile
FROM node:latest

WORKDIR /app

COPY package.json .
COPY package-lock.json .

RUN npm install

COPY . .

EXPOSE 3000

CMD ["node", "app.js"]
```

Este Dockerfile especifica que nuestra imagen se basará en la última versión de Node.js disponible en Docker Hub. Luego, copia los archivos de nuestro proyecto al directorio de trabajo dentro del contenedor, instala las dependencias utilizando npm y expone el puerto 3000 para que nuestra aplicación pueda ser accedida desde el exterior.

## Paso 4: Construcción y subida de la imagen Docker

Desde el directorio raíz del proyecto, ejecuta el siguiente comando para construir la imagen Docker:

```Bash
docker build -t <nombre_de_la_imagen> .
```

Reemplaza `<nombre_de_la_imagen>` con el nombre que desees para tu imagen Docker. Una vez construida la imagen, puedes subirla al Docker Hub o al registro de contenedores de Huawei Cloud.

Si quieres subir la imagen al registro de contenedores de Huawei Cloud (SWR) utiliza el siguiente comando que para mi caso lo sube a la región de Santiago de Chile:

```Bash
docker login swr.la-south-2.myhuaweicloud.com
```

Ingresa tus credenciales de Huawei Cloud cuando se solicite. Después, etiqueta tu imagen con la ruta del registro de contenedores:

```Bash
docker tag nombre_de_la_imagen:tag swr.la-south-2.myhuaweicloud.com/tu_proyecto/nombre_de_la_imagen:tag
```

Finalmente, sube la imagen etiquetada a SWR:

```Bash
docker push swr.la-south-2.myhuaweicloud.com/tu_proyecto/nombre_de_la_imagen:tag
```

## Paso 5: Implementación en los servicios de contenedores de Huawei Cloud

Ingresa a la consola de Huawei Cloud y navega hasta el servicio de Cloud Container Engine (CCE). Desde allí, puedes [crear un nuevo clúster](https://support.huaweicloud.com/intl/es-us/qs-cce/cce_qs_0008.html) y un nuevo espacio de nombres. Luego, puedes desplegar la aplicación en tu clúster recién creado.

Una vez desplegada, podrás acceder a tu aplicación desde cualquier navegador utilizando la dirección proporcionada por Huawei Cloud.

¡Felicidades! Has implementado con éxito una aplicación Node.js utilizando los servicios de contenedores de la nube pública de Huawei. Este es solo el comienzo de tu viaje hacia la construcción de aplicaciones escalables y modernas en la nube. ¡Sigue explorando y experimentando!

## Conclusión

La implementación de aplicaciones en los servicios de Cloud Container Engine (CCE) de la nube pública de Huawei ofrece una solución potente y flexible para los desarrolladores en busca de escalabilidad y confiabilidad. A lo largo de esta guía, hemos explorado los pasos clave para levantar una aplicación Node.js en este entorno, desde la creación de la aplicación hasta su despliegue en la nube. Al aprovechar las capacidades de contenerización y orquestación de contenedores, los equipos de desarrollo pueden experimentar con mayor agilidad, reducir los tiempos de desarrollo y despliegue, y garantizar un alto nivel de disponibilidad y rendimiento para sus aplicaciones.

Además, la integración de servicios adicionales ofrecidos por Huawei Cloud, como el monitoreo, la escalabilidad automática y la gestión de recursos, permite a los equipos de desarrollo centrarse en la innovación y el crecimiento de sus aplicaciones, sin tener que preocuparse por la complejidad de la infraestructura subyacente. En resumen, el uso de los servicios de contenedores de la nube pública de Huawei proporciona una base sólida para el éxito de las aplicaciones modernas, permitiendo a las empresas mantenerse ágiles y competitivas en un mercado digital en constante evolución.