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 del documento)

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. Las microinterfaces mitigan esta situación al dividir las interfaces de usuario complejas en componentes más pequeños e independientes que se pueden desarrollar, probar e implementar 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 la alineación de los sistemas distribuidos. end-to-end

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

Información general

Las microinterfaces 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.

Las microinterfaces 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:

  • Solo para front-end, se integra con una capa de API compartida detrás de la cual se ejecuta una arquitectura de microservicios

  • Completo, 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.

Monolito frontend del lado del cliente que se conecta a microservicios del lado del servidor.

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

Módulos frontales de la capa de integración del lado del cliente 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:

  • Las microinterfaces renderizadas del lado del cliente pueden consumir directamente las API expuestas por una API Gateway centralizada.

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

  • Por el lado del servidor, las microinterfaces se pueden expresar con un enfoque del lado del servidor y, por el 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.

  • Las microinterfaces pueden renderizarse en el backend y utilizar hipervínculos para dirigirse a una nueva parte de un sitio web.

Las microinterfaces son ideales para las organizaciones que desean hacer lo siguiente:

  • Amplíe con varios equipos que trabajan 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.

Las microinterfaces son un enfoque arquitectónico distinto. Si bien 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.