Diseño de una arquitectura de microservicios
Los microservicios se han convertido en un estilo arquitectónico popular para crear aplicaciones en la nube resistentes, altamente escalables, implementables de forma independiente y capaces de evolucionar rápidamente. Sin embargo, para ser más que una palabra de moda, los microservicios requieren un enfoque diferente para diseñar y compilar aplicaciones.
En este conjunto de artículos, exploraremos cómo crear una arquitectura de microservicios en Azure. Contenido de los temas:
- Opciones de proceso para microservicios
- Comunicación entre servicios
- Diseño de API
- Puertas de enlace de API
- Consideraciones sobre los datos
- Patrones de diseño
Prerrequisitos
Antes de leer estos artículos, puede empezar con lo siguiente:
- Introducción a las arquitecturas de microservicios. Comprenda las ventajas y los desafíos de los microservicios y cuándo usar este estilo de arquitectura.
- Uso del análisis de dominio para modelar microservicios. Obtenga información sobre un enfoque controlado por dominio para modelar microservicios.
Implementación de referencia
Para ilustrar los procedimientos recomendados para una arquitectura de microservicios, creamos una implementación de referencia que llamamos a la aplicación Drone Delivery. Esta implementación se ejecuta en Kubernetes mediante Azure Kubernetes Service (AKS). Puede encontrar la implementación de referencia en GitHub.
Descargar un archivo de Visio de esta arquitectura.
Escenario
Fabrikam, Inc. está iniciando 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 con un tiempo de entrega estimado. Mientras la entrega está en curso, el cliente puede realizar un seguimiento de la ubicación del dron, con una ETA actualizada continuamente.
Esta solución es ideal para los sectores aeroespaciales y de aeronaves.
Este escenario implica un dominio bastante complicado. Algunos de los problemas empresariales incluyen la programación de drones, los paquetes de seguimiento, la administración de cuentas de usuario y el almacenamiento y el análisis de datos históricos. Además, Fabrikam quiere llegar al mercado rápidamente y, a continuación, iterar rápidamente, agregando nuevas funcionalidades y funcionalidades. 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. Todas estas consideraciones llevan a Fabrikam a elegir una arquitectura de microservicios para la aplicación Drone Delivery.
Nota:
Para obtener ayuda para elegir entre una arquitectura de microservicios y otros estilos arquitectónicos, consulte la Guía de arquitectura de aplicaciones de Azure.
Nuestra implementación de referencia usa Kubernetes con Azure Kubernetes Service (AKS). Sin embargo, muchas de las decisiones y desafíos arquitectónicos de alto nivel se aplicarán a cualquier orquestador de contenedores.