Compartir a través de


Consideraciones para usar Container Apps en una solución multiinquilino

Puede usar Azure Container Apps para ejecutar microservicios y aplicaciones en contenedor en una plataforma sin servidor. En este artículo se describen algunas de las características de Container Apps que son útiles para las soluciones multiinquilino. También proporciona vínculos a instrucciones que pueden ayudarle durante la fase de planificación.

Modelos de aislamiento

Al trabajar con un sistema multiinquilino que usa Container Apps, debe determinar el nivel de aislamiento necesario. Container Apps admite diferentes modelos de multitenencia.

  • Puede implementar multiinquilinato de confianza mediante un entorno compartido. Por ejemplo, este modelo podría ser adecuado cuando todos los inquilinos están dentro de su organización.
  • Puede implementar multiinquilinato hostil mediante la implementación de entornos independientes para cada inquilino. Por ejemplo, este modelo puede ser adecuado cuando no confía en el código que ejecutan los inquilinos.

En la tabla siguiente se resumen las diferencias entre los principales modelos de aislamiento de inquilinato para Container Apps. Los modelos se describen más adelante en este artículo.

Consideración Un entorno por usuario Aplicaciones contenedoras específicas del inquilino Aplicaciones contenedoras compartidas
Aislamiento de datos. Alto Bajo Bajo
Aislamiento de rendimiento Alto Media. Sin aislamiento de red. Bajo
Complejidad de implementación Media Bajo a medio Bajo
Complejidad operativa Mediano Bajo Bajo
Costo de recursos Alto Bajo Bajo
escenario de ejemplo Ejecución de cargas de trabajo multiinquilino hostiles en entornos aislados con fines de seguridad y cumplimiento Optimización del costo, los recursos de red y las operaciones para aplicaciones multiinquilino de confianza Implementación de una solución de multitenencia en el nivel de lógica empresarial

Aplicaciones de contenedor compartidas

Es posible que quiera considerar la posibilidad de implementar aplicaciones de contenedor compartidas en un único entorno de Container Apps que se usa para todos los inquilinos.

Diagrama que muestra un modelo de aislamiento compartido de Container Apps. Todos los inquilinos comparten un único entorno de Container Apps y aplicaciones contenedoras.

Este enfoque suele ser rentable y requiere la menor sobrecarga operativa porque hay menos recursos para administrar.

Sin embargo, si desea usar este modelo de aislamiento, el código de la aplicación debe ser compatible con el multiinquilinato. Este modelo de aislamiento no garantiza el aislamiento en el nivel de red, proceso, supervisión o datos. El código de la aplicación debe controlar el aislamiento de los inquilinos. Este modelo no es adecuado para cargas de trabajo de multitenencia hostiles en las que no se confía en el código que se ejecuta.

Además, este modelo tiene posibilidades de sufrir problemas de vecinos ruidosos: la carga de trabajo de un inquilino podría afectar al rendimiento de la carga de trabajo de otro inquilino. Si necesita proporcionar un rendimiento dedicado para mitigar este problema, es posible que el modelo de aplicaciones de contenedor compartidos no sea adecuado.

Nota

El patrón de stamps de implementación es útil cuando los inquilinos están en diferentes modelos de costo. Por ejemplo, los inquilinos se pueden asignar a entornos compartidos o dedicados de Container Apps en función de su plan de tarifa. Esta estrategia de implementación le permite ir más allá de los límites de Container Apps para una sola suscripción por región y escalar linealmente a medida que crece el número de inquilinos.

Aplicaciones de contenedor específicas para inquilinos

Otro enfoque que puede considerar es aislar a sus clientes mediante el despliegue de aplicaciones de contenedor específicas para cada cliente en un entorno compartido.

Diagrama que muestra un modelo de aislamiento de Container Apps en el que las aplicaciones de contenedor específicas del inquilino se implementan dentro de un entorno compartido de Container Apps.

Este modelo de aislamiento proporciona aislamiento lógico entre cada inquilino. Proporciona estas ventajas:

  • Eficiencia de costos. Al compartir un entorno de Container Apps, una red virtual y otros recursos conectados, como un área de trabajo de Log Analytics, normalmente puede reducir la complejidad general del costo y la administración por inquilino.
  • Separación de actualizaciones e implementaciones. Los archivos binarios de aplicación de cada inquilino se pueden implementar y actualizar independientemente de los de otras aplicaciones de contenedor en el mismo entorno. Este enfoque puede resultar útil si necesita actualizar diferentes inquilinos a versiones específicas del código en momentos diferentes.
  • Aislamiento de recursos. Cada aplicación contenedora dentro de su entorno se asigna a sus propios recursos de CPU y memoria. Si un inquilino específico requiere más recursos, puede asignar más CPU y memoria a la aplicación de contenedor específica de ese inquilino. Tenga en cuenta que hay límites de en el total de asignaciones de CPU y memoria en las aplicaciones contenedoras.

Sin embargo, este enfoque no proporciona aislamiento de hardware ni de red entre inquilinos. Todas las aplicaciones de contenedor de un único entorno comparten la misma red virtual. Debe poder confiar en que las cargas de trabajo implementadas en las aplicaciones no harán un uso indebido de los recursos compartidos.

Container Apps tiene compatibilidad integrada con Dapr, que utiliza un diseño modular para proporcionar funcionalidad en forma de componentes . En Container Apps, los componentes de Dapr son recursos de nivel de entorno. Al compartir un único entorno entre varios inquilinos, asegúrese de limitar correctamente el ámbito de los componentes de Dapr a la aplicación de contenedor específica del inquilino correcta para garantizar el aislamiento y evitar el riesgo de pérdida de datos.

