Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Comparaison des modèles de déploiement centralisés et distribués
Vous pouvez déployer OPA selon un schéma de déploiement centralisé ou distribué, et la méthode idéale pour une application mutualisée dépend du cas d'utilisation. Pour des exemples de ces modèles, reportez-vous aux APIs sections Utilisation d'un PDP centralisé avec un PDP distribué PEPs activé APIs et Utilisation d'un PDP distribué plus haut dans ce guide. PEPs Comme l'OPA peut être déployé en tant que démon dans un système d'exploitation ou un conteneur, il peut être implémenté de plusieurs manières pour prendre en charge une application mutualisée.
Dans un schéma de déploiement centralisé, OPA est déployé en tant que conteneur ou daemon avec son RESTful API disponible pour les autres services de l'application. Lorsqu'un service nécessite une décision de l'OPA, l' RESTful API centrale de l'OPA est appelée pour produire cette décision. Cette approche est simple à déployer et à maintenir, car il n'y a qu'un seul déploiement d'OPA. L'inconvénient de cette approche est qu'elle ne fournit aucun mécanisme permettant de maintenir la séparation des données des locataires. Comme il n'existe qu'un seul déploiement de l'OPA, toutes les données des locataires utilisées dans une décision de l'OPA, y compris les données externes référencées par l'OPA, doivent être mises à la disposition de l'OPA. Vous pouvez maintenir l'isolation des données des locataires grâce à cette approche, mais elle doit être appliquée par la politique et la structure documentaire de l'OPA ou par l'accès à des données externes. Un modèle de déploiement centralisé nécessite également une latence plus élevée, car chaque décision d'autorisation doit passer par un appel d' RESTful API vers un autre service.
Dans un modèle de déploiement distribué, l'OPA est déployé en tant que conteneur ou daemon aux côtés des services de l'application mutualisée. Il peut être déployé en tant que conteneur annexe ou en tant que démon exécuté localement sur le système d'exploitation. Pour récupérer une décision de l'OPA, le service envoie un appel d' RESTful API au déploiement OPA local. (Comme l'OPA peut être déployée sous forme de package Go, vous pouvez utiliser Go de manière native pour récupérer une décision au lieu d'utiliser un appel d' RESTful API.) Contrairement au modèle de déploiement centralisé, le modèle distribué nécessite un effort beaucoup plus important pour le déploiement, la maintenance et la mise à jour, car il est présent dans plusieurs domaines de l'application. L'un des avantages du modèle de déploiement distribué est la capacité à maintenir l'isolation des données des locataires, en particulier pour les applications qui utilisent un modèle SaaS cloisonné. Les données spécifiques au locataire peuvent être isolées dans les déploiements OPA spécifiques à ce locataire, car dans un modèle distribué, l'OPA est déployée en même temps que le locataire. En outre, un modèle de déploiement distribué présente une latence bien inférieure à celle d'un modèle de déploiement centralisé, car chaque décision d'autorisation peut être prise localement.
Lorsque vous choisissez un modèle de déploiement OPA dans votre application mutualisée, assurez-vous d'évaluer les critères les plus critiques pour votre application. Si votre application mutualisée est sensible à la latence, un modèle de déploiement distribué offre de meilleures performances au détriment d'un déploiement et d'une maintenance plus complexes. Bien que vous puissiez gérer une partie de cette complexité par le biais DevOps de l'automatisation, cela nécessite tout de même des efforts supplémentaires par rapport à un modèle de déploiement centralisé.
Si votre application mutualisée utilise un modèle SaaS cloisonné, vous pouvez utiliser un modèle de déploiement OPA distribué pour imiter l'approche cloisonnée de l'isolation des données des locataires. En effet, lorsque OPA s'exécute parallèlement à chaque service d'application spécifique au locataire, vous pouvez personnaliser chaque déploiement OPA pour ne contenir que les données associées à ce locataire. Il n'est pas possible de cloisonner les données OPA dans un schéma de déploiement OPA centralisé. Si vous utilisez un modèle de déploiement centralisé ou un modèle distribué en conjonction avec un modèle SaaS groupé, l'isolation des données des locataires doit être maintenue dans le modèle de document OPA.