Projet RNTL Selfware
Déploiement, configuration et administration autonome de systèmes répartis
Les environnements informatiques d'aujourd'hui sont de plus en plus complexes. Ils intègrent de nombreux matériels et logiciels, très hétérogènes, tant sur le plan de leur architecture, que de leurs fonctions, ou encore des fonctions d'administration qui leur sont adjointes.
L'administration de ces environnements pose de nombreux problèmes, provenant de la complexité des logiciels ainsi que du fait qu'elle est généralement effectuée par des humains :
Erreurs. Une grande partie des mauvais fonctionnements observés dans les environnements informatiques sont dus à des erreurs de configuration des logiciels utilisés. Ces erreurs proviennent principalement de la complexité des fonctions d'administration de ces logiciels, entraînant de nombreuses erreurs d'origine humaine.
Réactivité. Une intervention humaine pour régler ou réparer un service logiciel implique un délai d'intervention qui n'est pas toujours acceptable. Un réglage pour résoudre un problème de surcharge temporaire doit être effectué dès que le problème est détecté. De même, une panne d'un service doit être réparée au plus vite afin de maintenir la disponibilité du service.
Coût humain. La tâche d'administration d'une infrastructure logicielle est très coûteuse en termes de ressources humaines. Le nombre de personnes affectées à cette tâche croît avec la complexité des logiciels utilisés. De plus, la réactivité se traduit également par une augmentation des ressources humaines affectées à l'administration.
Coût matériel. Comme il est très difficile d'être réactif lorsque l'administration est effectuée par des humains, les politiques d'administration vont se traduire par une surréservation ou un surdimensionnement excessif de ressources matérielles.
Faire disparaître les risques d'erreurs liés à l'intervention d'opérateurs humains, et diminuer les coûts d'administration des systèmes informatiques implique d'aller vers des systèmes informatiques sous administration autonome. Dans de tels systèmes, les opérations d'administration s'effectueraient sans autre intervention humaine que la définition de politiques d'administration de haut niveau. Les principaux avantages d'une telle approche sont clairs:
Réduction des erreurs. Les systèmes sont administrés à travers une interface programmatique, par opposition à des fichiers de configuration complexes. Les opérations d'administration globales sont effectuées par des programmes autonomes utilisant ces interfaces. L'intervention humaine consiste à décrire un comportement d'administration dans un formalisme d'un haut niveau d'abstraction, qui dicte le comportement suivi par le programme autonome, et qui diminue le risque d'erreurs humaines.
Réactivité. Concevoir un logiciel d'administration autonome permet d'effectuer des actions d'administration (réglage, réparation...) dynamiquement, en réponse à des observations et sans intervention humaine.
Economie de ressource. Un logiciel d'administration autonome permet d'économiser des ressources humaines et matérielles. Les ressources humaines sont économisées parce que de nombreuses actions d'administration ne nécessitent pas d'intervention humaine. Les ressources matérielles sont économisées parce qu'elles ne doivent pas nécessairement être pré-allouées, mais peuvent être allouées dynamiquement par le logiciel d'administration, au plus juste des besoins, par exemple lors de la réparation d'une panne ou lorsqu'une montée de la charge est observée.
L'objectif principal du projet SELFWARE est le développement d'une plate-forme logicielle pour la construction de systèmes informatiques répartis sous administration autonome, et son application à deux domaines particuliers : d'une part, l'administration de serveurs d'applications J2EE de grande taille (serveurs en grappes et fermes de serveurs), d'autre part l'administration d'un bus d'information d'entreprise.