Le multi-tenancy (ou architecture multi-locataire) est un modèle architectural dans lequel une seule instance d'application sert plusieurs clients (appelés « tenants »). Chaque tenant dispose de son propre espace de données isolé, tout en partageant le même code applicatif et la même infrastructure.
Trois modèles principaux
Il existe la base de données partagée avec discrimination par colonne (le plus économique), le schéma séparé par tenant (bon compromis isolation/coût), et la base de données séparée par tenant (isolation maximale). Le choix dépend des exigences de sécurité et du volume de données par client.
Défis techniques
Les enjeux incluent l'isolation stricte des données, la personnalisation par tenant (branding, configuration) et le monitoring. Dans Symfony, des filtres Doctrine permettent d'implémenter le filtrage automatique des données de manière transparente.
L'architecture multi-tenant permet de mutualiser les coûts d'infrastructure tout en garantissant une étanchéité stricte des données entre les clients.