Nota

No utilice las revisiones a para crear diferentes versiones de la aplicación para diferentes clientes. Las revisiones no proporcionan aislamiento de recursos. Están diseñados para escenarios de implementación en los que debe tener varias versiones de la aplicación que se ejecutan como parte de un proceso de lanzamiento de actualizaciones, como en implementaciones azules o verdes y pruebas A/B.

Un entorno por cliente

Puede considerar la posibilidad de implementar un entorno de Container Apps para cada uno de los inquilinos. Un entorno de aplicaciones de contenedor es el límite que delimita y aísla un grupo de aplicaciones de contenedor. Un entorno proporciona aislamiento de cómputo y red en el plano de datos. Cada entorno se implementa en su propia red virtual, que todas las aplicaciones del entorno comparten. Cada entorno tiene su propia configuración de Dapr y de supervisión.

Diagrama que muestra un modelo de aislamiento de aplicaciones en contenedor en el que cada inquilino obtiene su propio entorno de aplicaciones en contenedor.

Este enfoque proporciona el nivel más seguro de aislamiento de datos y rendimiento porque los datos y el tráfico de cada inquilino están aislados en un entorno específico. Y cuando se usa este modelo, las aplicaciones no necesitan ser compatibles con el multiinquilinato. Al usar este enfoque, tiene un control más granular sobre cómo asignar recursos a las aplicaciones de contenedor dentro del entorno. Puede determinar las asignaciones en función de los requisitos del inquilino. Por ejemplo, algunos inquilinos pueden requerir más recursos de CPU y memoria que otros, por lo que puede proporcionar más recursos a las aplicaciones de estos inquilinos mientras se beneficia del aislamiento que proporcionan los entornos específicos del inquilino.

Sin embargo, el límite es bajo en cuanto al número de entornos que se pueden implementar dentro de una suscripción por región. En algunas situaciones, puede aumentar estas cuotas creando un ticket de soporte técnico de Azure .

Asegúrese de conocer el crecimiento esperado en el número de inquilinos antes de implementar este modelo de aislamiento. Tenga en cuenta que este enfoque a menudo incurre en un mayor costo total de propiedad y mayores niveles de complejidad operativa y de implementación, debido a los recursos adicionales que necesita para implementar y administrar.

Características de Container Apps que admiten multiinquilinato

Nombres de dominio personalizados

Container Apps le permite usar DNS con caracteres comodín y agregar sus propios certificados TLS con caracteres comodín. Cuando se utilizan subdominios específicos para cada inquilino, los certificados comodín de DNS y TLS permiten escalar de manera sencilla la solución a un gran número de inquilinos sin necesidad de reconfigurar manualmente cada nuevo inquilino.

En Container Apps, se administran certificados en el nivel de entorno. Para poder enlazar un dominio personalizado a la entrada esta también debe estar habilitada para la aplicación contenedora.

Solicitud de autenticación y autorización

Container Apps puede validar tokens de autenticación en nombre de la aplicación. Si una solicitud no contiene un token, el token no es válido o la solicitud no está autorizada, puede configurar Container Apps para bloquear la solicitud o redirigirlo al proveedor de identidades para que el usuario pueda iniciar sesión.

Si los inquilinos usan Azure Active Directory como proveedor de identidades, puede configurar Container Apps para que use el punto de conexión /common para validar los tokens de usuario. Al hacerlo, se garantiza que, independientemente del inquilino de Microsoft Entra del usuario, sus tokens se validen y acepten.

También puede integrar Container Apps con Azure Active Directory B2C para la autenticación de usuarios mediante proveedores de identidades de asociados.

Para obtener más información, consulte estos recursos:

Nota

Las características de autenticación y autorización de Container Apps son similares a las de Azure App Service. Sin embargo, hay algunas diferencias. Para obtener más información, consulte Consideraciones para usar la autenticación integrada.

Identidades administradas

Puede usar identidades administradas de Microsoft Entra ID para permitir que la aplicación contenedora acceda a otros recursos autenticados por el identificador de Entra de Microsoft. Cuando se usan identidades administradas, la aplicación contenedora no necesita administrar credenciales para la comunicación entre servicios. Puede conceder permisos específicos a la identidad de la aplicación contenedora para el control de acceso basado en rol.

Al usar identidades administradas, tenga en cuenta la elección del modelo de aislamiento. Por ejemplo, supongamos que comparte las aplicaciones de contenedor entre todos los inquilinos e implementa bases de datos específicas del inquilino. Debe asegurarse de que la aplicación de un inquilino no pueda acceder a la base de datos de otro inquilino.

Para obtener más información, vea Identidades administradas en Azure Container Apps.

Colaboradores

Microsoft mantiene este artículo. Originalmente fue escrito por los siguientes colaboradores.

Autores principales:

  • Daniel Larsen | Ingeniero principal de clientes, FastTrack para Azure
  • Will Velida | Ingeniero de clientes 2, FastTrack para Azure

Otros colaboradores:

  • John Downs | Ingeniero principal de software
  • Chad Kittel | Ingeniero principal de software, Microsoft
  • Xuhong Liu | Ingeniero de servicio sénior, FastTrack para Azure
  • Aarthi Murugan | Director de programas sénior, Innovación de aplicaciones de estrategia tecnológica de CS
  • Kendall Roden | Senior Program Manager, Azure Container Apps
  • Paolo Salvatori | Ingeniero principal de clientes, FastTrack para Azure
  • Arsen Vladimirskiy | Ingeniero Principal de Clientes, FastTrack para Azure

Para ver perfiles de LinkedIn no públicos, inicie sesión en LinkedIn.

Pasos siguientes