Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Esta arquitectura de referencia usa Azure Integration Services para orquestar llamadas a sistemas back-end empresariales. Los sistemas back-end pueden incluir sistemas de software como servicio (SaaS), servicios Azure o servicios web existentes en su empresa. Integration Services abarca varios componentes, como Azure Logic Apps, Azure API Management, Azure Service Bus, Azure Event Grid, Azure Functions y Azure Data Factory. Esta arquitectura básica solo usa Logic Apps y API Management.
Arquitectura
Descargue un archivo Visio de esta arquitectura.
Flujo de datos
El siguiente flujo de datos corresponde al diagrama anterior:
La aplicación es un cliente que llama al gateway de API después de autenticarse con Microsoft Entra ID. La aplicación puede ser una aplicación web, una aplicación móvil o cualquier otro cliente que realice solicitudes HTTP.
Microsoft Entra ID autentica la aplicación cliente. La aplicación cliente obtiene un token de acceso de Microsoft Entra ID e lo incluye en la solicitud a la puerta de enlace de API.
API Management consta de dos componentes relacionados:
El API gateway acepta llamadas HTTP de la aplicación cliente, valida el token de Microsoft Entra ID y reenvía la solicitud al servicio back-end. La puerta de enlace de API también puede transformar solicitudes y respuestas, y almacenar en caché las respuestas.
Los desarrolladores usan el portal para desarrolladores para detectar e interactuar con las API. Puede personalizar el portal para desarrolladores para que coincida con la personalización de marca de su organización.
Las aplicaciones lógicas organizan las llamadas a los servicios back-end. Varios eventos pueden desencadenar aplicaciones lógicas y las aplicaciones lógicas pueden llamar a varios servicios. En esta arquitectura, Logic Apps llama a los servicios back-end y proporciona conectividad a través de conectores, lo que reduce la necesidad de código personalizado.
Los servicios back-end pueden ser cualquier aplicación de línea de negocio (LOB) o servicio, como una base de datos, un servicio web o una aplicación SaaS. Se pueden hospedar en Azure o en el entorno local.
Componentes
Integration Services es una colección de servicios que puede usar para integrar aplicaciones, datos y procesos. Esta solución usa dos de estos servicios:
Logic Apps es una plataforma sin servidor para la creación de flujos de trabajo empresariales que integran aplicaciones, datos y servicios. En esta arquitectura, Logic Apps facilita la integración basada en mensajes entre sistemas, organiza las llamadas a los servicios back-end y proporciona conectividad a través de conectores. Este enfoque reduce la necesidad de código personalizado.
API Management es un servicio administrado para la publicación de catálogos de API de HTTP. Puede usarlo para promover la reutilización y la detectabilidad de las API e implementar una puerta de enlace de API en solicitudes de API de proxy. API Management también proporciona un portal para desarrolladores para que los clientes detecten e interactúen con las API. En esta arquitectura, API Management proporciona una fachada para los servicios back-end que proporciona a los clientes una interfaz coherente. También proporciona funcionalidades como la limitación de velocidad, la autenticación y el almacenamiento en caché en los servicios back-end.
Azure DNS es un servicio de hospedaje para dominios del sistema de nombres de dominio (DNS). En esta arquitectura, Azure DNS hospeda los registros DNS públicos para el servicio API Management. Con el hospedaje DNS, los clientes resuelven el nombre DNS en la dirección IP del servicio de administración de API.
Microsoft Entra ID es un servicio de administración de acceso e identidades basado en la nube. Los empleados de empresa pueden usar Microsoft Entra ID para acceder a recursos externos e internos. En esta arquitectura, Microsoft Entra ID protege el servicio API Management mediante OAuth 2.0 y el portal para desarrolladores mediante Microsoft Entra External ID.
Azure Key Vault es un servicio en la nube para almacenar y administrar de forma segura secretos, claves de cifrado y certificados. En esta arquitectura, Key Vault proporciona almacenamiento secreto centralizado para Logic Apps y API Management.
Detalles del escenario
Integration Services es una colección de servicios que puede usar para integrar aplicaciones, datos y procesos en la empresa. Esta arquitectura usa Logic Apps para organizar flujos de trabajo y API Management para crear catálogos de API.
En esta arquitectura, usted crearás APIs compuestas mediante la importación de aplicaciones lógicas como APIs. También puede importar servicios web existentes mediante la importación de especificaciones de OpenAPI (Swagger) o la importación de API SOAP desde especificaciones del lenguaje de descripción de servicios web (WSDL).
La puerta de enlace de la API ayuda a desacoplar las interfaces de usuario front-end de los sistemas back-end. Por ejemplo, puede volver a escribir direcciones URL o transformar solicitudes antes de llegar al back-end. También controla problemas transversales como la autenticación, la compatibilidad con el uso compartido de recursos entre orígenes (CORS) y el almacenamiento en caché de respuestas.
Posibles casos de uso
Esta arquitectura es suficiente para escenarios de integración básicos en los que las llamadas sincrónicas a los servicios back-end desencadenan el flujo de trabajo. Una arquitectura más avanzada que usa colas y eventos se basa en esta arquitectura básica. Para mayor confiabilidad y escalabilidad, use colas de mensajes y eventos para desacoplar sistemas back-end.
Recomendaciones
Puede aplicar las siguientes recomendaciones a la mayoría de los escenarios. Sígalas a menos que tenga un requisito concreto que las invalide.
API Management
API Management tiene ocho niveles. Estos niveles proporcionan un acuerdo de nivel de servicio (SLA) de producción y admiten el escalado horizontal dentro de la región de Azure.
No recomendamos el nivel de consumo de API Management para esta solución. No es compatible con el portal para desarrolladores ni Microsoft Entra integración, lo que requiere esta arquitectura.
El nivel Desarrollador está específicamente para entornos que no son de producción y no se recomienda para cargas de trabajo de producción.
API Management mide la capacidad de rendimiento en unidades. Cada plan de tarifa tiene un escalado horizontal máximo. El nivel Premium admite el escalado horizontal en varias regiones de Azure. Elija su nivel en función de su conjunto de características y el nivel de rendimiento necesario. Para obtener más información, consulte los artículos siguientes:
- Comparación basada en características de los niveles de API Management
- Precios de API Management
- Capacidad de una instancia de API Management
Cada instancia de API Management tiene un nombre de dominio predeterminado, que es un subdominio de azure-api.net, como contoso.azure-api.net. Considere la posibilidad de configurar un dominio personalizado para su organización.
Aplicaciones lógicas (Logic Apps)
Logic Apps funciona mejor en escenarios que no requieren baja latencia para una respuesta, como llamadas asincrónicas o API con tiempos de ejecución moderados. Si se requiere una latencia baja, como en una llamada que bloquea una interfaz de usuario, use una tecnología diferente. Por ejemplo, use Functions o una API web implementada en Azure App Service. Usa API Management para exponer la API a los consumidores de API.
Región
Para minimizar la latencia de red, coloque API Management y Logic Apps en la misma región. En general, elija la región más cercana a los usuarios o a los servicios back-end.
Consideraciones
Estas consideraciones implementan los pilares del marco de Azure Well-Architected, que es un conjunto de principios rectores que puede usar para mejorar la calidad de una carga de trabajo. Para obtener más información, consulte Well-Architected Framework.
Confiabilidad
La confiabilidad ayuda a garantizar que la aplicación pueda cumplir los compromisos que realice para sus clientes. Para obtener más información, vea Lista de comprobación de revisión de diseño para confiabilidad.
Revise los Acuerdos de Nivel de Servicio para cada servicio.
Si implementa el nivel Premium de API Management en dos o más regiones, API Management es apto para un Acuerdo de Nivel de Servicio superior. Para más información, consulte los precios de API Management.
Copias de seguridad
Realice copias de seguridad periódicas de la configuración de API Management. La característica integrada de copia de seguridad y restauración solo está disponible en los niveles Desarrollador clásico, Básico, Estándar y Premium. El nivel de Consumo y los niveles V2 no lo admiten. En el caso de las implementaciones v2, adopte un enfoque de infraestructura como código (IaC) para garantizar la capacidad de recuperación. Almacene los archivos de copia de seguridad en una ubicación o Azure región que difiere de la región en la que implemente el servicio. En función del objetivo de tiempo de recuperación (RTO), elija una estrategia de recuperación ante desastres (DR):
En un evento de recuperación ante desastres, aprovisione una nueva instancia de API Management, restaure la copia de seguridad en la nueva instancia y redirija los registros DNS.
Mantenga una instancia pasiva del servicio API Management en otra región de Azure. Restaure periódicamente las copias de seguridad en esa instancia para mantenerla sincronizada con el servicio activo. Para restaurar el servicio durante un evento de recuperación de desastres, solo tiene que redirigir los registros DNS. Este enfoque conlleva costos adicionales porque paga por la instancia pasiva, pero reduce el tiempo de recuperación.
Para Logic Apps, se recomienda un enfoque de configuración como código (CAC) para la copia de seguridad y restauración. Las aplicaciones lógicas son sin servidor, por lo que puede volver a crearlas rápidamente a partir de plantillas de IaC. Guarde las plantillas en el control de código fuente e integre las plantillas con el proceso de integración continua e implementación continua (CI/CD). En un evento de recuperación ante desastres, implemente la plantilla en una nueva región.
Si implementa una aplicación lógica en una región diferente, actualice la configuración en API Management. Puede actualizar la propiedad de Backend la API mediante un script de PowerShell.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el uso indebido de sus valiosos datos y sistemas. Para obtener más información, consulte Lista de comprobación de revisión de diseño para seguridad.
Esta lista no cubre todos los procedimientos recomendados de seguridad. Las siguientes consideraciones de seguridad se aplican a esta arquitectura:
Restrinja el acceso a los puntos de conexión de Logic Apps solo a la dirección IP de API Management. En los niveles clásicos (no v2), API Management tiene una dirección IP pública fija. Si usa un nivel v2, no se proporciona una dirección IP estática. En ese caso, considere enfoques alternativos como un dominio personalizado con Azure DNS para las restricciones de acceso basadas en direcciones IP. Para obtener más información, vea Restricción de las direcciones IP entrantes.
Use Azure control de acceso basado en rol (Azure RBAC) para asegurarse de que los usuarios tengan los niveles de acceso adecuados.
Proteja los puntos de conexión de API públicos en API Management mediante OAuth o OpenID Connect (OIDC). Para proteger los puntos de conexión de API públicas, configure un proveedor de identidades y agregue una directiva de validación de JSON Web Token (JWT). Para obtener más información, consulte Proteger una API usando OAuth 2.0 con Microsoft Entra ID y la gestión de API.
Conéctese a servicios back-end desde API Management mediante certificados mutuos.
Exija HTTPS en las API de API Management.
Almacenamiento de secretos
Nunca compruebe contraseñas, claves de acceso ni cadenas de conexión en el control de código fuente. Si estos valores son necesarios, protéjalos e impleméntelos mediante las técnicas oportunas.
Si una aplicación lógica funciona con datos confidenciales, consulte Protección del acceso y los datos de los flujos de trabajo en Logic Apps.
API Management administra los secretos con objetos denominados valores con nombre o propiedades. Estos objetos almacenan de forma segura los valores a los que se puede acceder a través de directivas de API Management. Para más información, consulte Uso de valores con nombre en directivas de API Management.
Use Key Vault para almacenar y administrar de forma centralizada contraseñas, claves de API, cadenas de conexión y certificados. Key Vault proporciona un almacén de secretos cifrados protegido con control de acceso específico y registro de auditoría. Logic Apps puede recuperar secretos de Key Vault mediante identidades administradas o el conector de Key Vault integrado, y los valores con nombre de API Management admiten referencias directas a secretos de Key Vault. Este enfoque mantiene la configuración confidencial fuera del código de aplicación y las plantillas de implementación. Para obtener más información, consulte instrucciones deWell-Architected Framework para proteger los secretos de aplicación.
Optimización de costos
La optimización de costos se centra en formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para obtener más información, consulte Lista de comprobación de revisión de diseño para la optimización de costos.
Use la calculadora de precios Azure para calcular los costos.
API Management
Azure cobra para todas las instancias de API Management mientras están en funcionamiento. Si escala y no necesita ese nivel de rendimiento en todo momento, reduzca manualmente o configure el escalado automático.
Aplicaciones lógicas (Logic Apps)
El plan de consumo de Logic Apps usa un modelo de facturación sin servidor para calcular el costo en función de las ejecuciones de acciones y conectores. Si usa Logic Apps Standard (inquilino único), el plan de hospedaje determina los costos. Para obtener más información, consulte Precios de Logic Apps.
Excelencia operativa
La excelencia operativa abarca los procesos de operaciones que implementan una aplicación y lo mantienen en ejecución en producción. Para obtener más información, vea Lista de comprobación de revisión de diseño para la excelencia operativa.
DevOps
Cree grupos de recursos independientes para entornos de producción y desarrollo y pruebas. Los grupos de recursos independientes facilitan la administración de implementaciones, la eliminación de implementaciones de prueba y la asignación de derechos de acceso.
Cuando asigna recursos a los grupos de recursos, debe considerar estos factores:
Ciclo de vida: En general, coloque los recursos que tienen el mismo ciclo de vida en el mismo grupo de recursos.
Access: Para aplicar directivas de acceso a los recursos de un grupo, puede usar Azure RBAC.
Facturación: Puede ver los costos acumulativos del grupo de recursos.
Plan de tarifa para API Management: Use el nivel Desarrollador para entornos de desarrollo y pruebas. Para minimizar los costos durante la preproducción, implemente una réplica del entorno de producción, ejecute las pruebas y apague la réplica.
Implementación
Use ARM templates para implementar los recursos de Azure y seguir el proceso de IaC. Las plantillas facilitan la automatización de las implementaciones mediante Azure DevOps servicios u otras soluciones de CI/CD.
Preproducción
Considere la posibilidad de almacenar provisionalmente las cargas de trabajo, lo que significa que se implementa en varias fases y se ejecutan validaciones en cada fase antes de continuar con la siguiente fase. Si usa este enfoque, puede insertar actualizaciones en los entornos de producción de una manera altamente controlada y minimizar los problemas de implementación imprevistos. Utiliza la implementación azul-verde o canary releases para actualizar los entornos de producción en vivo. Considere una buena estrategia de reversión para cuando se produce un error en una implementación. Por ejemplo, puede volver a implementar automáticamente una implementación anterior exitosa de su historial de implementaciones. El parámetro de marca --rollback-on-error en el comando az deployment group create Azure CLI puede volver a implementar automáticamente una implementación correcta anterior desde el historial de implementación si se produce un error en la implementación actual.
Aislamiento de cargas de trabajo
Coloque API Management y cualquier aplicación lógica individual en sus propias plantillas de IaC independientes. Con plantillas independientes, puede almacenar los recursos en sistemas de control de código fuente. Puede implementar las plantillas en conjunto o por separado como parte de un proceso de CI/CD.
Versiones
Cada vez que cambie la configuración de una aplicación lógica o implemente una actualización a través de una plantilla de ARM, Azure mantiene una copia de esa versión y todas las versiones que tienen un historial de ejecución. Puede usar estas versiones para hacer el seguimiento de los cambios históricos o promover una versión como configuración actual de la aplicación lógica. Por ejemplo, puede revertir una aplicación lógica a una versión anterior.
Azure API Management admite dos conceptos de control de versiones distintos, pero complementarios:
Con las versiones, los consumidores de API pueden elegir una versión de API en función de sus necesidades, como v1, v2, versión preliminar o producción.
Con las revisiones, los administradores de API pueden realizar cambios sin interrupción en una API e implementar esos cambios, junto con un registro de cambios para informar a los consumidores de la API.
Puede realizar una revisión en un entorno de desarrollo e implementar ese cambio en otros entornos mediante plantillas de ARM. Para más información, consulte Publicación de varias versiones de la API.
También puede usar revisiones para probar una API antes de realizar los cambios actuales y disponibles para los usuarios. No se recomienda este método para pruebas de carga o pruebas de integración. En su lugar, use entornos de prueba o preproducción independientes.
Diagnóstico y supervisión
Use Azure Monitor para supervisar las operaciones en API Management y Logic Apps. Azure Monitor proporciona información basada en las métricas que configuró para cada servicio y está habilitada de forma predeterminada. Para obtener más información, consulte los artículos siguientes:
- Supervisión de las API publicadas
- Supervisión del estado, configuración del registro de diagnóstico y activación de alertas para Logic Apps
Cada servicio también tiene estas opciones:
Para realizar un análisis más profundo y crear tableros de control, envíe registros de Logic Apps a Log Analytics.
Para la supervisión de DevOps, configure Azure Application Insights para API Management.
API Management admite la plantilla de solución Power BI para el análisis de API personalizado. Puede usar esta plantilla de solución para crear su propia solución de análisis. Power BI pone los informes a disposición de los usuarios empresariales.
Eficiencia del rendimiento
La eficiencia del rendimiento hace referencia a la capacidad de escalado de la carga de trabajo para satisfacer las demandas de los usuarios de forma eficaz. Para obtener más información, vea Lista de comprobación de revisión de diseño para la eficiencia del rendimiento.
Para aumentar la escalabilidad de API Management, agregue directivas de almacenamiento en caché donde corresponda. El almacenamiento en caché también ayuda a reducir la carga de sus servicios back-end.
Para proporcionar mayor capacidad, puede escalar los niveles de API Management: Básico, Estándar y Premium, en una región de Azure. Para analizar el uso del servicio, en el menú Métricas, seleccione Métrica de capacidad y, luego, escale verticalmente u horizontalmente según corresponda. El proceso de actualización o escalado puede tardar entre 15 y 45 minutos en aplicarse.
Recomendaciones de escalado de un servicio API Management:
Considere los patrones de tráfico al escalar. Los clientes que tienen patrones de tráfico más volátiles necesitan más capacidad.
Una capacidad coherente superior al 66 % puede indicar la necesidad de escalar verticalmente.
La capacidad constante que es inferior al 20% podría indicar una oportunidad para reducir la capacidad.
Antes de habilitar la carga en producción, pruebe siempre el servicio API Management con una carga representativa.
Con el nivel Premium, puede escalar una instancia de API Management en varias regiones de Azure. Esta configuración hace que API Management sea apto para un Acuerdo de Nivel de Servicio superior. También puede aprovisionar servicios cerca de usuarios en varias regiones.
El modelo sin servidor de Logic Apps elimina la necesidad de que los administradores planee la escalabilidad del servicio. El servicio se escala automáticamente para satisfacer la demanda.
Colaboradores
Microsoft mantiene este artículo. Los siguientes colaboradores escribieron este artículo.
Autor principal:
- Karl Rissland | Ingeniero de soluciones, inteligencia artificial y aplicaciones de Azure
Otro colaborador:
- Pooya Tolouei | Arquitecto de soluciones en la nube
Para ver perfiles de LinkedIn no públicos, inicie sesión en LinkedIn.
Pasos siguientes
- Introducción a Logic Apps
- Introducción a API Management
- Información general sobre Azure DNS