Descomponiendo Monolito NestJS API en Microservicios GRPC

Recording available for Multipass and Full ticket holders
Please login if you have one.
Rate this content
Bookmark
Project website

El masterclass se centra en conceptos, algoritmos y prácticas para descomponer una aplicación monolítica en microservicios GRPC. Presenta una visión general de los principios de arquitectura, patrones de diseño y tecnologías utilizadas para construir microservicios. Cubre la teoría del marco de trabajo GRPC y el mecanismo de protocol buffers, así como técnicas y especificidades de la construcción de servicios TypeScript aislados en el stack de Node.js. El masterclass incluye una demostración en vivo de un caso de uso de descomposición de una aplicación API en un conjunto de microservicios. Es adecuado para arquitectos, líderes técnicos y desarrolladores que deseen aprender patrones de microservicios.


Nivel: Avanzado

Patrones: DDD, Microservicios

Tecnologías: GRPC, Protocol Buffers, Node.js, TypeScript, NestJS, Express.js, PostgreSQL, Turborepo

Estructura de ejemplo: configuración de monorepo, configuración de paquetes, utilidades comunes, servicio de demostración

Ejercicio práctico: refactorizar la aplicación monolítica

FAQ

Una API monolítica es una estructura de aplicación donde todas las funciones están integradas en un único servicio independiente, lo que puede complicar las actualizaciones y la escalabilidad. La descomposición en microservicios implica dividir esta API en servicios más pequeños y desacoplados, lo que facilita la gestión, mejora la escalabilidad y permite la actualización de partes específicas sin afectar al sistema entero.

En la transición de monolitos a microservicios se mencionan diversas tecnologías como Node.js, Docker, Docker Compose, Golang, y herramientas específicas como Particle Buffer y Particle Buffer Compiler, que son útiles para manejar y compilar servicios en microservicios.

gRPC es beneficioso en la descomposición de monolitos porque permite una comunicación eficiente y ligera entre los microservicios. Ofrece un formato de intercambio de datos binario que es más eficiente que los formatos basados en texto como JSON, facilitando así una comunicación más rápida y menos costosa en términos de recursos.

En la arquitectura de microservicios, la persistencia de datos se maneja generalmente asignando a cada servicio su propia base de datos, lo que permite que cada microservicio gestione su estado de forma independiente. Esto ayuda a evitar dependencias entre servicios y simplifica el manejo de los datos.

Al descomponer un monolito en microservicios, se enfrentan desafíos como la complejidad en la gestión de múltiples bases de datos, la necesidad de implementar comunicaciones inter-servicio y la dificultad de asegurar la consistencia y integridad de los datos a través de los servicios. También se requiere una supervisión y una infraestructura robustas para manejar la comunicación y el error handling entre servicios.

Docker juega un papel crucial en la creación de microservicios al proporcionar un entorno de contenedorización que facilita la creación, despliegue, y escalado de aplicaciones en microservicios de manera eficiente y aislada. Esto permite que cada microservicio se empaquete con sus dependencias y se despliegue de manera independiente.

Alex Korzhikov
Alex Korzhikov
119 min
18 Apr, 2023

Comments

Sign in or register to post your comment.
Video transcription, chapters and summary available for users with access.

Watch more workshops on topic

