J'ai déjà évoqué sur ces pages la sortie de mon ouvrage Cloud Computing et SaaS, édité chez Dunod. J'ai décidé d'en publier quelques extraits sur Tendances.it dans l'objectif avoué de vous pousser à acheter le livre... Ce billet présente le concept des architectures "multi-tenants".
La terminologie "multi-tenant" vient d'une expression anglaise qui signifie multi-locataires. Elle s’appuie sur une métaphore, celle des bailleurs et des locataires que l’on peut illustrer de la façon suivante :
- Dans le cadre de l’externalisation d'applications selon le modèle « outsourcing », chaque entreprise dispose d’un environnement complètement indépendant chez son hébergeur. L’application et les machines nécessaires à son exploitation sont purement et simplement déplacées chez l’hébergeur qui les exploite dans des armoires de serveurs indépendantes. On peut donc comparer cette approche à la création d’un lotissement immobilier où toutes les maisons sont autonomes.
- Dans le cadre de l’utilisation d’une application web classique, les ressources sont totalement mutualisées entre les utilisateurs. L’application est unique, non adaptable aux entreprises utilisatrices. On peut donc comparer cette approche à la création d’un dortoir de pensionnat où tout est partagé entre les étudiants.
- Dans le cadre d’une application SaaS, certaines ressources sont partagées entre les entreprises utilisatrices, comme la plate-forme matérielle, ou le système de persistance. Mais elles bénéficient d’un certain degré de customisation. Elles peuvent utiliser leurs logos, leurs noms de domaines, paramétrer finement les applications, publier leur propre code. On peut donc comparer cette approche à la création d’un immeuble de location où certaines ressources sont partagées (eau, électricité, accès à Internet, gardiennage, buanderie, piscine, etc.) et d’autres non (salle de bain et cuisine dans chaque appartement).
L’objectif des architectures multi-tenant est donc de trouver le juste milieu entre mutualisation et possibilité de customisation. La mutualisation est intéressante car elle permet une rationalisation en termes de :
- Automatisation de l’exploitation des applications (surveillance et monitoring).
- Automatisation des mises à jour applicatives (montées de version).
- Réduction des coûts liée à des infrastructures mises en commun (la facture d’électricité d’une famille de cinq personnes est généralement inférieure à la somme des factures de cinq célibataires).
A contrario, la customisation permet de satisfaire les besoins spécifiques de chaque entreprise, lorsqu'ils ne sont pas totalement génériques. Ainsi les opérateurs de plates-formes de cloud computing cherchent tous le meilleur compromis entre rationalisation et possibilité de customisation. Chacun a sa propre stratégie, et son propre modèle pour atteindre cette cible.