¡Compártelo!

Microfrontends: qué son, ventajas y cuándo utilizarlos

En este post analizamos qué son los microfrontends, por qué y cuándo utilizarlos y cuáles son sus principales ventajas e inconvenientes. ¡Vamos allá!

¿Qué son los microfrontends?

Los microfrontends extienden los conceptos de microservicios al ecosistema frontend. Esto surge ante la necesidad de dividir en diferentes capas y equipos de desarrollo las diferentes partes de una aplicación frontend.

¿Por qué utilizarlos?

Con el tiempo, el ecosistema frontend de una aplicación crece y se vuelve muy difícil de mantener. Con microfrontends, podemos contar con diferentes equipos asignados a pequeñas áreas o dominios de negocio de una aplicación completa que trabajan de forma independiente e incluso en repositorios diferentes.

frontend monolítico
Frontend monolítico.
Arquitectura basada en microfrontends
Arquitectura basada en microfrontends.

Conceptos generales sobre microfrontends

En los microfrontends:

  • La tecnología y el framework de cada equipo es independiente. No es necesario coordinarse con otros equipos. ¡Aunque sí recomendable!
  • El código de cada aplicación por equipo está aislado. Cada aplicación corre por su cuenta en diferentes tiempos de ejecución. Aunque pueden compartir estados y comunicarse entre ellas.

Ventajas de los microfrontends

  • Implementaciones por equipos de trabajos independientes. Cada equipo instala su microfrontend, desarrolla en su repositorio independiente y realiza sus despliegues totalmente separados del resto de microfrontends.
  • Mayor rendimiento. Con una arquitectura sin microfrontends sería necesario cargar la aplicación completa. Usando microfrontends la carga de áreas funcionales será bajo demanda y el tiempo de carga inicial disminuirá muy considerablemente.
  • Implementación más rápida. Para dar solución a cualquier problema en la aplicación desplegada siempre será mucho más ágil y rápido. Solo bastaría con corregir el problema en el microfrontend afectado y desplegar solo ese. Sin microfrontends habría que desplegar completamente toda la aplicación. Además de realizar cualquier mantenimiento o evolutivo, solo se realizarían los cambios en el área afectada.

Desventajas

  • Coste alto de arquitectura. Una aplicación basada en microfrontends necesita de un equipo que coordine estas micro aplicaciones, ya que tienen que correr en una carcasa común. La cual necesitará estar supervisada por alguien de gran nivel técnico.
  • Cada área funcional hace la guerra por su cuenta. Al tener diferentes equipos independientes, si no hay un buen jefe de orquesta podemos encontrar áreas de la aplicación muy diferentes a otras en cuanto a aspecto, diseño, funcionalidades duplicadas, etc.

¿Cuándo usar microfrontends?

La arquitectura basada en microfrontends esta pensada para aplicaciones de gran tamaño, con diferentes áreas funcionales de negocio bien definidas. De modo que, aunque estas áreas interactúan entre sí y comparten la misma carcasa, cada una tiene su finalidad especifica.

Frameworks para microfrontends

Hay varios frameworks para desarrollar una arquitectura basada en microfrontends. Uno muy popular es single-spa. En él podéis ver diferentes ejemplos con sus correspondientes repositorios:

También existen otros frameworks para microfrontends con diferentes ventajas e inconvenientes:

Conclusión

La arquitectura basada en microfrontends es una opción muy interesante a considerar en aplicaciones de gran tamaño, que resultan difíciles de mantener. En este artículo hemos analizado qué son los microfrontends, sus ventajas e inconvenientes y cuándo conviene utilizarlos.

¿Te gustaría llevar a cabo un proyecto de desarrollo frontend? Creamos frontales desacoplados, ligeros, seguros y testados. ¡Contacta con nosotros!

Artículos relacionados

No code

Qué es el No Code: Principales herramientas

La capacidad de crear soluciones tecnológicas sin la necesidad de escribir código se ha convertido en una tendencia cada vez más relevante. Esto se debe en gran parte al surgimiento de herramientas No Code, que permiten a personas con diversos niveles de habilidad técnica dar

Object Pooling

Patrones de diseño en los videojuegos: Object Pooling

El uso de patrones de diseño, como el Object Pooling, es una práctica muy recomendable cuando se quieren realizar desarrollos de software escalables, robustos y que tengan un buen rendimiento. Además, nos puede ayudar a mantener una estructuración de todo el código fuente para ayudar

jdk 21

Jdk 21: mejoras en la última versión LTS de Java

Cada 6 meses Java lanza una nueva versión de nuestro lenguaje favorito. Da igual si la estábamos esperando con ganas o si nos pilla por sorpresa, es algo que celebrar dentro de la comunidad. Esta vez la versión 21 incluye diferentes características estables, otras en