¡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

Apache Kafka

Qué es Apache Kafka y cómo dar los primeros pasos

En este artículo vamos a ver qué es Apache Kafka y cuáles son los primeros pasos para empezar a utilizar esta tecnología clave para realizar procesamiento de datos en tiempo real. ¿Qué es Apache Kafka? Apache Kafka es un sistema de mensajería distribuido y escalable

Desarrollador Full Stack

Desarrollador Full Stack: qué es, qué hace y qué necesita saber

Seguro que en los últimos tiempos has oído hablar de la figura del desarrollador Full Stack. Y no es extraño, ya que se ha convertido en uno de los profesionales más solicitados por las empresas en la actualidad. Si no tienes muy claro qué hace

JUnit

Pruebas unitarias en Java con JUnit

Te presentamos un videotutorial dónde podrás aprender cómo crear pruebas unitarias con jUnit 5 de un microservicio desarrollado con Spring Boot. Comenzaremos explicando brevemente la arquitectura de la aplicación ejemplo propuesta y a continuación, mostraremos cómo se prueba una clase que no depende de otras.