Français
  • multi-locataire
  • saas
  • logiciel
  • développement
  • architecture

Modèles de location pour une application multi-locataires

Plonger plus profondément dans la notion de "multi-location" et partager nos idées sur comment nous la percevons.

Guamian
Guamian
Product & Design

Nous entendons fréquemment parler de l'importance de créer une application multi-locataires, surtout dans le contexte du développement d'une application Software as a Service (SaaS).

Il y a une certaine confusion concernant le concept d'une "application multi-locataires" et les différents modèles utilisés pour en développer une. Dans cet article, nous avons examiné de plus près ces termes de manière plus pratique.

Comprendre les différents modèles de location d'un point de vue technique

Architecture à locataire unique

L'architecture à locataire unique est un modèle de logiciel ou de cloud computing où chaque client ou locataire dispose d'une instance dédiée d'une application ou d'un service. Si nous regardons l'origine du modèle commercial B2B, cela commence par chaque instance du logiciel ne servant qu'un seul client ou organisation.

locataire unique

Caractéristiques

  • Isolation: Chaque client ou locataire fonctionne dans un environnement isolé avec des ressources, des bases de données et des configurations dédiées.
  • Personnalisation: Les architectures à locataire unique permettent souvent une plus grande personnalisation et flexibilité pour répondre aux besoins spécifiques des clients.
  • Sécurité: Sécurité renforcée et confidentialité des données, car les données des clients ne sont pas mélangées avec celles d'autres locataires.
  • Scalabilité: L'augmentation des ressources et de la capacité peut être plus simple, car l'instance de chaque locataire peut être ajustée indépendamment.
  • Maintenance: Maintenance et mises à jour indépendantes, car les modifications apportées à l'environnement d'un locataire n'affectent pas les autres.
  • Coût: Coûts d'infrastructure et d'exploitation généralement plus élevés en raison de la nécessité de maintenir des instances séparées pour chaque locataire.

Exemples

  • Hébergement dédié: Les fournisseurs d'hébergement web traditionnels offrent des architectures à locataire unique, où chaque client obtient ses propres ressources, bases de données ou configurations.
  • Logiciel sur site: Certaines applications logicielles de niveau entreprise, comme les systèmes de gestion de la relation client (CRM) ou les systèmes de gestion des ressources humaines (HRMS), offrent des options de déploiement à locataire unique pour les organisations ayant des exigences strictes en matière de sécurité des données et de personnalisation.
  • SaaS avec niveaux premium: Dans certaines offres Software as a Service (SaaS), les niveaux premium ou entreprise offrent des options à locataire unique pour les clients nécessitant une sécurité renforcée, une conformité ou une personnalisation.

L'architecture à locataire unique est couramment utilisée dans des scénarios où la conformité est primordiale ou nécessite des exigences de sécurité spécifiques. Par exemple, des industries comme la finance, la santé et le gouvernement, qui ont des exigences réglementaires strictes, privilégient souvent les solutions à locataire unique pour garantir la conformité.

Cependant, il est important de noter que les architectures à locataire unique peuvent être plus gourmandes en ressources et complexes à gérer par rapport aux architectures multi-locataires, car l'instance de chaque client nécessite sa propre infrastructure et sa propre maintenance. En conséquence, elles peuvent être plus adaptées aux applications avec moins de clients mais plus importants ou lorsque la personnalisation et l'isolation sont essentielles.

Architecture multi-locataires

La multi-location logicielle est une architecture logicielle dans laquelle une seule instance de logiciel s'exécute sur un serveur et sert plusieurs locataires. Les systèmes conçus de cette manière sont "partagés" (plutôt que "dédiés" ou "isolés"). Un locataire est un groupe d'utilisateurs qui partagent un accès commun avec des privilèges spécifiques à l'instance logicielle. Avec une architecture multi-locataires, une application logicielle est conçue pour fournir à chaque locataire une part dédiée de l'instance - y compris ses données, sa configuration, sa gestion des utilisateurs, ses fonctionnalités individuelles de locataire et ses propriétés non fonctionnelles. -- Wikipédia

multi-locataire

Caractéristiques

  • Ressources partagées: Plusieurs locataires partagent la même infrastructure, y compris serveurs, bases de données et ressources réseau, pour optimiser l'utilisation des ressources.
  • Isolation: Les données et configurations des locataires sont logiquement séparées, garantissant la confidentialité et la sécurité des données.
  • Économies d'échelle: La multi-location peut être rentable car les frais généraux sont répartis entre plusieurs utilisateurs, réduisant les coûts opérationnels et d'infrastructure.
  • Scalabilité: L'architecture peut évoluer horizontalement ou verticalement pour s'adapter à un nombre croissant de locataires et d'utilisateurs.
  • Maintenance: Les mises à jour et la maintenance sont simplifiées, car les modifications s'appliquent uniformément à tous les locataires, simplifiant la gestion.
  • Personnalisation: Bien qu'une certaine personnalisation soit possible, elle est généralement plus limitée par rapport aux architectures à locataire unique pour maintenir la cohérence à l'échelle du système.

