Microfrontend: microservicios en el desarrollo frontend

El uso de microfrontend nos permite utilizar y gestionar diferentes tecnologías de forma independiente incluso cuando estas tecnologías están acopladas entre sí. Esto se traduce en una mejor usabilidad, mayor autonomía del software y mayor agilidad en el desarrollo de procesos internos y externos. Algo que toda empresa del siglo XXI necesita para conseguir alcanzar los mejores resultados posibles. 

Si quieres saber más sobre qué son los microfrontends y todo lo que pueden hacer por tu compañía sigue leyendo y te lo contamos.

¿Qué es microfrontend?

Microfrontend o Module Federation es una forma de desarrollar páginas web que consiste en la combinación de diferentes compilaciones con el objetivo de crear una única aplicación.

El término microfrontend surge en el año 2016. Hoy en día, en la parte de backend, se ha evolucionado hacia un backend modularizado en diferentes piezas. En cambio, el frontend aún sigue siendo considerado un bloque monolítico. 

En este sentido, la tendencia actual es crear una aplicación de navegador potente y rica en características desde donde poder gestionar todo, también conocida como “single page app”.

¿Para qué sirve un microfrontend?

Un microfrontend es como un microservicio de backend pero que existe dentro de un navegador. El enfoque de los microfrontends es pensar en un sitio web (o aplicación web) como una composición de características que son propiedad de equipos independientes. 

De este modo, los microfrontends son secciones de la interfaz de usuario. Estas secciones a menudo constan de docenas de componentes que usan framework como React, Vue y Angular para renderizar sus componentes. 

Cada microfrontend puede ser administrado por un equipo diferente y puede ser implementado usando su propio framework. En este sentido, es práctico y se recomienda usar un solo framework para todos sus microfrontends, aunque, en la práctica, se pueden agregar frameworks adicionales al migrar o al experimentar.

Cada microfrontend tiene su repositorio git propio, su archivo package.json donde están las diferentes dependencias, y su propia configuración para la herramienta de compilación. Por lo tanto, también existe un CI/CD independiente por cada microfrontend.

Ventajas de microfrontend

Las principales ventajas que nos ofrece utilizar microfrontends son las siguientes: 

Nos permite la posibilidad utilizar diferentes tecnologías

Al usar microfrontend, se pueden tener al mismo tiempo diversas tecnologías como Vue, React o Angular entre otros, ya que se desarrollaran de forma independiente en cada microfrontends, diseñando aplicaciones autocontenidas que no dependen las unas de las otras.

Aislar el código del equipo

No hay necesidad de compartir tiempo de ejecución. Usar microfrontends permite la creación de aplicaciones independientes y sin necesidad de confiar en un estado compartido o variables globales.

Escalabilidad

Esta independencia de microfrontend permite una aplicación escalable. En términos de negocio, y atendiendo a las necesidades del proyecto, nos permite no perder las cualidades que ya lo conforman y le añaden valor. Además, también permiten añadir otras funcionalidades nuevas e ir acoplando otras de forma progresiva sin depender del código ya existente.

Código mantenible y reducido

Cada desarrollador trabaja de forma independiente en cada microfrontend. De esta forma, es posible hacer desarrollos paralelos y aislados. En consecuencia, el código se verá reducido, ya que cada microfrontend es una pequeña pieza y no funciona como un frontend monolítico.

Desarrollo independiente y autonomía

Los microfrontends puede desarrollarse en paralelo y no depender de otros desarrollos. En este sentido, se pueden hacer diferentes versiones de cada microfrontend y testearse y desplegarse de forma individual e independiente entre sí. 

Optimización y organización de los recursos y equipos de la empresa

Al ser independientes, los equipos de desarrollo de los microfrontends pueden trabajar sobre las diferentes features de forma autónoma. Además, todos pueden trabajar en paralelo y de forma organizada, lo que se traduce en un acortamiento de los tiempos de desarrollo.

Desventajas de los microfrontends

Algunas de las principales desventajas de los microfrontends son las siguientes: 

Alta complejidad operacional

Una de las desventajas más destacadas del uso de microfrontends es la alta complejidad operacional que implican. En este sentido, cada microfrontend debe desplegarse de forma independiente, lo que conlleva la correspondiente gestión de diferentes entornos y servidores. 

Además, todo esto implica también un mayor gasto económico y de recursos para poder llevarlo a cabo. 

Aumento del tamaño de las dependencias de la aplicación final

La aplicación final, donde convergen todos los microfrontends, puede encontrarse con un tamaño considerablemente superior cuando se usan microfrontends. Por ejemplo, esto podría suceder debido a la duplicidad de dependencias entre otros. En el caso de las dependencias, lo más recomendable es crear una biblioteca de dependencias compartidas. 

Tipos de microfrontend

A grandes rasgos, encontramos tres tipos de microfrontends:  

  • Aplicaciones single-spa: son microfrontends que renderizan componentes para un conjunto de rutas específicas.
  • Paquetes single-spa: son microfrontends que renderizan componentes sin controlar las rutas.
  • Módulos de utilidad: son microfrontends que exportan lógica JavaScript compartida y sin renderizar componentes.

Microfrontend: una solución a la necesidad de una arquitectura escalable

Las bases del código se están volviendo cada vez más complejas, lo que implica una creciente necesidad de arquitecturas más escalables. En este sentido, surge la necesidad de poder escalar la entrega de software a través de equipos independientes y autónomos. Una posible solución a esta necesidad la encontramos en el uso de microfrontends, que nos permiten trabajar de forma independiente con cada una de las diferentes secciones de interfaz de usuario sin afectar al resto del código. 

Esta tecnología es especialmente necesaria en proyectos de gran envergadura y de alta complejidad técnica, ya que permite trabajar de forma modularizada, distribuyendo de una forma más eficiente tanto los recursos técnicos como operacionales. 

¿Quieres saber cómo implementar RPA en tu empresa? Descarga la guía aquí

Más noticias

¿Cómo se ejecuta un proyecto de automatización de procesos con RPA?

La automatización de procesos con RPA es una de las tendencias en la transformación digital. La posibilidad de automatizar tareas, para que las personas puedan dedicar su tiempo y esfuerzo a tareas...

Leer másArrow 41

Explainability AI: cómo hacer nuestro modelo legible

A la hora de tomar decisiones, la inteligencia artificial se ha convertido en una herramienta muy útil en el día a día. Lo curioso es que esto es así tanto en el ámbito personal como en el laboral....

Leer másArrow 41

Inversión en tecnología: clave para hacer frente a la crisis económica

La crisis económica es una realidad palpable en la actualidad. La inflación de los precios, la poca disponibilidad de los combustibles, así como la lenta recuperación de la Covid-19, han hecho que...

Leer másArrow 41

Supply chain: tendencias y retos tecnológicos

En el mundo empresarial contemporáneo, la gestión efectiva de la cadena de suministro es fundamental para el éxito y la competitividad de las organizaciones. La cadena de suministro, o supply chain...

Leer másArrow 41

Cómo diseñar una estrategia de IA para incrementar el éxito de los proyectos de Machine Learning

En el Webinar “AI Strategy: Cómo diseñar una estrategia de IA para incrementar el éxito de los proyectos”, hemos compartido una visión acerca de aquellos problemas generales que hacen que proyectos...

Leer másArrow 41