Libertad de plataforma con Micro-frontends

Rate this content
Bookmark
Slides

¿Pueden las aplicaciones de React y TypeScript ejecutarse en diferentes plataformas (carcasas de aplicaciones) con cambios mínimos en el código fuente? ¡Sí! con la estrategia de Micro-frontend en la arquitectura Multiplying. Presentaré una nueva dimensión de Micro-frontend que allanó el camino para desacoplar los componentes de una aplicación React monolítica más grande utilizando un nuevo marco llamado arquitectura Multiplying. El marco es altamente flexible y escalable para el desarrollo de código, y también ayuda a los negocios y a la comunidad.

FAQ

Los Microfrontends son un estilo arquitectónico que divide una aplicación frontend monolítica en múltiples unidades independientes. Cada unidad puede ser desarrollada y mantenida por equipos diferentes, lo que permite una mayor escalabilidad y flexibilidad en el desarrollo de aplicaciones web.

Las principales ventajas incluyen la independencia en el desarrollo y despliegue, ciclos de lanzamiento específicos por equipo, y la capacidad de usar tecnologías específicas para diferentes partes de la aplicación sin afectar el resto del sistema.

Existen principalmente dos estrategias: la integración en tiempo de ejecución, donde cada Microfrontend se carga dinámicamente en la aplicación, y la integración en tiempo de compilación, donde los componentes se ensamblan durante el proceso de compilación.

La arquitectura Multiplication fue diseñada para facilitar la ejecución de aplicaciones en múltiples plataformas con mínimos cambios en el código, mejorando la interoperabilidad y reduciendo los esfuerzos de mantenimiento al permitir un desarrollo más modular y desacoplado.

Una solución es utilizar módulos federados, que permiten compartir bibliotecas y dependencias entre diferentes Microfrontends, reduciendo así la cantidad de código duplicado y disminuyendo el tamaño de la aplicación.

Un BFF es una capa intermedia que actúa como intermediario entre los Microfrontends y los servicios de backend, optimizando las respuestas y cargas de trabajo de acuerdo con las necesidades específicas de los frontends, mejorando así la eficiencia en la comunicación entre las partes.

La estrategia de CSS en JS permite encapsular estilos dentro de componentes JavaScript, evitando así conflictos de estilos entre diferentes Microfrontends y asegurando que los estilos no se sobrescriban unos a otros.

Saravana Srinivasan
Saravana Srinivasan
31 min
24 Oct, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Esta charla explora las estrategias de Microfrontend y los beneficios de usar la arquitectura Multiplying para implementar aplicaciones en múltiples plataformas. Se discuten los conceptos de libertad de plataforma, implementación de Microfrontend y Backend for Frontend (BFF). La charla también destaca los desafíos de depuración y estilización en aplicaciones de Microfrontend más grandes e introduce la arquitectura Multiplying como solución. Se explican los elementos principales de la arquitectura Multiplying y cómo permite la comunicación entre diferentes pilas tecnológicas. La charla concluye mostrando el uso de listas incrustadas, módulos federados y configuración de Webpack para lograr un intercambio eficiente de código y implementación en múltiples distribuciones.

1. Platform Freedom with Microfrontends

Short description:

Esta charla te llevará a través de las estrategias de Microfrontend, los problemas que resuelve la arquitectura de Microfrontend, un nuevo marco de trabajo que se construyó sobre las estrategias de Microfrontend y cómo esta multiplicación del nuevo marco de trabajo nos ayudó a implementar nuestras aplicaciones en múltiples sistemas distribuidos. Quería compartir la experiencia que tuvimos y las lecciones que aprendimos al implementar ciertos casos de uso. Comenzamos con microamistades y luego introdujimos un marco de trabajo llamado la arquitectura de multiplicación. Y tuvimos ciertos aprendizajes de ello. Y finalmente, con la colaboración de las estrategias de microamistad, junto con la arquitectura de micro-multiplicación, logramos nuestros resultados. En primer lugar, me gustaría abordar mi tema de libertad de plataforma con microamistad y quiero enfatizar lo que quiero decir con el término libertad de plataforma. Todos sabemos que la tecnología web domina completamente la industria del desarrollo de software en este momento. Y la tecnología web se ha convertido en la opción predeterminada para la mayoría de los desarrolladores y las empresas que desean desarrollar una aplicación o un producto para su caso de uso.

