¿Es Module Federation adecuado para ti?

Rate this content
Bookmark

Descubre los Micro Frontends con Module Federation. Aprende sobre los beneficios y desafíos para que puedas decidir si los Micro Frontends son adecuados para tu organización.

This workshop has been presented at JSNation 2022, check out the latest edition of this JavaScript Conference.

FAQ

Los micro-frontends son un enfoque de desarrollo web que permite descomponer aplicaciones front-end grandes y complejas en piezas más pequeñas y manejables. Cada pieza puede ser desarrollada, probada y desplegada de manera independiente, lo que facilita la escalabilidad y la eficiencia en equipos grandes.

La federación de módulos es una técnica utilizada en desarrollo web que permite compartir dinámicamente código y funcionalidades entre múltiples aplicaciones JavaScript de manera eficiente. Facilita la reutilización de código y ayuda en la gestión de dependencias en aplicaciones grandes.

Los micro-frontends pueden comunicarse utilizando diversos métodos como eventos, servicios, comunicación del lado del servidor, estado compartido, y enrutamiento. Cada método tiene sus ventajas y desventajas, y la elección depende de las necesidades específicas del proyecto y la arquitectura utilizada.

Los micro-frontends ofrecen varios beneficios como la posibilidad de escalar equipos y recursos de manera más efectiva, incrementar la agilidad del desarrollo, realizar pruebas A/B de manera más sencilla, y facilitar las migraciones y actualizaciones de aplicaciones. También permiten una mayor flexibilidad en la elección de tecnologías y herramientas.

Para manejar versiones y dependencias en micro-frontends, es recomendable utilizar versionado semántico y mantener cada versión en subcarpetas separadas en un servidor. Esto permite revertir a versiones anteriores fácilmente y manejar diferentes versiones de dependencias de forma más controlada.

Grgur Grisogono
Grgur Grisogono
191 min
04 Jul, 2022

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Este masterclass sobre micro-frontends abarca temas como dependencias, comunicación entre módulos federados, organización de equipos y compartición de código. Se enfatizan los beneficios de la federación de módulos y los micro-frontends para permitir una operación y colaboración continua. El masterclass proporciona ejemplos prácticos y discute los desafíos de gestionar cambios disruptivos y manejar conflictos. También explora el uso de React como una biblioteca de renderizado de vistas y la importancia de compartir datos y controlar la comunicación entre aplicaciones de características.

1. Introducción a los Micro-Frontends

Short description:

Gracias a todos por unirse a nuestro masterclass. Comenzaremos con una introducción a los micro-frontends y sus beneficios. Luego trabajaremos en ejemplos y discutiremos posibles arquitecturas a nivel de sistema. He trabajado extensamente con Module Federation y Microfurence, implementándolos en numerosos países y millones de usuarios. Durante este masterclass, cubriremos temas como dependencias, comunicación entre módulos federados, modulación en aplicaciones híbridas, organización de equipos y compartición de código. También tendremos una sesión de preguntas y respuestas. Mi objetivo es que salgan de este masterclass sintiéndose informados y preparados para implementar micro-frontends en sus proyectos.

Gracias a todos por unirse a nuestro masterclass hoy. Tenemos aproximadamente 2 horas y media para hablar sobre la federación de módulos, pero realmente no podemos hablar sobre la federación de módulos sin hablar sobre micro-frontends. Así que vamos a hacer una breve introducción sobre qué son los micro-frontends y por qué son útiles, por qué estamos aquí. Y luego trabajaremos en ejemplos.

Cuando terminemos con los ejemplos, si todavía están interesados en la federación de módulos, también voy a mostrarles algunas diapositivas sobre posibles arquitecturas, las arquitecturas a nivel de sistema que pueden elegir. Y también les mostraré algunas diapositivas que he aprendido que funcionan bien al presentar micro-frontends a jefes, empresas, clientes, y demás. Cosas que les gusta escuchar, porque generalmente no hablan el lenguaje de los ingenieros, y quiero compartir algo de eso. Así que lo tendrán. La presentación estará en el repositorio de GitHub, y se los compartiré en un momento.

