Compartir a través de


Consideraciones sobre el uso de Container Apps en una solución multiinquilino

Puede usar Azure Container Apps para ejecutar microservicios y aplicaciones contenedorizadas 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 planeamiento.

Modelos de aislamiento

Cuando se trabaja con un sistema multiinquilino que usa Container Apps, debe determinar el nivel de aislamiento necesario. Container Apps admite diferentes modelos de multiinquilinato:

  • Puede implementar multiinquilinato de confianza mediante un entorno compartido. Por ejemplo, este modelo podría ser adecuado cuando los inquilinos proceden todos de su organización.
  • Puede implementar multiinquilinato hostil mediante la implementación de entornos independientes para cada inquilino. Por ejemplo, este modelo podría 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 inquilino Aplicaciones contenedoras específicas del inquilino Aplicaciones contenedoras compartidas
Aislamiento de datos Alto Bajo Bajo
Aislamiento de rendimiento Alto Mediana. Sin aislamiento de red. Bajo
Complejidad de la implementación Media Baja a media Bajo
Complejidad operativa Media 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 de costos, recursos de red y operaciones para aplicaciones multiinquilino de confianza Implementación de una solución multiinquilino en el nivel de lógica de negocios

Aplicaciones contenedoras compartidas

Es posible que quiera implementar aplicaciones contenedoras compartidas en un único entorno de Container Apps que se use 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 que 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 multiinquilinato hostil en las que no confía en el código que se está ejecutando.

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 tiene que proporcionar un rendimiento dedicado para mitigar este problema, es posible que el modelo de aplicaciones contenedoras compartidas 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 suscripción única por región y escalar linealmente a medida que crece el número de inquilinos.

Aplicaciones contenedoras específicas del inquilino

Otro enfoque que puede considerar es aislar los inquilinos mediante la implementación de aplicaciones contenedoras específicas del inquilino en un entorno compartido.

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

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

  • Rentabilidad. Mediante el uso compartido de un entorno de Container Apps, una red virtual y otros recursos asociados, como un área de trabajo de Log Analytics, normalmente puede reducir el costo general y la complejidad de 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 contenedoras del mismo entorno. Este enfoque puede resultar útil si necesita actualizar distintos inquilinos a versiones específicas del código en momentos diferentes.
  • Aislamiento de recursos. A cada aplicación contenedora del entorno se le asignan 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 contenedora específica de ese inquilino. Tenga en cuenta que existen límites en el total de asignaciones de CPU y memoria en aplicaciones contenedoras.

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

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

Nota:

No use revisiones para crear diferentes versiones de la aplicación para distintos inquilinos. Las revisiones no proporcionan aislamiento de recursos. Están diseñadas 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 las implementaciones azul-verde y las pruebas A/B.

Un entorno por inquilino

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

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

Este enfoque proporciona el nivel más seguro de aislamiento de datos y rendimiento ya que 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. Cuando usa este enfoque, tiene un control más pormenorizado sobre cómo se asignan los recursos a las aplicaciones contenedoras 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 mediante la creación de una incidencia de soporte técnico de Azure.

Asegúrese de que conoce el crecimiento previsto del 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 implementación y complejidad operativa, debido a los recursos adicionales que tiene que 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 usan subdominios específicos del inquilino, los certificados DNS y TLS con caracteres comodín le permiten escalar fácilmente la solución a un gran número de inquilinos sin necesidad de una reconfiguración manual de cada nuevo inquilino.

En Container Apps, los certificados se administran 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.

Autenticación y autorización de solicitudes

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 que bloquee la solicitud o la redirija 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, vea 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 más información, consulte Consideraciones sobre el uso de 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 Microsoft Entra ID. Cuando se usan identidades administradas, la aplicación contenedora no necesita administrar las 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 roles.

Cuando use identidades administradas, tenga en cuenta la elección del modelo de aislamiento. Por ejemplo, suponga que comparte las aplicaciones contenedoras entre todos los inquilinos e implementa bases de datos específicas del inquilino. Debe garantizar que la aplicación de un inquilino no puede acceder a la base de datos de otro.

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

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Creadores de entidad de seguridad:

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

Otros colaboradores:

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

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

Pasos siguientes