Hola, y bienvenidos a todos a la charla, Libertad de plataforma con Microfrontends. Esta charla te llevará a través de las estrategias de Microfrontend, los problemas que resuelve la arquitectura de Microfrontend, un nuevo marco de trabajo que se construyó sobre las estrategias de Microfrontend y cómo esta multiplicación del nuevo marco de trabajo nos ayudó a implementar nuestras aplicaciones en múltiples sistemas distribuidos.

Antes de entrar en el tema, permítanme presentarme, soy Saravan Balaji Srinivasan, trabajo como ingeniero de software senior en Red Hat como desarrollador full stack con un enfoque principalmente en las tecnologías JavaScript. Trabajo en áreas donde construimos herramientas para productos de automatización empresarial y especificaciones de flujos de trabajo sin servidor, etc. Eso es todo sobre mí. Y volvamos al tema.

Me gustaría comenzar con la historia de Red Hat. Quería llevar esta charla de tal manera que pudiera compartir la experiencia que tuvimos y las lecciones que aprendimos al implementar ciertos casos de uso. Hace algún tiempo, teníamos un caso de uso en el que queríamos implementar ciertas herramientas que construimos para ejecutar en varias plataformas, y queríamos reutilizar los componentes que creamos en React JS. Esa fue la idea detrás de la historia. Comenzamos con microamistades y luego introdujimos un marco de trabajo llamado la arquitectura de multiplicación. Tuvimos ciertos aprendizajes de ello. Y finalmente, con la colaboración de las estrategias de microamistad, junto con la arquitectura de micro-multiplicación, logramos nuestros resultados. La próxima diapositiva mostrará cómo lo logramos. En primer lugar, me gustaría abordar mi tema de libertad de plataforma con microamistad y quiero enfatizar lo que quiero decir con el término libertad de plataforma. Todos sabemos que la tecnología web domina completamente la industria del desarrollo de software en este momento. Y la tecnología web se ha convertido en la opción predeterminada para la mayoría de los desarrolladores y las empresas que desean desarrollar una aplicación o un producto para su caso de uso. Esto se debe a que la tecnología web tiene una base sólida. Tiene estándares sólidos, patrones, técnicas. Y las arquitecturas de la tecnología web están evolucionando muy rápido a lo largo del tiempo. También tiene un ecosistema rico. Cuando hablamos de tecnologías web, no podemos ignorar JavaScript. Ahora, en este momento, JavaScript está en todas partes. Aunque inicialmente comenzó como un lenguaje de scripting para un propósito pequeño, ahora ha evolucionado a lo largo del tiempo y puedes encontrar JavaScript en todas partes en tu navegador. En el navegador de tu computadora portátil, en tus teléfonos móviles, en tu PWA, en tus servidores, en todas partes puedes ver JavaScript ahora. Además, después de la introducción de TypeScript, personalmente siento que, debido a su comportamiento de verificación de tipos estáticos, la percepción de los desarrolladores sobre la tecnología web ha cambiado por completo. Personas como yo que comenzaron mi carrera en la tecnología Java, como desarrollador de Java, después me convertí en ingeniero de JavaScript y luego, para la tecnología web y todo eso, como ingeniero full stack ahora, comencé a gustar la tecnología web después de aprender TypeScript, porque mi código es totalmente seguro en cuanto a tipos. También enfatizaré que el navegador está en todas partes en este momento, ¿verdad? Puedes tener tu navegador en tu computadora portátil, puedes tenerlo en tu móvil y servidores, y PWA, etc.

2. Estrategias de Plataforma y Microfrontend

Short description:

El objetivo es ejecutar aplicaciones en múltiples plataformas como VS Code, navegadores y GitHub. La tecnología web ha evolucionado rápidamente, comenzando con la arquitectura evolutiva, seguida de microservicios y sin servidor. Las estrategias de microfrontend se utilizan para descomponer aplicaciones monolíticas en aplicaciones frontend más pequeñas y entregables de forma independiente. Cada microfrontend puede ser propiedad y mantenida por un equipo individual y autónomo.

