Detección de servicios - 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.

Detección de servicios

El patrón de descubrimiento de interfaces mejora la experiencia de desarrollo al desarrollar, probar y entregar microinterfaces. El patrón utiliza una configuración que se puede compartir y que describe el punto de entrada de las microinterfaces. La configuración que se puede compartir también incluye metadatos adicionales que se utilizan para realizar implementaciones seguras en cada entorno mediante el uso de versiones de Canary.

El desarrollo de interfaces modernas implica el uso de una amplia variedad de herramientas y bibliotecas para respaldar la modularidad durante el desarrollo. Tradicionalmente, este proceso consistía en agrupar el código en archivos individuales que podían alojarse en una CDN con el objetivo de reducir al mínimo las llamadas de red durante el tiempo de ejecución, incluida la carga inicial (cuando una aplicación se abre en un navegador) y el uso (cuando un cliente realiza acciones como elegir botones o insertar información).

Dividir paquetes

Las arquitecturas microfrontend resuelven los problemas de rendimiento causados por los paquetes muy grandes que se generan al agrupar individualmente un gran conjunto de funcionalidades. Por ejemplo, un sitio web de comercio electrónico muy grande se puede agrupar en un archivo de 6 MB. JavaScript A pesar de la compresión, el tamaño de ese archivo puede afectar negativamente a la experiencia del usuario al cargar la aplicación y descargar el archivo desde una CDN optimizada para aplicaciones avanzadas.

Si divides la aplicación en microinterfaces para la página de inicio, los detalles del producto y el carrito de compras, puedes utilizar un mecanismo de agrupamiento para crear tres paquetes individuales de 2 MB. Este cambio podría mejorar el rendimiento en la primera carga en un 300 por ciento cuando los usuarios usen la página de inicio. Los paquetes de microinterfaces de productos o carritos se cargan de forma asíncrona solo si el usuario visita la página del producto en busca de un artículo y decide comprarlo.

Hay muchos marcos y bibliotecas disponibles basados en este enfoque, y esto supone ventajas tanto para los clientes como para los desarrolladores. Para identificar los límites empresariales que pueden resultar en la disociación de las dependencias en el código, puede asignar diferentes funciones empresariales a varios equipos. La propiedad distribuida aporta independencia y agilidad.

Al dividir los paquetes de compilación, puede usar una configuración para mapear las microinterfaces e impulsar la organización de la navegación durante la carga inicial y posterior a la carga. Luego, la configuración se puede consumir durante el tiempo de ejecución en lugar de durante el tiempo de compilación. Por ejemplo, el código del front-end del lado del cliente o el código del backend del lado del servidor pueden realizar una llamada de red inicial a una API para obtener dinámicamente la lista de microinterfaces. También obtiene los metadatos necesarios para la composición y la integración. Puede configurar las estrategias de conmutación por error y el almacenamiento en caché para garantizar la fiabilidad y el rendimiento. El mapeo de las microinterfaces permite que las implementaciones individuales de las microinterfaces sean detectadas por las microinterfaces previamente implementadas y orquestadas por una aplicación shell.

Lanzamientos de Canary

Una versión canaria es un patrón popular y bien establecido para implementar microservicios. Las versiones de Canary agrupan a los usuarios objetivo de una versión en varios grupos, y las versiones cambian de forma gradual, en lugar de sustituirlas inmediatamente (lo que también se conoce como despliegue azul/verde). Un ejemplo de estrategia de lanzamiento rápido consiste en implementar un nuevo cambio para el 10 por ciento de los usuarios objetivo y añadir un 10 por ciento cada minuto, con una duración total de 10 minutos para llegar al 100 por ciento.

El objetivo de una versión preliminar es obtener comentarios tempranos sobre los cambios y monitorear el sistema para reducir el impacto de cualquier problema. Cuando existe la automatización, un sistema interno puede supervisar las métricas de la empresa o del sistema y detener la implementación o iniciar una reversión.

Por ejemplo, un cambio puede provocar un error que, en los primeros minutos de una publicación, provoque una pérdida de ingresos o una degradación del rendimiento. La supervisión automatizada puede activar una alarma. Con el patrón de detección de servicios, esa alarma puede detener la implementación y revertirla inmediatamente, lo que afecta solo al 20 por ciento de los usuarios en lugar del 100 por ciento. La empresa se beneficia de la reducción del alcance del problema.

Para ver un ejemplo de arquitectura que usa DynamoDB como almacenamiento para implementar una API de administración de REST, consulte la solución Frontend Service Discovery on AWS en. GitHub Utilice la AWS CloudFormation plantilla para integrar la arquitectura en sus propias canalizaciones de CI/CD. La solución incluye una API REST Consumer para integrar la solución con sus aplicaciones frontend.