Partitionnement de données - Principes fondamentaux de l'architecture SaaS

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.

Partitionnement de données

Le partitionnement des données est utilisé pour décrire les différentes stratégies utilisées pour représenter les données dans un environnement mutualisé. Ce terme est largement utilisé pour couvrir une gamme d'approches et de modèles différents qui peuvent être utilisés pour associer différents ensembles de données à des locataires individuels.

Notez qu'il est souvent tentant de considérer le partitionnement des données et l'isolation des locataires comme interchangeables. Ces deux concepts ne sont pas censés être équivalents. Lorsque nous parlons de partitionnement des données, nous parlons de la manière dont les données des locataires sont stockées pour chaque locataire. Le partitionnement des données ne garantit pas leur isolement. L'isolation doit toujours être appliquée séparément pour garantir qu'un locataire ne puisse pas accéder aux ressources d'un autre locataire.

Chaque technologie AWS de stockage apporte son propre ensemble de considérations à la stratégie de partitionnement des données. Par exemple, l'isolation de données dans Amazon DynamoDB sera très différente de l'isolation de données avec Amazon Relational Database Service (Amazon RDS).

En général, lorsque vous pensez au partitionnement des données, vous commencez par vous demander si les données seront cloisonnées ou regroupées. Dans un modèle cloisonné, vous disposez d'une structure de stockage distincte pour chaque locataire, sans données mélangées. Pour le partitionnement groupé, les données sont mélangées et partitionnées sur la base d'un identifiant de locataire qui détermine quelles données sont associées à chaque locataire.

Par exemple, avec Amazon DynamoDB, un modèle cloisonné utilise une table distincte pour chaque locataire. Le regroupement des données dans Amazon DynamoDB s'effectue en stockant l'identifiant du locataire dans la clé de partition de chaque table Amazon DynamoDB qui gère les données de tous les locataires.

Vous pouvez imaginer comment cela peut varier en fonction de la gamme de AWS services, chacun introduisant ses propres concepts, ce qui peut nécessiter une approche différente pour réaliser des modèles de stockage en silo et groupé pour chaque service.

Bien que le partitionnement des données et l'isolation des locataires soient des sujets distincts, les stratégies de partitionnement des données que vous choisissez sont susceptibles d'être influencées par le modèle d'isolation de vos données. Par exemple, vous pouvez cloisonner une partie du stockage car cette approche correspond le mieux aux exigences de votre domaine ou de vos clients. Vous pouvez également choisir le silo car le modèle de pool peut ne pas vous permettre de renforcer l'isolation avec le niveau de granularité requis par votre solution.

Un voisin bruyant peut également avoir une incidence sur votre approche de l'isolement. Certaines charges de travail ou certains cas d'utilisation de votre application peuvent devoir être séparés pour limiter les impacts par rapport aux autres locataires ou pour respecter les accords de niveau de service (SLA).