Partager via


Considérations relatives à l’utilisation de Container Apps dans une solution multilocataire

Vous pouvez utiliser Azure Container Apps pour exécuter des microservices et des applications conteneurisées sur une plateforme serverless. Cet article décrit certaines des fonctionnalités de Container Apps qui sont utiles pour les solutions multilocataires. Il fournit également des liens pour obtenir des conseils si vous avez besoin d’aide pendant votre phase de planification.

Modèles d’isolation

Lorsque vous travaillez dans un système multilocataire qui utilise Container Apps, vous devez déterminer le niveau d’isolation requis. Container Apps prend en charge différents modèles de multilocation :

  • Vous pouvez implémenter une multilocation approuvée en déployant un environnement partagé. Par exemple, ce modèle peut être approprié si vos locataires résident tous au sein de votre organisation.
  • Vous pouvez implémenter une multilocation hostile en déployant des environnements séparés pour chacun des locataires. Par exemple, ce modèle peut être approprié si le code exécuté par vos locataires n’est pas fiable.

Le tableau suivant récapitule les différences entre les principaux modèles d’isolation des locataires pour Container Apps. Les modèles sont décrits plus loin dans cet article.

Considération Un environnement par locataire Applications conteneurisées propres au locataire Applications conteneurisées partagées
Isolation des données Élevé Faible Faible
Isolation des performances Élevé Moyenne. Pas d’isolation réseau. Faible
Complexité du déploiement Moyenne Faible à moyen Faible
Complexité opérationnelle Moyenne Faible Faible
Coût des ressources Élevé Faible Faible
Exemple de scénario Exécution de charges de travail multilocataires hostiles dans des environnements isolés pour la sécurité et la conformité Optimisation des coûts, des ressources réseau et des opérations pour les applications multilocataires approuvées Implémentation d’une solution multilocataire au niveau de la logique métier

Applications conteneurisées partagées

Vous envisagez peut-être de déployer des applications conteneurisées partagées dans un environnement Container Apps unique qui est utilisé pour l’ensemble de vos locataires.

Diagramme illustrant un modèle d’isolation Container Apps partagé. Tous les locataires partagent un environnement Container Apps unique et des applications conteneurisées.

Cette approche est généralement économique ; elle réduit la surcharge opérationnelle, car il y a moins de ressources à gérer.

Toutefois, si vous souhaitez utiliser ce modèle d’isolation, votre code d’application doit être compatible avec la multilocation. Ce modèle d’isolation ne garantit pas l’isolation au niveau du réseau, du calcul, de la supervision ou des données. Votre code d’application doit gérer l’isolation des locataires. Ce modèle n’est pas approprié pour les charges de travail multilocataires hostiles qui exécutent du code non fiable.

Par ailleurs, ce modèle est potentiellement sujet à des problèmes de voisins bruyants : la charge de travail d’un locataire peut impacter les performances de la charge de travail d’un autre locataire. Si vous devez fournir un débit dédié pour atténuer ce problème, le modèle d’applications conteneurisées partagées peut ne pas être approprié.

Notes

Le modèle Empreintes de déploiement est utile lorsque les locataires ont des modèles de coûts différents. Par exemple, les locataires peuvent être affectés à des environnements Container Apps partagés ou dédiés en fonction du niveau tarifaire qui leur est appliqué. Cette stratégie de déploiement vous permet de dépasser les limites de Container Apps pour un seul abonnement par région et d’effectuer une mise à l’échelle linéaire à mesure que le nombre de locataires augmente.

Applications conteneurisées propres au locataire

Une autre approche à envisager est d’isoler vos locataires en déployant des applications conteneurisées propres au locataire dans un environnement partagé.

Diagramme illustrant un modèle d’isolation Container Apps où des applications conteneurisées propres au locataire sont déployées dans un environnement Container Apps partagé.

Ce modèle d’isolation assure une isolation logique entre chaque locataire. Il offre les avantages suivants :

  • Rentabilité. En partageant un environnement Container Apps, un réseau virtuel et d’autres ressources attachées comme un espace de travail Log Analytics, vous pouvez généralement réduire le coût global et simplifier la gestion par locataire.
  • Séparation des mises à niveau et des déploiements. Les binaires d’application de chaque locataire peuvent être déployés et mis à niveau indépendamment de ceux des autres applications conteneurisées dans le même environnement. Cette approche peut être utile si vous devez mettre à niveau plusieurs locataires vers des versions spécifiques de votre code à différents moments.
  • Isolation des ressources. Chaque application conteneurisée dans un environnement se voit allouer ses propres ressources processeur et mémoire. Si un locataire nécessite plus de ressources, vous pouvez allouer davantage de ressources processeur et mémoire à l’application conteneurisée spécifique de ce locataire. N’oubliez pas que des limites d’allocations totales de ressources processeur et mémoire s’appliquent aux applications conteneurisées.

L’inconvénient est que cette approche n’assure aucune isolation matérielle ou réseau entre les locataires. Toutes les applications conteneurisées dans un environnement unique partagent le même réseau virtuel. Vous devez être sûr que les charges de travail déployées dans les applications sont fiables, notamment qu’elles n’utiliseront pas de manière inappropriée les ressources partagées.