Exemples

  • SaaS basé sur le cloud: La plupart des applications Software as a Service (SaaS), comme Google Workspace et Salesforce, emploient la multi-location pour desservir plusieurs organisations ou utilisateurs sur une plateforme partagée.
  • Hébergement mutualisé: Dans l'hébergement web, les services d'hébergement mutualisé hébergent plusieurs sites web sur le même serveur, chacun appartenant à un client ou une organisation différente.
  • Services cloud publics: Les fournisseurs de cloud public, tels qu'AWS et Azure, utilisent la multi-location pour desservir divers clients avec des ressources virtualisées isolées au sein de centres de données partagés.
  • Solutions d'infrastructure à l'échelle de l'entreprise: Comme un cluster Kubernetes partagé utilisé par plusieurs unités commerciales au sein d'une organisation.

Redéfinir les applications multi-locataires dans le monde réel

Nous avons fourni des définitions d'un point de vue architectural, ce qui permet de distinguer facilement les conceptions multi-locataires et à locataire unique. Cependant, cela penche davantage vers la définition technique. Si nous utilisons ces définitions dans notre environnement de développement réel lors de la conception de modèles de location, cette façon de penser suppose qu'une application multi-locataires doit avoir une infrastructure purement partagée et multi-locataires.

Cependant, les affaires et les produits varient beaucoup et ont de nombreuses exigences au cas par cas, il n'y a donc pas de solution unique pour tous.

Imaginez un scénario où un locataire utilise des ressources provenant d'une infrastructure partagée, mais en raison de besoins commerciaux spécifiques, il nécessite qu'une ou deux parties du système lui soient exclusivement dédiées. Ces parties dédiées pourraient être la base de données, les instances, ou une combinaison d'autres composants, tout en partageant l'infrastructure globale. C'est là qu'intervient l'architecture mixte.

Dans le développement pratique de produits SaaS, il est courant de rencontrer un scénario où un produit est principalement conçu avec un modèle de multi-location générique. Cependant, certains aspects de l'architecture ou des ressources peuvent être orientés vers une approche "locataire unique".

AWS a utilisé l'exemple suivant pour communiquer ce concept : la multi-location est un concept large, et c'est au cas par cas pour combiner et choisir la bonne stratégie pour définir ce que vous voulez réaliser à travers les ressources partagées et l'isolation des données.

locataire mixte

En d'autres termes, parfois les gens appellent encore ce modèle "Multi-location", donc dans la définition plus large de la multi-location, cela n'implique pas que tous les composants d'une solution soient partagés. Au lieu de cela, cela implique qu'au moins certains composants d'une solution soient réutilisés par plusieurs locataires.

Comprendre ce terme de manière large peut mieux vous aider à comprendre les besoins de votre client et d'où il vient.

Plutôt que de se concentrer sur un seul modèle architectural, la multi-location reflète la praticité de l'architecture d'un produit SaaS dans le monde réel. Quand nous faisons référence à une application multi-locataires, cela ne signifie pas nécessairement que l'application adhère à un seul modèle architectural ; elle peut utiliser diverses stratégies de location, indiquant qu'au moins certains de ses composants sont partagés.

Considérations clés pour déterminer votre stratégie de modèle de location

La question est alors, comment proposer la stratégie de location pour mon produit ? Voici quelques questions importantes à prendre en compte :

  • Quels sont vos objectifs commerciaux ?
  • Une solution à locataire unique peut-elle soutenir vos plans de croissance futurs ?
  • Quelle est la taille de votre équipe opérationnelle, et quelle part de la gestion de votre infrastructure peut être automatisée ? Accordez-vous de l'importance à l'agilité et à l'efficacité des coûts ?
  • Vos clients sont-ils à l'aise avec diverses options de multi-location ?
  • Comment chaque option impacte-t-elle la conformité, tant la vôtre que celle de vos clients ?
  • Êtes-vous censé respecter des accords de niveau de service (SLA) ou viser des objectifs de niveau de service (SLO) spécifiques ?
  • Avez-vous pris en compte la sécurité, le coût, la performance, la fiabilité et la réactivité aux besoins individuels des locataires dans leur ensemble ?

Souvenez-vous qu'il n'y a pas de division rigide dans votre produit où vous devez opter pour un modèle exclusivement multi-locataire ou uniquement locataire unique. Votre décision devrait être basée sur la façon dont vous divisez les composants architecturaux de votre produit et les niveaux d'isolation spécifiques requis par vos clients ou votre entreprise. Vous pouvez ensuite appliquer différentes approches en conséquence.

Suivant

Nous avons parlé de la "nouvelle" définition d'une application multi-locataires, mais qu'en est-il de l'isolation des locataires, des identités, et comment déterminer si vos identités doivent être isolées ou non ? Que signifie pour les identités d'être "isolées" ?

La confusion survient souvent lorsqu'il s'agit de situations où un utilisateur réel a deux identités différentes. Est-il approprié de qualifier cette situation d'"identités isolées" ?

Nous aborderons ces questions dans notre prochaine série d'articles. Restez à l'écoute !