Architecture Multi-Tenant
L'essentiel
Imagine un immeuble de bureaux. En architecture single-tenant, chaque entreprise loue un bâtiment entier rien que pour elle — murs, chauffage, ascenseur, tout est dédié. Très isolé, mais cher et peu efficace. En architecture multi-tenant, plusieurs entreprises partagent le même immeuble. Mêmes couloirs, même ascenseur, même chaudière. Mais chaque bureau est verrouillé — les employés d'une entreprise ne peuvent pas entrer dans le bureau de l'autre. Chacun pense avoir son propre bâtiment, alors qu'il partage en réalité la même infrastructure. Dans le logiciel, c'est pareil. Un seul serveur, une seule base de données, une seule application — mais chaque client (tenant) ne voit que ses propres données. Personne ne voit les données des autres, même s'ils tournent tous sur la même machine. C'est le modèle qu'utilisent tous les grands SaaS : Salesforce, Shopify, HubSpot. Ça coûte bien moins cher à opérer que d'avoir un serveur dédié par client, les mises à jour sont déployées pour tout le monde en une seule fois, et la scalabilité est quasi-illimitée. Le défi ? S'assurer que les 'verrous des bureaux' — l'isolation des données — ne lâchent jamais. C'est là qu'intervient la Row Level Security (RLS) de Postgres.
Détails Techniques
Architecture logicielle dans laquelle une instance unique d'une application — incluant le code applicatif, les serveurs, la base de données et les ressources cloud — sert simultanément plusieurs clients distincts (appelés tenants). L'isolation des données entre tenants est assurée au niveau applicatif ou base de données, non par séparation physique de l'infrastructure. Trois patterns d'implémentation principaux : 1. Shared database / shared schema (RLS) : tous les tenants partagent les mêmes tables SQL. Chaque ligne possède une colonne tenant_id. L'isolation est assurée par Row Level Security (RLS) au niveau Postgres — des policies SQL filtrent automatiquement les données selon le tenant_id extrait du JWT de l'utilisateur authentifié. Modèle le plus dense, économique, recommandé jusqu'à plusieurs milliers de tenants. Risque : une faille dans la policy RLS expose potentiellement toutes les données. 2. Shared database / separate schema : une base de données unique, mais un schéma SQL distinct (ex. tenant_acme.orders, tenant_dupont.orders) par tenant. Migrations plus complexes à orchestrer sur N schémas. Utilisé quand les tenants ont des structures de données légèrement différentes. 3. Separate database : une instance Postgres ou une base dédiée par tenant. Isolation maximale, idéale pour secteurs réglementés (banque, santé, défense). Coût infra multiplié par N tenants. Perte des économies d'échelle. Réservé aux clients enterprise avec SLA strict ou obligations légales de séparation physique. Défis techniques : effect noisy neighbor (un tenant sur-sollicitant les ressources dégrade les autres — mitigation via connection pooling PgBouncer, query timeout, circuit breaker) ; gestion des customisations par tenant (feature flags, overrides de configuration) sans bifurquer le codebase ; audit log par tenant pour traçabilité RGPD ; backup/restore granulaire par tenant en cas d'incident.
#Définition Architecture Multi-Tenant
Architecture logicielle dans laquelle une instance unique d'une application — incluant le code applicatif, les serveurs, la base de données et les ressources cloud — sert simultanément plusieurs clients distincts (appelés tenants). L'isolation des données entre tenants est assurée au niveau applicatif ou base de données, non par séparation physique de l'infrastructure. Pour approfondir, consultez la page service développement SaaS B2B Nehos.
Sur le terrain, Trois patterns d'implémentation principaux : 1. Shared database / shared schema (RLS) : tous les tenants partagent les mêmes tables SQL. Chaque ligne possède une colonne tenant_id. L'isolation est assurée par Row Level Security (RLS) au niveau Postgres — des policies SQL filtrent automatiquement les données selon le tenant_id extrait du JWT de l'utilisateur authentifié. Modèle le plus dense, économique, recommandé jusqu'à plusieurs milliers de tenants. Risque : une faille dans la policy RLS expose potentiellement toutes les données. 2. Shared database / separate schema : une base de données unique, mais un schéma SQL distinct (ex. tenant_acme.orders, tenant_dupont.orders) par tenant. Migrations plus complexes à orchestrer sur N schémas. Utilisé quand les tenants ont des structures de données légèrement différentes. 3. Separate database : une instance Postgres ou une base dédiée par tenant. Isolation maximale, idéale pour secteurs réglementés (banque, santé, défense). Coût infra multiplié par N tenants. Perte des économies d'échelle. Réservé aux clients enterprise avec SLA strict ou obligations légales de séparation physique. Défis techniques : effect noisy neighbor (un tenant sur-sollicitant les ressources dégrade les autres — mitigation via connection pooling PgBouncer, query timeout, circuit breaker) ; gestion des customisations par tenant (feature flags, overrides de configuration) sans bifurquer le codebase ; audit log par tenant pour traçabilité RGPD ; backup/restore granulaire par tenant en cas d'incident.
Maîtriser Architecture Multi-Tenant permet aux équipes techniques et métier de parler le même langage — et d'arbitrer plus vite.
#Architecture Multi-Tenant expliqué simplement
Imagine un immeuble de bureaux. En architecture single-tenant, chaque entreprise loue un bâtiment entier rien que pour elle — murs, chauffage, ascenseur, tout est dédié. Très isolé, mais cher et peu efficace.
En architecture multi-tenant, plusieurs entreprises partagent le même immeuble. Mêmes couloirs, même ascenseur, même chaudière. Mais chaque bureau est verrouillé — les employés d'une entreprise ne peuvent pas entrer dans le bureau de l'autre. Chacun pense avoir son propre bâtiment, alors qu'il partage en réalité la même infrastructure.
Dans le logiciel, c'est pareil. Un seul serveur, une seule base de données, une seule application — mais chaque client (tenant) ne voit que ses propres données. Personne ne voit les données des autres, même s'ils tournent tous sur la même machine.
C'est le modèle qu'utilisent tous les grands SaaS : Salesforce, Shopify, HubSpot. Ça coûte bien moins cher à opérer que d'avoir un serveur dédié par client, les mises à jour sont déployées pour tout le monde en une seule fois, et la scalabilité est quasi-illimitée. Le défi ? S'assurer que les 'verrous des bureaux' — l'isolation des données — ne lâchent jamais. C'est là qu'intervient la Row Level Security (RLS) de Postgres.
Prenez un cas concret : une entreprise de 50 personnes qui accélère sa croissance. La différence entre théorie et terrain ? Les chiffres. Et les chiffres, on les a.
#Cas d'usage concrets
SaaS B2B CRM custom — Nehos (Payload v3 + Postgres RLS) — Développement d'une plateforme CRM conversationnel multi-clients sur Payload CMS v3 + PostgreSQL. Architecture shared schema avec RLS : tenant_id injecté via JWT Supabase Auth sur chaque requête. Policies RLS sur 12 tables. 47 tenants B2B en production. Aucun incident de fuite de données en 14 mois. Coût infrastructure -65 % vs architecture single-tenant équivalente.
Plateforme e-commerce B2B multi-marques (shared schema Postgres) — Distributeur industriel souhaitant ouvrir son catalogue à 3 filiales distinctes avec tarifications, catalogues et utilisateurs séparés. Architecture multi-tenant shared schema : tenant_id sur toutes les tables commandes/produits/clients. Feature flags par tenant pour activer/désactiver modules. Déploiement mise à jour unique pour les 3 filiales simultanément. Time-to-market nouvelles fonctionnalités divisé par 2,5.
Marketplace verticale RH — separate schema par entreprise cliente — Plateforme RH SaaS servant 200 PME. Choix separate schema (schéma SQL dédié par PME) pour permettre customisations de formulaires et champs métier spécifiques par client. Migration orchestrée via scripts automatisés exécutés sur N schémas. Isolation plus forte rassurante pour DRH. Contre-partie : migrations 4x plus longues qu'en shared schema.
Fintech réglementée — separate database par tenant enterprise — Éditeur de logiciel de gestion financière pour 12 grands comptes bancaires. Obligation réglementaire et contractuelle d'isoler physiquement les données. Architecture separate database : instance Postgres dédiée par banque, VPC AWS isolé. Coût infra x12 vs shared schema, mais conformité totale avec exigences ACPR et contrats enterprise. SLA 99,99 % par client possible.
#Architecture Multi-Tenant chez Nehos Groupe
Nehos Groupe applique ce concept au quotidien. Sur les 4 derniers projets impliquant Architecture Multi-Tenant, on a documenté les résultats avec des KPIs précis. Notre service développement SaaS B2B Nehos couvre ce périmètre de A à Z.
La méthode Nehos est documentée sur Stack Payload CMS v3 + PostgreSQL Nehos™. Chaque mission démarre par un cadrage structuré : objectifs chiffrés, périmètre technique, jalons à 30/60/90 jours. Les résultats mesurés sur nos clients : 65 % est un ordre de grandeur courant. On livre, on mesure, on itère. Pas de slides sans livrable. Voir aussi : service Development Next.js Nehos.
#Termes associés
Ce terme s'inscrit dans un écosystème plus large.
- Row Level Security (RLS)
- PostgreSQL
- SaaS (Software as a Service)
- Payload CMS
- JWT (JSON Web Token)
- Single-Tenant
- Noisy Neighbor
- RGPD
Chaque terme est défini dans notre glossaire avec la même approche : définition technique, vulgarisation, cas concrets et méthode Nehos.
Applications Concrètes
"Développement d'une plateforme CRM conversationnel multi-clients sur Payload CMS v3 + PostgreSQL. Architecture shared schema avec RLS : tenant_id injecté via JWT Supabase Auth sur chaque requête. Policies RLS sur 12 tables. 47 tenants B2B en production. Aucun incident de fuite de données en 14 mois. Coût infrastructure -65 % vs architecture single-tenant équivalente."
"Distributeur industriel souhaitant ouvrir son catalogue à 3 filiales distinctes avec tarifications, catalogues et utilisateurs séparés. Architecture multi-tenant shared schema : tenant_id sur toutes les tables commandes/produits/clients. Feature flags par tenant pour activer/désactiver modules. Déploiement mise à jour unique pour les 3 filiales simultanément. Time-to-market nouvelles fonctionnalités divisé par 2,5."
"Plateforme RH SaaS servant 200 PME. Choix separate schema (schéma SQL dédié par PME) pour permettre customisations de formulaires et champs métier spécifiques par client. Migration orchestrée via scripts automatisés exécutés sur N schémas. Isolation plus forte rassurante pour DRH. Contre-partie : migrations 4x plus longues qu'en shared schema."
"Éditeur de logiciel de gestion financière pour 12 grands comptes bancaires. Obligation réglementaire et contractuelle d'isoler physiquement les données. Architecture separate database : instance Postgres dédiée par banque, VPC AWS isolé. Coût infra x12 vs shared schema, mais conformité totale avec exigences ACPR et contrats enterprise. SLA 99,99 % par client possible."