Particionamento de dados - Fundamentos da arquitetura SaaS

Particionamento de dados

O particionamento de dados é usado para descrever diferentes estratégias usadas para representar dados em um ambiente multi-inquilino. Esse termo é usado amplamente para abranger uma variedade de abordagens e modelos diferentes que podem ser usados para associar diferentes estruturas de dados a inquilinos individuais.

Observe que muitas vezes há a tentação de ver o particionamento de dados e o isolamento de inquilinos como intercambiáveis. Esses dois conceitos não pretendem ser equivalentes. Quando falamos sobre particionamento de dados, estamos falando sobre como os dados do inquilino são armazenados para inquilinos individuais. O particionamento de dados não garante que os dados sejam isolados. O isolamento ainda deve ser aplicado separadamente para garantir que um inquilino não possa acessar os recursos de outro inquilino.

Cada tecnologia AWS de armazenamento traz seu próprio conjunto de considerações à estratégia de particionamento de dados. Por exemplo, isolar dados no Amazon DynamoDB terá uma aparência muito diferente de isolar dados com o Amazon Relational Database Service (Amazon RDS).

Geralmente, quando você pensa em particionamento de dados, começa pensando se os dados serão separados ou em reserva. Em um modelo em silos, você tem uma estrutura de armazenamento distinta para cada inquilino, sem dados misturados. Para particionamento em reserva, os dados são misturados e particionados com base em um identificador de inquilino que determina quais dados estão associados a cada inquilino.

Por exemplo, com o Amazon DynamoDB, um modelo em silos usa uma tabela separada para cada inquilino. O agrupamento de dados no Amazon DynamoDB é obtido armazenando o identificador do inquilino na chave de partição de cada tabela do Amazon DynamoDB que gerencia os dados de todos os inquilinos.

Você pode imaginar como isso pode variar em toda a variedade de AWS serviços, com cada um introduzindo suas próprias estruturas que podem exigir uma abordagem diferente para a realização de modelos de armazenamento em silo e em reserva com cada serviço.

Embora o particionamento de dados e o isolamento de inquilinos sejam tópicos separados, as estratégias de particionamento de dados que você escolher provavelmente serão influenciadas pelo modelo de isolamento de seus dados. Por exemplo, você pode isolar algum armazenamento porque essa abordagem se alinha melhor aos requisitos do seu domínio ou dos seus clientes. Ou você pode escolher o silo porque o modelo de reserva pode não permitir que você imponha o isolamento com o nível de granularidade que sua solução exige.

Um vizinho barulhento também pode afetar sua abordagem ao isolamento. Algumas cargas de trabalho ou casos de uso em seu aplicativo podem precisar ser mantidos separados para limitar os impactos de outros inquilinos ou para atender aos contratos de nível de serviço (SLAs).