Pero antes de hacerlo, nuevamente voy a tomar un segundo para presentarme. Mi nombre es, bueno, Gregor es la forma fácil de pronunciarlo, la forma oficial sería Gergoor, lo sé, es terrible, muchos erres rodantes. Pero he estado trabajando con la federación de módulos y Microfurence durante un tiempo, y no soy el inventor de nada de esto. Así que si conocen a personas como Zack Jackson, quien creo que es el cerebro detrás de Microfurence, y Toby Carver de Webpack, esos chicos son increíblemente inteligentes. Pasé mucho tiempo con esos dos a finales de 2020 cuando Madoff Federation estaba disponible, porque lo usamos ampliamente con algunas compañías grandes, no voy a mencionar nombres, pero algunas de las grandes en comunicaciones, en la industria automotriz, en farmacéuticas. Verán sus logotipos al final, pero no los mencionaré. Así que he estado trabajando con micro-frontends durante mucho tiempo y los he implementado en aproximadamente 200 países, y creo que muchos millones de usuarios ya han accedido a algunas de esas cosas, algunos de esos micro-frontends que ayudé a crear. Y hoy solo quiero compartir esa experiencia con ustedes. Quiero compartir, ya saben, hemos pasado por muchos descubrimientos increíbles y momentos difíciles, problemas difíciles de resolver. Porque estos son sistemas altamente escalables. Escalables en términos de infraestructura, escalables en términos de equipos escalables, multinacionales. Así que si trabajan con alguno de ellos, espero que esto les sea útil. Durante este masterclass, hablaremos, nuevamente, sobre qué son los microfrontends y por qué el negocio de ustedes o el negocio de sus clientes debería preocuparse. Crearemos un clúster de aplicaciones de federación de módulos muy, muy simple. Será muy simple porque este es un masterclass introductorio. Y habrá muchos ejemplos para mostrar, muchos problemas y soluciones para mostrar a través de ese pequeño clúster. Mostraremos cómo lidiar con algunos de los problemas más comunes, como trabajar con dependencias, cómo lidiar con los problemas que surgen al trabajar con dependencias, tipos de dependencias, y estrategias para lidiar con diferentes tipos de dependencias. Luego, una de las preguntas más comunes es cómo nos comunicamos entre módulos federados. Y creo que la comunicación es donde se hace o se deshace todo. Voy a mencionar brevemente o hablar brevemente sobre la modulación en aplicaciones híbridas. Así que no tiene que ser solo web. Puede ser híbrido. Puede ser completamente universal, ya sea web, PWA, escritorio o móvil. Hay algunas implicaciones muy interesantes allí. Nuevamente, hablaremos sobre la organización de equipos, la organización de trabajo con sus repositorios, compartición de código. Así que mezclaremos mucho de eso. Finalmente, reservaré tiempo para preguntas y respuestas. Una cosa que quiero que obtengan de esto es que quiero que suenen inteligentes cuando regresen a sus trabajos, a sus compañeros, a quienes hablen, a los meetups. Quiero que suenen inteligentes.

2. Compartiendo Experiencias y Simplificando Conceptos

Short description:

Hoy me sucedió algo interesante, esta mañana, estaba trabajando con uno de esos fabricantes de automóviles, un equipo al que estoy ayudando allí. Tuvimos ciertos problemas con el renderizado del sitio de servicio de la federación modular federada. Pero esos son solo problemas que ocurren con sitios enormes, enormes. Creé una solicitud de extracción y dentro de ella agregué algunas banderas que necesitaba agregar a este Chrome sin cabeza. Voy a compartir algunas cosas, espero que las lleven de vuelta a su trabajo. Voy a tratar de no usar palabras difíciles. Así que si tienen experiencia, por favor intenten escuchar. Si no tienen experiencia, si no son técnicos, espero que puedan comprender de qué estamos hablando.

Hoy me sucedió algo interesante, esta mañana, estaba trabajando con uno de esos fabricantes de automóviles, un equipo al que estoy ayudando allí, me dijeron, así que tuvimos ciertos problemas con el renderizado del sitio de servicio de la federación modular federada. Pero esos son solo problemas que ocurren con sitios enormes, enormes, cuando tienes que ejecutar un servicio que renderiza decenas de miles de páginas al mismo tiempo. Y no sabía cómo resolver el problema. Así que dije, saben, lo buscaré en Google. Lo encontraré y lo agregaré. Así que creé una solicitud de extracción. Y dentro de la solicitud de extracción simplemente agregué algunas banderas que necesitaba agregar a este Chrome sin cabeza. Y dijeron, oh, no sé cómo llegamos a ser tan inteligentes. ¿Cómo encontraste todas esas banderas? Y dije, lo busqué en Google. Así que no fui inteligente. Simplemente lo busqué en Google. Así que este es nuestro momento de compartir, ya saben, no es buscar en Google, pero voy a compartir algunas cosas, espero que las lleven de vuelta a su trabajo. Además, voy a tratar de no usar palabras difíciles. Así que no se van a volver inteligentes de una manera en la que van a usar aplicaciones isomórficas, algo así como ese tipo de terminología, voy a tratar de ser simple. Así que si tienen experiencia, como sé que algunos de ustedes tienen con la iteración de modelos, por favor intenten escuchar. Si no tienen experiencia, si no son técnicos, espero que puedan, por eso espero que puedan comprender de qué estamos hablando.

QnA

Watch more workshops on topic

