L'IA simplifié: Pilotez votre SaaS par la donnée
Les éditeurs SaaS croulent sous les métriques de leurs utilisateurs. C’est au croisement de cette capacité de récolter de gros volumes et cet impératif de performance que s'intercale l'IA.
Avant d'aborder le sujet, il peut être intéressant de rappeler ce qu'est une solution SaaS : Software as a Service, ou le logiciel en tant que service. Il s'agit d'une méthode de distribution de logiciels qui implique généralement un modèle d'abonnement pour accéder à un produit, un outil ou un service.
À quelques exceptions près, ces logiciels sont hébergés dans le cloud et sont accessibles directement depuis un navigateur ou un appareil mobile, ce qui augmente considérablement l'accessibilité.
Nouveaux modes de consommation
Pour utiliser une application ou un logiciel, il fallait traditionnellement l'installer sur ses serveurs d'application. Pour ce faire, vous deviez avoir un ou plusieurs employés dans votre entreprise capables de gérer toutes les couches, de la mise en réseau à la maintenance de l'application elle-même. Surtout, il fallait souvent posséder l'infrastructure.
Puis sont venus les concepts d'hébergement IaaS (Infrastructure as a Service) et, un peu plus tard, PaaS (Platform as a Service). Ces nouvelles façons de consommer les ressources informatiques ont fourni une couche d'abstraction et de simplification pour déployer et installer nos logiciels ou ceux de nos clients. C'est dans cette lignée de nouvelles façons de consommer les commodités informatiques qu'est né le SaaS.
Le problème est alors simple : Permettre à mon client d' utiliser simplement mon logiciel.
Pas besoin de l'installer, de gérer les mises à jour ou de maintenir l'infrastructure.
Les solutions SaaS se reposent principalement sur deux types d'architectures : multi-instance d'un côté et multi-tenant de l'autre.
« Tenant » (locataire) fait référence à l'équipe ou à l'organisation de vos clients.
Nous ne les verrons pas ici, mais il existe aussi des architectures comme la mono-instance, la multi-instance avec base de données partagée ou encore la flex tenancy qui sont un peu moins courantes.
Le but de cet article n'est pas de prendre le parti d'une architecture particulière, car chacune répond à des besoins différents. L'idée est plutôt de pouvoir comparer les deux types d'architecture, afin de choisir celle qui vous convient le mieux, en fonction de vos besoins et de ceux de vos clients.
Notez que le résultat ne sera pas très différent pour l'utilisateur final. Cependant, il variera considérablement dans la conception de l'architecture du système, des données et de l'accès, ainsi que dans la configuration et la gestion des utilisateurs.
Examinons donc les avantages et les inconvénients de chacun d'eux, en commençant par les architectures multi-instance.
Dans une architecture multi-instance, plusieurs entreprises exécuteront leur propre instance distincte de l'application, avec leur propre base de données. Chaque entreprise aura donc accès à ses données séparément d'une autre.
Ce type d'architecture offre les avantages suivants :
Cependant, comme aucune architecture n'est parfaite, on notera tout de même les points négatifs suivants :
Intéressons-nous maintenant à un autre type d'architecture, le multi-tenant. Ici, plusieurs entreprises utiliseront une seule instance de l'application (qui peut bien sûr être répliquée si nécessaire), avec une seule base de données. Cette architecture n'offre pas beaucoup de flexibilité mais simplifie le processus d'ajout de fonctionnalités et de correction des bogues de code.
Principaux avantages :
Inconvénients :
Vous avez maintenant les cartes en main pour comprendre les différences entre les deux types d'architectures.
Pour résumer, si j'avais une problématique de "fast time-to-market" et besoin de développer rapidement une solution SaaS, je privilégierais plutôt une architecture multi-tenant car plus simple à mettre en place. En revanche, si j'avais besoin de développer une solution plus robuste et sécurisée, j'opterais plutôt pour une architecture multi-instance et bénéficierais d'une isolation totale des données.
Kubernetes a l'avantage de vous permettre de construire une architecture multi-instance ainsi qu'une architecture multi-tenant. Vous pourrez alors orchestrer vos déploiements, mettre à jour, répliquer ou encore « self-scaling » votre infrastructure. Chez Scaleway, nous avons développé une offre Kubernetes Managed : Kubernetes Kapsule.
Voyons quelques fonctionnalités incontournables :
kubectl autoscale deployment myapp —cpu-percent=70 —min=1 —max=10
myapp
déploiement pour qu'il évolue jusqu'à 10 pods lorsque le pourcentage de CPU dépasse 70.Kubernetes Kapsule est un excellent outil pour gérer votre infrastructure cloud. Si vous rencontrez des difficultés pour faire évoluer votre application, envisagez de passer à une architecture basée sur Kubernetes. Vous constaterez une augmentation significative de la productivité de vos DevOps dans les déploiements, la mise en cluster et la stabilité globale.
Cet article est extrait du Webinaire "Découvrez les avantages de Kubernetes pour héberger une solution SaaS". N'hésitez pas à le regarder sur Youtube :
Les éditeurs SaaS croulent sous les métriques de leurs utilisateurs. C’est au croisement de cette capacité de récolter de gros volumes et cet impératif de performance que s'intercale l'IA.