Compartir a través de


Diseño de una arquitectura de microservicios

Los microservicios son un estilo arquitectónico popular para crear aplicaciones en la nube que siguen siendo resistentes, escalar de forma eficaz, implementar de forma independiente y evolucionar rápidamente. Para ofrecer un valor real, los microservicios requieren un enfoque diferente para el diseño y el desarrollo de aplicaciones.

En este conjunto de artículos se explora cómo crear una arquitectura de microservicios en Azure. Incluye las instrucciones siguientes:

  • Opciones de proceso para microservicios: evalúe los servicios de proceso de Azure para los microservicios, incluidos Azure Kubernetes Service (AKS), Azure Container Apps y Azure Functions. Obtenga información sobre cuándo usar cada servicio en función de sus requisitos de escalabilidad, sobrecarga de administración e implementación.

  • Comunicación entre servicios: diseñe patrones de comunicación eficaces entre microservicios mediante enfoques sincrónicos y asincrónicos. Obtenga información sobre las API REST, los patrones de mensajería, las arquitecturas controladas por eventos y las tecnologías de malla de servicio para la comunicación confiable entre servicios.

  • Diseño de API: cree API bien diseñadas que admitan principios de arquitectura de microservicios. Obtenga información sobre las estrategias de control de versiones de API, los patrones de control de errores y cómo diseñar API que promuevan el acoplamiento flexible y la evolución del servicio independiente.

  • Puertas de enlace de API: implemente puertas de enlace de API para administrar problemas transversales, como la autenticación, la limitación de velocidad y el enrutamiento de solicitudes. Comprenda cómo las puertas de enlace simplifican las interacciones de cliente y proporcionan una aplicación centralizada de directivas en el ecosistema de microservicios.

  • Consideraciones sobre los datos: aborde los desafíos de administración de datos en las arquitecturas de microservicios, incluidos los patrones de coherencia de datos, las transacciones distribuidas y la elección de los almacenes de datos adecuados. Obtenga información sobre las estrategias para mantener la integridad de los datos a través de los límites del servicio.

  • Orquestación de contenedores: implemente y administre microservicios en contenedores a escala mediante orquestadores de contenedores. Comprenda cómo las plataformas como Kubernetes automatizan la implementación, el escalado, el equilibrio de carga y la administración de estado para mantener el estado deseado del sistema en entornos de producción.

  • Patrones de diseño: aplique patrones de diseño probados específicos de microservicios, incluido el patrón Ambassador para descargar tareas de conectividad, el patrón Bulkhead para el aislamiento de recursos y el patrón Strangler Fig para la refactorización incremental de aplicaciones.

Prerrequisitos

Antes de leer estos artículos, comience con los siguientes recursos:

Arquitectura de ejemplo

Diagrama que muestra la arquitectura de una carga de trabajo de entrega de drones.

Descargue un archivo de Visio de esta arquitectura.

Scenario

Fabrikam, Inc. crea un servicio de entrega de drones. La empresa administra una flota de aviones dron. Las empresas se registran en el servicio y los usuarios pueden solicitar que un dron recoja los bienes para la entrega. Cuando un cliente programa una recogida, un sistema back-end asigna un dron y notifica al usuario un tiempo de entrega estimado. Durante la entrega, el cliente puede realizar un seguimiento de la ubicación del dron, incluida una hora estimada de llegada (ETA) actualizada continuamente.

Esta solución funciona bien para las industrias aeroespaciales y de aviones.

Este escenario implica un dominio bastante complicado. Algunos problemas empresariales incluyen la programación de drones, el seguimiento de paquetes, la administración de cuentas de usuario y el almacenamiento y el análisis de datos históricos. Fabrikam también quiere llegar al mercado y, a continuación, iterar rápidamente para agregar nuevas funcionalidades y capacidades. La aplicación debe funcionar a escala en la nube con un objetivo de alto nivel de servicio (SLO). Fabrikam también espera que diferentes partes del sistema tengan requisitos muy diferentes para el almacenamiento de datos y la consulta. En función de las consideraciones, Fabrikam elige una arquitectura de microservicios para la aplicación de entrega de drones.

Nota:

Para más información sobre cómo elegir entre una arquitectura de microservicios y otros estilos arquitectónicos, consulte la guía de arquitectura de aplicaciones de Azure.

Esta arquitectura usa Kubernetes con AKS. Sin embargo, muchas de las decisiones y desafíos arquitectónicos de alto nivel se aplican a cualquier orquestador de contenedores.

Paso siguiente