View a markdown version of this page

Comprensión e implementación de microinterfaces en AWS - AWS Orientación prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Comprensión e implementación de microinterfaces en AWS

Amazon Web Services (colaboradores)

Julio de 2024 (historial de documentos)

A medida que las organizaciones se esfuerzan por lograr agilidad y escalabilidad, la arquitectura monolítica convencional a menudo se convierte en un obstáculo, lo que dificulta el desarrollo y la implementación rápidos. Micro-frontends mitigue esta situación dividiendo las interfaces de usuario complejas en componentes más pequeños e independientes que puedan desarrollarse, probarse e implementarse de forma autónoma. Este enfoque mejora la eficiencia de los equipos de desarrollo y facilita la colaboración entre el backend y el frontend, lo que fomenta una alineación integral de los sistemas distribuidos.

Esta guía prescriptiva está diseñada para ayudar a los líderes de TI, propietarios de productos y arquitectos de diversos ámbitos profesionales a comprender la arquitectura microfrontend y crear aplicaciones microfrontend en Amazon Web Services ().AWS

Descripción general de

Micro-frontends son una arquitectura basada en la descomposición de las interfaces de las aplicaciones en artefactos desarrollados e implementados de forma independiente. Al dividir las interfaces de gran tamaño en artefactos de software autónomos, se puede encapsular la lógica empresarial y reducir las dependencias. Esto permite una entrega más rápida y frecuente de los incrementos de productos.

Micro-frontends son similares a los microservicios. De hecho, el término microfrontend se deriva del término microservicio y pretende transmitir la noción de microservicio como frontend. Si bien una arquitectura de microservicios suele combinar un sistema distribuido en el backend con un frontend monolítico, los microfrontend son servicios frontend distribuidos autónomos. Estos servicios se pueden configurar de dos maneras:

  • Frontend-only, que se integra con una capa de API compartida detrás de la cual se ejecuta una arquitectura de microservicios

  • Full-stack, lo que significa que cada microinterfaz tiene su propia implementación de backend.

El siguiente diagrama muestra una arquitectura de microservicios tradicional, con un monolito de interfaz que utiliza una puerta de enlace API para conectarse a los microservicios de backend.

Client-side monolito de interfaz que se conecta a microservicios del lado del servidor.

El siguiente diagrama muestra una arquitectura de microinterfaz con diferentes implementaciones de microservicios.

Client-side módulos frontales de capa de integración y microservicios del lado del servidor.

Como se muestra en el diagrama anterior, puede utilizar microinterfaces con arquitecturas de renderización del lado del cliente o del lado del servidor:

  • Client-side Las microinterfaces renderizadas pueden consumir directamente las API expuestas por una API Gateway centralizada.

  • El equipo puede crear un backend para frontend (BFF) dentro de un contexto limitado para reducir la conversación del frontend con las API.

  • En el lado del servidor, las microinterfaces se pueden expresar con un enfoque del lado del servidor y, en el del lado del cliente, mediante una técnica llamada hidratación. Cuando el navegador renderiza una página, la asociada JavaScript se hidrata para permitir la interacción con los elementos de la interfaz de usuario, como hacer clic en un botón.

  • Micro-frontends puede renderizarse en el backend y usar hipervínculos para dirigirse a una nueva parte de un sitio web.

Micro-frontends son ideales para las organizaciones que desean hacer lo siguiente:

  • Amplíe con varios equipos trabajando en el mismo proyecto.

  • Adopte la descentralización de la toma de decisiones, lo que permitirá a los desarrolladores innovar dentro de los límites de los sistemas identificados.

Este enfoque reduce significativamente la carga cognitiva de los equipos, ya que pasan a ser responsables de partes específicas del sistema. Aumenta la agilidad empresarial porque se pueden realizar modificaciones en una parte del sistema sin interrumpir el resto.

Micro-frontends son un enfoque arquitectónico distinto. Aunque existen diferentes formas de crear microinterfaces, todas tienen características comunes:

  • Una arquitectura de microfrontend se compone de múltiples elementos independientes. La estructura es similar a la modularización que ocurre con los microservicios en el backend.

  • Una microinterfaz es completamente responsable de la implementación de la interfaz dentro de su contexto limitado, que comprende lo siguiente:

    • Interfaz de usuario

    • Datos

    • Estado o sesión

    • Lógica empresarial

    • Flujo

Un contexto acotado es un sistema internamente coherente con límites cuidadosamente diseñados que median lo que puede entrar y salir. Una microinterfaz debe compartir la menor cantidad posible de datos y lógica empresarial con otras microinterfaces. Dondequiera que sea necesario compartir, se lleva a cabo a través de interfaces claramente definidas, como eventos personalizados o transmisiones reactivas. Sin embargo, cuando se trata de cuestiones transversales, como un sistema de diseño o el registro de bibliotecas, el intercambio intencional es bienvenido.

Un patrón recomendado es crear microinterfaces mediante el uso de equipos multifuncionales. Esto significa que cada microinterfaz es desarrollada por el mismo equipo que trabaja desde el backend hasta el frontend. La propiedad del equipo es crucial, desde la codificación hasta la operacionalización del sistema en producción.

Esta guía no pretende recomendar un enfoque en particular. En cambio, analiza diferentes patrones, mejores prácticas, compensaciones y consideraciones arquitectónicas y organizativas.