La révolution des software appliance

Gérer la configuration d'environnements composites est parfois un cauchemar. Le nouveau concept de software appliance apporte des réponses à cette problématique.

Nos applications, qu'il s'agisse de progiciels ou spécifiques, s'insèrent dans un environnement logiciel complet, et souvent complexe : système d’exploitation, base de données, serveur d’application, frameworks, outils et composants divers.

Depuis des décennies, gérer la configuration de ces environnements composites est un cauchemar. La révolution des software appliance promet d’y mettre fin.

C’est un cauchemar car chacun des composants d’une configuration logicielle a de multiples versions et chacun a ses propres exigences de compatibilité avec les versions des autres. C’est un cauchemar pour les éditeurs de progiciels d’un coté, qui doivent valider leur produit dans une large combinatoire d’environnements, mais aussi pour les intégrateurs et administrateurs, qui doivent déployer tout cela et assurer les montées de version cohérentes.

Pourquoi ne peut-on pas simplement imposer les produits et versions requis pour faire tourner tel produit ou telle application ?

D’abord parce que ces composants doivent être partagés, mutualisés. Un éditeur dont le produit ne tournerait QUE sous telle distribution Linux, ou QUE avec telle version de tel SGBD, se fermerait une partie importante du marché.

Et pourquoi ces composants logiciels doivent-ils être partagés ? Pour trois raisons :
- mutualisation et donc économie des serveurs physiques (des CPUs),
- mutualisation des licences
- mutualisation des compétences.

Aujourd’hui, les technologies de virtualisation des serveurs font tomber la première contrainte, et les solutions Open Source font tomber la seconde.

La mutualisation des compétences peut demeurer une vraie contrainte. Du moins pour les composants qui seraient véritablement visibles, et non au seul usage de l’application.

Ces quelques réflexions ont fait naître le concept, relativement nouveau, de software appliance, que l’on pourrait traduire par équipement logiciel, boîtier applicatif, ou encore application en boite.

La software appliance n’est pas une technologie nouvelle, mais un concept, une vision, rendue possible par quelques technologies récentes et en particulier celles de virtualisation des serveurs, c’est-à-dire la capacité à créer différentes machines virtuelles, partageant les ressources d’un même serveur physique. Avec la virtualisation, le partage des ressources est géré en-dessous du système d’exploitation, et n’a donc plus lieu d’être géré au-dessus.

L’idée donc est que l’application n’est plus le sommet d’une grande pyramide de couches et d’outils systèmes, l’application appliance englobe tous les composants de la configuration logicielle : système d’exploitation, serveur d’application, SGBD, frameworks, etc. Tout.

Et puisqu’elle inclut tout, ces pré-requis du coup se simplifient considérablement. Tout ce qu’il lui faut, c’est une CPU. Ou plus exactement un environnement minimal d’exécution, qui peut être un serveur physique, sans autre prérequis que le BIOS, ou bien un serveur virtuel.

Pour le fournisseur de l’application, comme pour l’administrateur système, cette quasi-absence de prérequis est une simplification énorme. En réalité, bien sûr, les contraintes existent encore, mais elles sont maintenant dans le périmètre de l’application et non dans le périmètre de l’administrateur. Et c’est très différent, car du coup il suffit qu’il y ait une seule solution validée et stable : c’est celle que l’on retiendra. Il n’y a plus des configurations logicielles, il y a une configuration logicielle unique.

En prenant à sa charge la gestion des configurations, le fournisseur de l’application s’allège d’un poids énorme, celui des validations de compatibilité multiples. Il s’ajoute un travail, mais sans commune mesure : de produire des distributions complètes de sa software appliance, et d’y intégrer les montées de version des produits inclus.

L’administrateur système, quant à lui, n’a plus qu’à déployer le package de son appliance, et a un seul coupable désigné en cas de problème : le fournisseur de l’application. L’avènement des software appliance, ce n’est pas exactement la fin des configurations logicielles pour tout le monde, mais ça l’est du moins pour les administrateurs système, et c’est déjà une révolution.

En outre, les configurations des software appliances peuvent (et doivent) être minimalistes : elles n’embarquent du système d’exploitation et de ses utilitaires que ce dont l’application a effectivement besoin. La configuration est donc plus simple, plus légère, plus sécurisée.

Ainsi, les bénéfices ne s’arrêtent pas aux applications. Avec le temps, le système d’exploitation, qui était le socle global de toutes les configurations, devenait une énormité dont la complexité n’était plus maîtrisable et la sortie de nouvelles versions d’OS devenait de plus en plus laborieuse.

Avec les software appliances, le système d’exploitation occupe un rôle un peu moins stratégique, mais surtout, il n’est plus monolithique. Si un serveur Web n’a besoin que d’une gestion des process, des interfaces réseau et d’un système de fichier, il n’aura rien d’autre.

En fait, la fin de l’OS monolithique et généraliste est déjà dans l’air du temps, indépendamment des software appliance. Mais du moins, les deux mouvements relèvent d’une même révolution qui est en marche.

On le voit, c’est une vraie révolution qui se prépare, la fin de quelques décennies de configurations logicielles douloureuses. Une révolution qui est très liée à l’open source, à la fois pour les solutions de virtualisation robustes qu’elle offre, et pour la possibilité qu’elle offre de distribuer librement les composants qui composent la configuration de l’appliance. Car il délicat, sur le plan juridique, de déployer des appliance incluant des produits propriétaires.