Ahora, el navegador no es solo una ventana para acceder a Internet. Por lo tanto, puedes mostrar tu interfaz de usuario gráfica en cualquier lugar de tu navegador y puede ejecutarse en cualquier plataforma. Entonces, lo que quiero decir con plataforma en mi tema es que la aplicación debe ejecutarse en plataformas. En nuestro caso de uso, las plataformas que queríamos lograr son ejecutar nuestras aplicaciones en el IDE de VS Code como una extensión. Y debe ejecutarse en el navegador como una extensión. Tal vez en el caso de Chrome, debe ejecutarse como una extensión de Chrome. Y en el caso de Firefox, debe ejecutarse como una extensión de Firefox. Y el mismo conjunto de código, el mismo conjunto de componentes debe ejecutarse en la aplicación web y también en GitHub como una extensión de GitHub. Este fue el objetivo final que queríamos lograr. Para ello, quiero que mis dos enlaces se ejecuten en VS Code, GitHub, navegador como una aplicación web y también en el...

Al implementar esto, analizamos la arquitectura que tenemos en la tecnología web. La tecnología web, como mencioné en la diapositiva anterior, está creciendo muy rápido. Comenzando con la arquitectura evolutiva, que admite cambios incrementales guiados como un primer principio en múltiples dimensiones. Luego viene el rompedor de camino, que llamamos microservicios, que permite que el backend se divida en microservicios más pequeños y desacoplados que pueden ejecutarse de forma independiente. Y luego viene la palabra de moda en este momento, que es sin servidor, donde el backend es un servicio. Puedes implementar tu función en un servidor y pagar solo por la cantidad de veces que se llama la función y el tiempo que se utiliza. Puedes pagar solo por eso en lugar de poseer todo el servidor. Y finalmente, tenemos el término microfrontend, que nuevamente, desde donde pensamos en implementar estrategias de microfrontend para un caso de uso. Esto me lleva a la siguiente diapositiva nuevamente.

