Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment créer une base de données multi-tenant avec des structures de tables partagées ?

Cependant, certaines entreprises craignent bien sûr que leurs données ne soient compromises, nous évaluons donc d'autres solutions.

C'est regrettable, car les clients souffrent parfois d'une idée fausse selon laquelle seul l'isolement physique peut offrir une sécurité suffisante.

Il existe un article MSDN intéressant, intitulé Multi-Tenant Data Architecture , que vous voudrez peut-être vérifier. Voici comment les auteurs ont abordé l'idée fausse de l'approche partagée :

Une idée fausse courante veut que seul l'isolement physique puisse fournir un niveau de sécurité approprié. En fait, les données stockées à l'aide d'une approche partagée peuvent également fournir une sécurité renforcée des données, mais nécessitent l'utilisation de modèles de conception plus sophistiqués.

En ce qui concerne les considérations techniques et commerciales, l'article fait une brève analyse des cas où une certaine approche pourrait être plus appropriée qu'une autre :

Le nombre, la nature et les besoins des locataires que vous comptez servir affectent tous votre décision d'architecture de données de différentes manières. Certaines des questions suivantes peuvent vous orienter vers une approche plus isolée, tandis que d'autres peuvent vous orienter vers une approche plus partagée.

  • Combien de locataires potentiels comptez-vous cibler ? Vous êtes peut-être loin d'être en mesure d'estimer l'utilisation prospective avec autorité, mais pensez en termes d'ordres de grandeur :créez-vous une application pour des centaines de locataires ? Milliers? Des dizaines de milliers? Suite? Plus vous vous attendez à ce que votre base de locataires soit large, plus vous souhaiterez probablement envisager une approche plus partagée.

  • Quelle quantité d'espace de stockage pensez-vous que les données d'un locataire moyen occuperont ? Si vous vous attendez à ce que certains ou tous les locataires stockent de très grandes quantités de données, l'approche de la base de données séparée est probablement la meilleure. (En effet, les exigences de stockage des données peuvent de toute façon vous obliger à adopter un modèle de base de données séparée. Si tel est le cas, il sera beaucoup plus facile de concevoir l'application de cette manière dès le début que de passer ultérieurement à une approche de base de données séparée.)

  • Combien d'utilisateurs finaux simultanés pensez-vous que le locataire moyen prendra en charge ? Plus le nombre est élevé, plus une approche isolée sera appropriée pour répondre aux besoins des utilisateurs finaux.

  • Envisagez-vous d'offrir des services à valeur ajoutée par locataire, tels qu'une capacité de sauvegarde et de restauration par locataire ? De tels services sont plus faciles à offrir par le biais d'une approche plus isolée.

MISE À JOUR : Suite pour mettre à jour le nombre prévu de locataires.

Ce nombre attendu de locataires (10 000) devrait exclure l'approche multi-base de données, pour la plupart, sinon tous les scénarios. Je ne pense pas que l'idée de maintenir 10 000 instances de base de données et d'avoir à en créer des centaines de nouvelles chaque jour vous plaira.

À partir de ce seul paramètre, il semble que l'approche à base de données partagée et à schéma unique soit la plus appropriée. Le fait que vous stockerez environ 50 Mo par locataire et qu'il n'y aura pas d'extensions par locataire rend cette approche encore plus appropriée.

L'article MSDN cité ci-dessus mentionne trois modèles de sécurité qui abordent les considérations de sécurité pour l'approche de la base de données partagée :

Lorsque vous êtes sûr des mesures de sécurité des données de votre application, vous pouvez proposer à vos clients un Service Level Agrement qui offre de solides garanties de sécurité des données. Dans votre SLA, outre les garanties, vous pouvez également décrire les mesures que vous prendriez pour vous assurer que les données ne sont pas compromises.

MISE À JOUR 2 : Apparemment, les gars de Microsoft ont déplacé/fait un nouvel article sur ce sujet, le lien d'origine a disparu et c'est le nouveau :Modèles de location de base de données SaaS multi-tenant (félicitations à Shai Kerer)