Micro Frontends con Module Federation y React
JSNation Live 2021JSNation Live 2021
113 min
Micro Frontends con Module Federation y React
Workshop
Alex Lobera
Alex Lobera
¿Alguna vez has trabajado en una aplicación monolítica de Next.js? Yo sí, y escalar una gran aplicación de React para que muchos equipos puedan trabajar simultáneamente no es fácil. Con micro frontends, puedes dividir un monolito frontend en piezas más pequeñas para que cada equipo pueda construir e implementar de forma independiente. En este masterclass aprenderás cómo construir aplicaciones de React grandes que escalen utilizando micro frontends.
Microfrontends con Module Federation y Angular
JSNation Live 2021JSNation Live 2021
113 min
Microfrontends con Module Federation y Angular
Workshop
Manfred Steyer
Manfred Steyer
Cada vez más empresas eligen Microfrontends. Sin embargo, no son fáciles de implementar. Afortunadamente, Module Federation introducido con webpack 5 ha iniciado un cambio crucial de dirección.
En este masterclass interactivo, aprenderás de Manfred Steyer, Angular GDE y Colaborador de Confianza en el equipo de Angular, cómo planificar e implementar arquitecturas de Microfrontend con Angular y el nuevo Module Federation de webpack. Hablaremos sobre compartir bibliotecas y conceptos avanzados como manejar desajustes de versión, Module Federation dinámico e integración en monorepos.
Después de los ejercicios individuales, tendrás un estudio de caso que podrás utilizar como plantilla para tus proyectos. Este masterclass te ayuda a evaluar las opciones individuales para tus proyectos.
Prerrequisitos:Debes tener algo de experiencia con Angular.

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

Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
This talk discusses the usage of Microfrontends in Remix and introduces the Tiny Frontend library. Kazoo, a used car buying platform, follows a domain-driven design approach and encountered issues with granular slicing. Tiny Frontend aims to solve the slicing problem and promotes type safety and compatibility of shared dependencies. The speaker demonstrates how Tiny Frontend works with server-side rendering and how Remix can consume and update components without redeploying the app. The talk also explores the usage of micro frontends and the future support for Webpack Module Federation in Remix.
De Monolito a Micro-Frontends
React Advanced 2022React Advanced 2022
22 min
De Monolito a Micro-Frontends
Top Content
Microfrontends are considered as a solution to the problems of exponential growth, code duplication, and unclear ownership in older applications. Transitioning from a monolith to microfrontends involves decoupling the system and exploring options like a modular monolith. Microfrontends enable independent deployments and runtime composition, but there is a discussion about the alternative of keeping an integrated application composed at runtime. Choosing a composition model and a router are crucial decisions in the technical plan. The Strangler pattern and the reverse Strangler pattern are used to gradually replace parts of the monolith with the new application.
Micro-Frontends con React y Federación de Módulos Vite
React Advanced 2023React Advanced 2023
20 min
Micro-Frontends con React y Federación de Módulos Vite
Top Content
Microfrontends is an architecture used by big companies to split monolithic frontend applications into manageable parts. Maintaining a consistent look and feel across different microfrontends is a challenge. Sharing styles can be done through Vanilla CSS, CSS modules, or CSS in JS. JavaScript variables can be used in styles, but readability and runtime overhead are considerations. Sharing state in microfrontends can be achieved through custom events, broadcast channels, shared state managers, or custom PubSub implementations. Module federation with Vite allows for client composition and sharing dependencies. Configuration is similar to Webpack, and future work includes working on the QUIC framework.
Microfrontends Federados a Gran Escala
React Summit 2023React Summit 2023
31 min
Microfrontends Federados a Gran Escala
Top Content
This Talk discusses the transition from a PHP monolith to a federated micro-frontend setup at Personio. They implemented orchestration and federation using Next.js as a module host and router. The use of federated modules and the integration library allowed for a single runtime while building and deploying independently. The Talk also highlights the importance of early adopters and the challenges of building an internal open source system.
“Microfrontends” para móviles en React Native
React Advanced 2023React Advanced 2023
24 min
“Microfrontends” para móviles en React Native
Top Content
Micro frontends are an architectural style where independent deliverable frontend applications compose a greater application. They allow for independent development and deployment, breaking down teams into feature verticals. React Native's architecture enables updating the JavaScript layer without going through the app store. Code Push can be used to deploy separate JavaScript bundles for each micro frontend. However, there are challenges with managing native code and dependencies in a micro frontend ecosystem for mobile apps.
Compartir es Cuidar: ¿Cómo Deberían los Micro Frontends Compartir Estado?
React Summit 2022React Summit 2022
23 min
Compartir es Cuidar: ¿Cómo Deberían los Micro Frontends Compartir Estado?
Top Content
Micro-frontends allow development teams to work autonomously and with less friction and limitations. Organizing teams around business concerns, in alignment with subdomains, rather than technical concerns, can lead to software that is split nicely and user stories falling under the responsibility of a single team. Having a logical backup or reference point is important for implementing microfrontends without breaking their isolation. Microfrontends can communicate with each other using the window object and custom events. Microfrontends should be kept isolated while maintaining communication through various approaches.