Supongo que la mayoría de ustedes ya han probado algo en las estrategias de microfrontend o tal vez hayan escuchado el término, pero aún así me gustaría repasar las estrategias de microfrontend para las personas que aún no lo han aprendido. Considera si tienes una aplicación frontend monolítica más grande, cuando digo monolítica, es una gran cantidad de aplicación que es mantenida por un gran equipo y que tiene una gran cantidad de código. Cuando tienes este tipo de escenario, obviamente estás sujeto a muchos errores, problemas de producción, errores que no se pueden solucionar fácilmente. Para abordar este problema, los desarrolladores de todo el mundo comenzaron a pensar en una solución para dividir esta aplicación monolítica en piezas más pequeñas. Esto sucedió hace unos cinco o seis años. En ese momento, los microservicios estaban evolucionando mucho en las tecnologías de backend, por lo que los desarrolladores frontend querían tener este conjunto similar de estrategias también en el frontend. Fue entonces cuando se introdujo el término microfrontend. Así es como evolucionó el microfrontend. Según Kam Jackson, un arquitecto reconocido, la arquitectura de microfrontend es un estilo arquitectónico donde las aplicaciones frontend entregables de forma independiente se componen en un todo mayor. Simplemente, puedo decir que se trata de dividir una aplicación monolítica en microfrontends más pequeños, y cada microfrontend puede ser propiedad de un equipo individual y autónomo. Pueden tener sus propias implementaciones, sus propios ciclos de lanzamiento, pueden mantener sus propios microfrontends sin depender de otros microfrontends u otros equipos.

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
¿Tienes un producto grande construido por muchos equipos? ¿Estás luchando para lanzar a menudo? ¿Se convirtió tu frontend en un monolito inmantenible masivo? Si, como yo, has respondido sí a cualquiera de esas preguntas, ¡esta charla es para ti! Te mostraré exactamente cómo puedes construir una arquitectura de micro frontend con Remix para resolver esos desafíos.
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
Remix es un marco de trabajo web que te ofrece el modelo mental simple de una aplicación de múltiples páginas (MPA) pero el poder y las capacidades de una aplicación de una sola página (SPA). Uno de los grandes desafíos de las SPA es la gestión de la red que resulta en una gran cantidad de indirecciones y código defectuoso. Esto es especialmente notable en el estado de la aplicación que Remix elimina por completo, pero también es un problema en los componentes individuales que se comunican con un punto final de backend de un solo propósito (como una búsqueda de combobox, por ejemplo).
En esta charla, Kent demostrará cómo Remix te permite construir componentes de interfaz de usuario complejos que están conectados a un backend de la manera más simple y poderosa que hayas visto. Dejándote tiempo para relajarte con tu familia o lo que sea que hagas para divertirte.
Entendiendo la Arquitectura Fiber de React
React Advanced Conference 2022React Advanced Conference 2022
29 min
Entendiendo la Arquitectura Fiber de React
Top Content
Hemos escuchado mucho sobre la Arquitectura Fiber de React, pero parece que pocos de nosotros la entendemos en profundidad (o tenemos el tiempo para hacerlo). En esta charla, Tejas repasará su mejor intento de entender Fiber (revisado por otros expertos), y lo presentará de una manera 'explicar-como-si-tuviera-cinco años'.
De Monolito a Micro-Frontends
React Advanced Conference 2022React Advanced Conference 2022
22 min
De Monolito a Micro-Frontends
Top Content
Muchas empresas en todo el mundo están considerando adoptar Micro-Frontends para mejorar la agilidad empresarial y la escala, sin embargo, hay muchas incógnitas cuando se trata de cómo se ve en la práctica el camino de migración. En esta charla, discutiré los pasos necesarios para migrar con éxito una aplicación React monolítica a una arquitectura de frontend más modular y desacoplada.
The Eternal Sunshine of the Zero Build Pipeline
React Finland 2021React Finland 2021
36 min
The Eternal Sunshine of the Zero Build Pipeline
For many years, we have migrated all our devtools to Node.js for the sake of simplicity: a common language (JS/TS), a large ecosystem (NPM), and a powerful engine. In the meantime, we moved a lot of computation tasks to the client-side thanks to PWA and JavaScript Hegemony.
So we made Webapps for years, developing with awesome reactive frameworks and bundling a lot of dependencies. We progressively moved from our simplicity to complex apps toolchains. We've become the new Java-like ecosystem. It sucks.
It's 2021, we've got a lot of new technologies to sustain our Users eXperience. It's time to have a break and rethink our tools rather than going faster and faster in the same direction. It's time to redesign the Developer eXperience. It's time for a bundle-free dev environment. It's time to embrace a new frontend building philosophy, still with our lovely JavaScript.
Introducing Snowpack, Vite, Astro, and other Bare Modules tools concepts!
Composición vs Configuración: Cómo Construir Componentes Flexibles, Resilientes y a Prueba de Futuro
React Summit 2022React Summit 2022
17 min
Composición vs Configuración: Cómo Construir Componentes Flexibles, Resilientes y a Prueba de Futuro
Top Content
Existen muchas formas de autorizar componentes en React, y hacerlo correctamente puede no ser tan fácil, especialmente cuando los componentes se vuelven más complejos. En esta charla, aprenderás cómo construir componentes React a prueba de futuro. Cubriremos dos enfoques diferentes para construir componentes - Composición y Configuración, para construir el mismo componente utilizando ambos enfoques y explorar sus ventajas y desventajas.

Workshops on related topic

IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
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.
Masterclass de alto rendimiento Next.js
React Summit 2022React Summit 2022
50 min
Masterclass de alto rendimiento Next.js
Workshop
Michele Riva
Michele Riva
Next.js es un marco convincente que facilita muchas tareas al proporcionar muchas soluciones listas para usar. Pero tan pronto como nuestra aplicación necesita escalar, es esencial mantener un alto rendimiento sin comprometer el mantenimiento y los costos del servidor. En este masterclass, veremos cómo analizar el rendimiento de Next.js, el uso de recursos, cómo escalarlo y cómo tomar las decisiones correctas al escribir la arquitectura de la aplicación.
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.