Descomponiendo Monolito NestJS API en Microservicios GRPC

certificate
Recording and certification are available to Multipass and Full ticket holders only
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

This workshop has been presented at Node Congress 2023, check out the latest edition of this JavaScript Conference.

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 Summary and Transcription
El masterclass se centró en descomponer una API monolítica en microservicios utilizando NestJS y gRPC. El orador discutió los beneficios y desventajas de los monolitos y microservicios, así como los principios y patrones de arquitectura para microservicios. El proceso de descomposición del monolito involucró refactorizar el código, introducir gRPC para la comunicación y mover gradualmente partes del monolito a servicios separados. El masterclass también destacó la importancia de las pruebas, los pipelines de CI/CD y la descomposición de la base de datos. En general, el masterclass enfatizó la necesidad de una planificación y pruebas cuidadosas al descomponer un monolito en microservicios.
Video transcription and chapters 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
This Talk discusses the benefits of microservices and containers for building CI-CD pipelines. It explains how container technology enables portability and scalability. The challenges of microservices include network communication and testing in isolation. The Talk introduces Tacton, a cloud-native CICD pipeline for Kubernetes, and highlights the use of GitOps and Argo CD. It also discusses the importance of maintaining referential integrity between microservices and the evolving role of operators in the DevOps world.
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
This Talk discusses the importance of bundling code in the modern JavaScript world and introduces Webpack as the de facto standard for bundling modules. It explores techniques such as code splitting, multiple entry points, and controlling the build process to optimize code organization and improve performance. The Talk also delves into concepts like Universal Model Definition (UMD) and using externals in Webpack to avoid code duplication. It highlights the benefits of separating and maintaining code in an application, as well as the use of micro-frontends and monorepos for scalability and collaboration. Overall, the Talk emphasizes the significance of code separation, dependency management, and efficient bundling strategies for developing robust and modular applications.
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
Today's Talk discusses microservices optimization strategies for distributed systems, specifically focusing on implementing casual consistency to ensure data synchronization. Vector clocks are commonly used to track the casual relationship between write events in distributed systems. Casual consistency allows for concurrent and independent operations without synchronization, maximizing parallelism and system resource utilization. It enables effective scalability, better latency, and fault tolerance in distributed systems through coordination, resilience, reconfiguration, recovery, and data replication.
Construyendo y Operando un Monolito Componible Moderno
DevOps.js Conf 2024DevOps.js Conf 2024
19 min
Construyendo y Operando un Monolito Componible Moderno
In this talk, Luca introduces the concept of the modern composable monolith and discusses the challenges of microservices. He emphasizes the importance of developing modular monoliths and introduces Fastify and the Platformatic Runtime as tools for this approach. The Platformatic Runtime simplifies running modular, monolithic applications, and standardizing interfaces and communication is crucial in this context. Lastly, Luca introduces Meraki as a UI-driven tool for building composable monoliths and invites developers to join their marketplace for revolutionizing the operational experience of microservices.