Desacoplamiento en Práctica
Node Congress 2023Node Congress 2023
102 min
Desacoplamiento en Práctica
WorkshopFree
Chad Carlson
Chad Carlson
Desplegar aplicaciones desacopladas y de microservicios no es solo un problema que se resuelve el día de la migración. Avanzar con estas arquitecturas depende completamente de cómo será la experiencia del flujo de trabajo de su equipo día a día después de la migración.
La parte más difícil de esto a menudo es la cantidad de proveedores involucrados. Algunos objetivos son más adecuados para frameworks frontend específicos, mientras que otros son más adecuados para CMS y APIs personalizadas. Desafortunadamente, sus suposiciones, flujos de trabajo, APIs y conceptos de seguridad pueden ser bastante diferentes. Si bien hay ciertas ventajas en confiar en un contrato estricto entre aplicaciones, donde el trabajo del equipo backend y frontend se limita a un solo proveedor, esto no siempre es realista. Esto podría ser porque aún están experimentando, o simplemente porque el tamaño de su organización aún no permite este tipo de especialización.
En este masterclass, tendrás la oportunidad de explorar un enfoque diferente y de un solo proveedor para microservicios utilizando Strapi y Next.js como ejemplo. Desplegarás cada aplicación individualmente, estableciendo un flujo de trabajo desde el principio que simplifica la personalización, introduce nuevas características, investiga problemas de rendimiento e incluso permite la intercambiabilidad de frameworks desde el principio.
Estructura:- Comenzando- Descripción general de Strapi- Descripción general del flujo de trabajo de Platform.sh- Desplegar el proyecto- Cambiar servicios- Agregar el frontend
Requisitos previos:- Crear una cuenta de prueba en Platform.sh- Instalar la CLI de Platform.sh
Cómo desarrollar, construir e implementar microservicios Node.js con Pulumi y Azure DevOps
DevOps.js Conf 2022DevOps.js Conf 2022
163 min
Cómo desarrollar, construir e implementar microservicios Node.js con Pulumi y Azure DevOps
Workshop
Alex Korzhikov
Andrew Reddikh
2 authors
El masterclass ofrece una perspectiva práctica de los principios clave necesarios para desarrollar, construir y mantener un conjunto de microservicios en el stack Node.js. Cubre los detalles específicos de la creación de servicios TypeScript aislados utilizando el enfoque de monorepo con lerna y yarn workspaces. El masterclass incluye una descripción general y un ejercicio en vivo para crear un entorno en la nube con el framework Pulumi y los servicios de Azure. Las sesiones están dirigidas a los mejores desarrolladores que deseen aprender y practicar técnicas de construcción e implementación utilizando el stack Azure y Pulumi para Node.js.
Cómo Convertir Criptomonedas con Microservicios GRPC en Node.js
JSNation 2023JSNation 2023
117 min
Cómo Convertir Criptomonedas con Microservicios GRPC en Node.js
Workshop
Alex Korzhikov
Andrew Reddikh
2 authors
El masterclass presenta los principios de arquitectura clave, patrones de diseño y tecnologías utilizadas para construir microservicios en el stack de Node.js. Cubre la teoría del marco de trabajo GRPC y el mecanismo de protocol buffers, así como técnicas y especificaciones para construir servicios aislados utilizando el enfoque de monorepo con lerna y yarn workspaces, TypeScript. El masterclass incluye una tarea práctica en vivo para crear una aplicación de conversión de moneda que sigue los paradigmas de microservicios. Es adecuado para desarrolladores que deseen aprender y practicar el patrón de microservicios GRPC con la plataforma Node.js.
Requisitos previos:- Buen entendimiento de JavaScript o TypeScript- Experiencia con Node.js y escribir aplicaciones de backend- Preinstalar Node.js, npm- Preinstalar el Compilador de Protocol Buffer- Preferimos usar VSCode para una mejor experiencia con JavaScript y TypeScript (otros IDE también son aceptables)
Cómo Convertir Criptomonedas con Microservicios en Node.js y gRPC
Node Congress 2022Node Congress 2022
162 min
Cómo Convertir Criptomonedas con Microservicios en Node.js y gRPC
Workshop
Alex Korzhikov
Andrew Reddikh
2 authors
La masterclass ofrece una visión general de los principios de arquitectura clave, patrones de diseño y tecnologías utilizadas para construir microservicios en el stack de Node.js. Cubre la teoría del marco de trabajo gRPC y el mecanismo de protocol buffers, así como técnicas y especificidades para construir servicios aislados utilizando el enfoque de monorepo con lerna y yarn workspaces, TypeScript. La masterclass incluye una tarea práctica en vivo para crear una aplicación de conversión de moneda que sigue los paradigmas de los microservicios. La masterclass "Microservicios en Node.js con gRPC" es ideal para desarrolladores que deseen aprender y practicar el patrón de microservicios gRPC con la plataforma Node.js.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Cómo construir tuberías de CI/CD para una aplicación de microservicios
DevOps.js Conf 2021DevOps.js Conf 2021
33 min
Cómo construir tuberías de CI/CD para una aplicación de microservicios
Top Content
Los microservicios presentan muchas ventajas para ejecutar software moderno, pero también traen nuevos desafíos tanto para las tareas de despliegue como operativas. Esta sesión discutirá las ventajas y desafíos de los microservicios y revisará las mejores prácticas para desarrollar una arquitectura basada en microservicios.Discutiremos cómo la orquestación de contenedores usando Kubernetes o Red Hat OpenShift puede ayudarnos y lo uniremos todo con un ejemplo de tuberías de Integración Continua y Entrega Continua (CI/CD) en OpenShift.
Microscopios: Cómo construir una aplicación moderna modular en un mundo de paquetes
JSNation Live 2021JSNation Live 2021
21 min
Microscopios: Cómo construir una aplicación moderna modular en un mundo de paquetes
En esta charla exploraremos los grandes beneficios de descomponer una gran aplicación moderna en piezas significativas e independientes, cada una de las cuales puede ser construida, desplegada y cargada por separado. Discutiremos las mejores prácticas y los problemas comunes al intentar aplicar este patrón similar a los microservicios en el caótico mundo del navegador, y veremos cómo construir las piezas adecuadas garantiza un futuro más brillante para tus aplicaciones. Sumergámonos en la historia interminable de la arquitectura moderna del front-end.
Optimizando la Arquitectura de Microservicios para Alto Rendimiento y Resiliencia
Node Congress 2024Node Congress 2024
24 min
Optimizando la Arquitectura de Microservicios para Alto Rendimiento y Resiliencia
- Adentrarse en las complejidades de optimizar la arquitectura de microservicios para lograr alto rendimiento y resiliencia.- Explorar los desafíos relacionados con los cuellos de botella de rendimiento y la resiliencia en sistemas basados en microservicios.- Profundizar en las estrategias para mejorar el rendimiento, como protocolos de comunicación eficientes, mensajería asincrónica y balanceo de carga, al mismo tiempo que se discuten técnicas para construir resiliencia, incluyendo interruptores de circuito, tolerancia a fallos e ingeniería del caos.- Explorar herramientas y tecnologías relevantes, como service mesh y orquestación de contenedores, y ofrecer estudios de casos perspicaces y lecciones aprendidas de implementaciones del mundo real.- Enfatizar la importancia de la mejora continua y la adaptación en entornos de microservicios, junto con reflexiones sobre la trayectoria futura de la arquitectura de microservicios.
Construyendo y Operando un Monolito Componible Moderno
DevOps.js Conf 2024DevOps.js Conf 2024
19 min
Construyendo y Operando un Monolito Componible Moderno
Todo comenzó con la fisión del monolito en microservicios. Esto estableció límites lógicos y físicos, fusionando las dimensiones de infraestructura y software. Si bien los microservicios simplificaron cómo los equipos desarrollan de forma independiente, agregaron complejidades adicionales en torno al rendimiento, la corrección, la gestión general y, en última instancia, un ciclo de desarrollo más lento. En esta charla, profundizaremos en cómo diseñar e implementar un monolito componible basado en Fastify, la comunicación sin red entre servicios y cómo manejar un desarrollo eficiente entre equipos al implementar un único artefacto en Kubernetes. ¿Suena como magia? ¡Descubramos el truco juntos!