Container Apps intègre la prise en charge de Dapr, qui utilise une conception modulaire pour fournir des fonctionnalités sous forme de composants. Dans Container Apps, les composants Dapr sont des ressources disponibles au niveau de l’environnement. Lorsque vous partagez un environnement entre plusieurs locataires, assurez-vous de limiter correctement l’étendue des composants Dapr à l’application conteneurisée appropriée propre au locataire. Cette précaution permet de garantir l’isolation et d’empêcher la fuite de données.

Notes

N’utilisez pas les révisions pour créer des versions différentes de votre application destinées à différents locataires. Les révisions n’assurent pas l’isolation des ressources. Elles sont conçues pour les scénarios de déploiement où vous avez besoin d’exécuter plusieurs versions de votre application dans le cadre d’un processus de déploiement de mises à jour, comme dans les déploiements bleus/verts et les tests A/B.

Un environnement par locataire

Vous pouvez envisager de déployer un environnement Container Apps pour chacun des locataires. Un environnement Container Apps constitue la limite d’isolation autour d’un groupe d’applications conteneurisées. Un environnement assure l’isolation des ressources réseau et de calcul sur le plan de données. Chaque environnement est déployé dans son propre réseau virtuel, lequel est partagé par toutes les applications dans l’environnement. Chaque environnement a sa propre configuration Dapr et de supervision.

Diagramme illustrant un modèle d’isolation Container Apps dans lequel chaque locataire obtient son propre environnement Container App.

Cette approche assure le plus haut niveau d’isolation des données et des performances, car les données et le trafic de chaque locataire sont isolés dans un environnement spécifique. De plus, quand vous utilisez ce modèle, vos applications n’ont pas besoin de prendre en charge la multilocation. Avec cette approche, vous pouvez contrôler plus précisément les allocations de ressources aux applications conteneurisées dans l’environnement. Vous pouvez déterminer les allocations en fonction des besoins des locataires. Par exemple, certains locataires peuvent nécessiter plus de ressources processeur et mémoire que d’autres. Vous pouvez alors allouer davantage de ressources aux applications de ces locataires tout en profitant de l’isolation fournie par les environnements propres aux locataires.

Toutefois, il existe des limites basses quant au nombre d’environnements déployables dans un abonnement par région. Dans certains cas, vous pouvez augmenter ces quotas en créant un ticket de support Azure.

Avant d’implémenter ce modèle d’isolation, veillez à prendre en compte la croissance attendue du nombre de locataires. Gardez à l’esprit que cette approche induit souvent un coût total de possession plus élevé et qu’elle complexifie le déploiement et le fonctionnement, car vous devrez déployer et gérer des ressources supplémentaires.

Fonctionnalités de Container Apps prenant en charge la multilocation

Noms de domaine personnalisés

Avec Container Apps, vous pouvez utiliser des DNS génériques et ajouter vos propres certificats TLS génériques. Lorsque vous utilisez des sous-domaines propres au locataire, les DNS et certificats TLS génériques vous permettent d’adapter facilement votre solution à un grand nombre de locataires, sans avoir à reconfigurer manuellement chaque nouveau locataire.

Dans Container Apps, vous gérez les certificats au niveau de l’environnement. L’entrée doit également être activée pour l’application conteneurisée avant de pouvoir la lier à un domaine personnalisé.

Authentification et autorisation des requêtes

Container Apps peut valider des jetons d’authentification pour le compte de votre application. Si une requête ne contient pas de jeton, si le jeton n’est pas valide ou si la requête n’est pas autorisée, vous pouvez configurer Container Apps pour qu’il bloque la requête, ou qu’il la redirige vers votre fournisseur d’identité afin que l’utilisateur puisse se connecter.

Si vos locataires utilisent Microsoft Entra ID comme fournisseur d’identité, vous pouvez configurer Container Apps pour qu’il valide les jetons utilisateur en utilisant le point de terminaison /common. Ainsi, quel que soit le locataire Microsoft Entra de l’utilisateur, les jetons utilisateur sont validés et acceptés.

Vous pouvez également intégrer Container Apps à Azure Active Directory B2C pour l’authentification des utilisateurs via des fournisseurs d’identité partenaires.

Pour plus d’informations, consultez ces ressources :

Remarque

Les fonctionnalités d’authentification et d’autorisation dans Container Apps sont similaires à celles disponibles dans Azure App Service. Il y a cependant quelques différences. Pour plus d’informations, consultez Considérations relatives à l’utilisation de l’authentification intégrée.

Identités managées

Vous pouvez utiliser les identités managées de Microsoft Entra ID pour permettre à votre application conteneurisée d’accéder à d’autres ressources authentifiées par Microsoft Entra ID. Quand vous utilisez des identités managées, votre application conteneurisée n’a pas besoin de gérer les informations d’identification pour la communication de service à service. Vous pouvez accorder des autorisations spécifiques à l’identité de votre application conteneurisée pour implémenter le contrôle d’accès en fonction du rôle.

Lorsque vous utilisez des identités managées, tenez compte du modèle d’isolation que vous avez choisi. Par exemple, supposez que vous partagez vos applications conteneurisées entre tous les locataires et que vous déployez des bases de données spécifiques pour chaque locataire. Vous devez vous assurer que l’application d’un locataire ne pourra pas accéder à la base de données d’un autre locataire.

Pour plus d'informations, voir Identités managées dans Azure Container Apps.

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Auteurs principaux :

  • Daniel Larsen | Ingénieur client principal, FastTrack for Azure
  • Will Velida | Ingénieur client 2, FastTrack pour Azure

Autres contributeurs :

Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.

Étapes suivantes