Connexion / Inscription Account

Cloud computing

Une architecture multi-client, qu'est-ce que c'est ?

Une architecture multi-client est une architecture logicielle qui permet de servir plusieurs groupes d'utilisateurs différents à partir d'une instance logicielle unique. Les offres SaaS (Software-as-a-Service) sont un exemple d'architecture multi-client.

Dans le domaine du cloud computing, ce terme désigne également un hébergement mutualisé, dans lequel les ressources du serveur sont réparties entre différents clients.

L'architecture multi-client s'oppose au modèle de client unique, selon lequel une instance logicielle ou un système informatique fournit ses services à un seul utilisateur ou groupe d'utilisateurs.

De la technique du temps partagé au SaaS

Le principe d'architecture multi-client existe depuis plusieurs dizaines d'années. Dans les années 1960, les universités qui disposaient de mainframes puissants et onéreux ont développé des logiciels de temps partagé pour permettre à plusieurs utilisateurs d'accéder à un même ordinateur en même temps.

Si le cloud computing existe aujourd'hui, c'est grâce à ce concept qui est resté. Un cloud public répartit un ensemble de ressources partagées (mémoire et puissance de traitement) entre plusieurs clients. Les charges de travail de chaque client sont isolées, même si elles sont exécutées sur une même machine physique ou un même groupe de machines.

C'est en appliquant ce principe à l'architecture logicielle qu'est né le concept plus moderne de SaaS. Le fournisseur exécute l'instance unique de l'application et fournit un accès à chacun de ses clients. Les données de chaque utilisateur restent isolées, même s'il accède au même logiciel que les autres utilisateurs.

Lorsqu'on fait référence à une plateforme d'orchestration des conteneurs comme Kubernetes, le terme d'architecture multi-client désigne généralement un cluster unique qui sert plusieurs projets. Le cluster est configuré de sorte de chaque projet soit exécuté indépendamment des autres.

Avantages d'une architecture multi-client

Une architecture multi-client présente toute une série d'avantages, qui expliquent la popularité du cloud computing.

L'architecture multi-client permet de réaliser des économies. L'informatique est moins coûteuse à grande échelle. L'architecture multi-client permet de consolider et d'allouer les ressources de manière efficace. Il est souvent plus économique pour un utilisateur individuel de payer pour avoir accès à un service cloud ou à une application SaaS, que d'utiliser du matériel et un logiciel réservés à un client unique.

L'architecture multi-client apporte de la flexibilité. Si vous investissez dans vos propres logiciel et matériel, ils peuvent atteindre leurs limites en cas de forte demande ou rester inactifs quand la demande diminue. À l'inverse, un cloud multi-client est capable d'allouer un ensemble de ressources aux utilisateurs en fonction de leurs besoins et de la façon dont ils évoluent. En tant que client d'un fournisseur de cloud public, vous bénéficiez d'un surcroît de capacité quand vous en avez besoin, que vous ne payez pas le reste du temps.

L'architecture multi-client est gage d'efficacité. Les utilisateurs individuels ont moins besoin de gérer l'infrastructure, les mises à jour et la maintenance. Chaque client peut compter sur un fournisseur de cloud central, plutôt que sur ses propres équipes, pour traiter ces tâches courantes.

Quand privilégier l'architecture à client unique ?

Malgré les avantages de l'architecture multi-client, certains cas d'utilisation sont mieux adaptés aux systèmes informatiques à client unique.

Par exemple, les applications qui traitent des données extrêmement sensibles, pour ne citer qu'elles. Les environnements de cloud public et les solutions SaaS sont conçus pour isoler les données et les charges de travail, et ils ont fait leurs preuves. Néanmoins, lors de tests contrôlés, des chercheurs ont découvert des vulnérabilités qui pourraient théoriquement mener à des attaques entre clients au sein des environnements cloud.

En pratique, ces risques sont relativement minimes. Selon un rapport sur les vulnérabilités du cloud publié en 2020 par la NSA, l'agence nationale de sécurité des États-Unis, les vulnérabilités de l'architecture multi-client sont rares et requièrent un haut degré de sophistication. Depuis la publication de ce rapport, aucune attaque entre clients n'a été signalée chez les grands fournisseurs de cloud public. La NSA estime que ces risques sont plus faibles que ceux liés à un mauvais contrôle des accès et aux erreurs de configuration.

Environnements multi-clients sous Linux

Si vous souhaitez mettre en place une architecture multi-client, vous devez isoler les environnements avec des machines virtuelles ou des conteneurs.

Si vous optez pour des machines virtuelles, un hyperviseur met en route des machines invitées qui utilisent un système d'exploitation, des applications et des dépendances propres. L'hyperviseur veille également à ce que les utilisateurs soient isolés les uns des autres.

Comparés aux machines virtuelles, les conteneurs offrent un modèle plus léger, flexible et facile à mettre à l'échelle. Les différents conteneurs sont exécutés à partir d'un noyau et d'un environnement d'exécution communs, et plusieurs applications sont hébergées sur un même hôte, ce qui simplifie les déploiements multi-clients. Contrairement aux machines virtuelles, qui possèdent chacune leur propre noyau, les applications exécutées dans des conteneurs partagent le même noyau, y compris entre plusieurs clients.

Sous Linux®, les espaces de noms permettent à plusieurs conteneurs d'utiliser la même ressource simultanément sans créer de conflit. La sécurisation d'un conteneur s'apparente à celle de n'importe quel processus exécuté. 

Si vous utilisez Kubernetes pour l'orchestration des conteneurs, il est possible de mettre en place des environnements multi-clients à l'aide d'un même cluster Kubernetes. Vous pouvez alors isoler les clients dans leur propre espace de noms et créer des politiques qui faire respecter cet isolement.

Les outils de cloud computing dont vous avez besoin

Red Hat Enterprise Linux logo

Ne surchargez pas votre infrastructure et exécutez vos conteneurs Linux sur un système d'exploitation optimisé et à encombrement minimal.

Red Hat OpenStack Platform product logo

Infrastructure cloud compatible avec du matériel standard, qui vous permet de déployer de façon centralisée tous les outils de cloud privé dont vous avez besoin, quand vous en avez besoin.

Red Hat OpenShift product logo

Développez, déployez et gérez vos conteneurs, où vous voulez et à n'importe quelle échelle.

Vous ne savez pas encore tout sur les environnements cloud…