jeudi 3 janvier 2008

Virtualisation d'applications: Un effet de mode? 2/5

Dans mon dernier billet j'ai présenté un de problèmes rencontré le plus souvent lorsqu'on installe de logiciels, que ce soit sur un parc d'ordinateurs ou tout simplement sur son poste personnel. Il s'agit de "l'enfer des DLL" ou "DLL Hell". D'autres difficultés découlent de l'installation/désintallation des applications (fragmentation du disque et du registre, instabilité du système, incohérence du registre dûe à des références et valeurs caduques, performances médiocres, etc, etc..) .

Depuis quelque temps des sociétés comme Altiris ou Citrix et d'autres plus spécialisées comme "Thinstall" ou "Softricity" (maintenant Microsoft) ont développé des solutions de "virtualisation d'applications" avec des approches différentes. Dans le cadre de notre projet "Le futur poste de travail" j'ai eu a tester quelques unes des ses solutions et je compte vous livrer mes impressions et résultats de ces tests.

En Juin 2005 j'ai donc commencé par étudier une solution assez complète appelée "SoftGrid" version 3.2 qui appartenait à la société "Softricity" rachetée depuis par Microsoft. La démonstration faite était séduisante au point où je suis parti en stage pendant 3 jours pour essayer d'implémenter une maquette à l'université. L'architecture "SoftGrid" est très complète et un brin complexe.


I.- L'Architecture
  1. - Le "séquenceur" SoftGrid
  2. - Le serveur d'application virtuelle ou SVAS ("SoftGrid Virtual Application Server")
  3. - La console d'administration de SoftGrid
  4. - Le service Web d'administration de SoftGrid
  5. - Le SoftGrid Data Store
  6. - L'Active Directory
  7. - Les clients SoftGrid
  8. - La station de "séquençage" SoftGrid
Ouf, comme vous pouvez le voir il faut des moyens matériels, logiciels et humains pour mettre en œuvre ce type de solution... Je vais quand même vous détailler un tout petit peu les actions les plus intéressantes.



II.- Les Opérations

1) Le "Séquençage" ou virtualisation d'une application:

La partie la plus importante est celle que SoftGrid appelle le "séquençage" . Il s'agit de la création d'un package qui contient l'application installée et paramétrée. Le "séquençage" doit se faire sur un poste "vierge", de préférence une machine virtuelle, capable de revenir sur un état "propre" pour pouvoir recommencer l'opération avec d'autres applications. A la fin du processus on retrouve 4 fichiers qui portent les extensions suivantes:

  1. - .OSD : Un par application
  2. - .ICO: Pour les icônes des applications virtualisées
  3. - .SFT: Pour les suites d'application (Office par exemple)
  4. - .SPRJ: Pour le projet global
Image No 1. Début du monitoring de l'installation


Softgrid se met en mode "surveillance" pour pouvoir capturer l'ensemble des opérations réalisées lors de l'installation de l'application








Image No 2. Exécution de l'application sous l'environnement virtuel

Une fois l'application installée Softgrid l'exécute pour l'optimiser pour le "streaming". Chaque processus lancé par l'application est aussi optimisé.










Image No 3: Finalisation du package


Après la phase d'optimisation on a accès à l'ensemble des options et paramètres qui gouvernent l'exécution de l'application en mode virtualisé.










2) La mise à disposition ou publication des applications virtualisées:

Les fichiers produits lors du "séquençage" doivent être stockés dans le serveur SVAS ou "SoftGrid Virtual Application Server" pour publication. Ceci est effectué via la console d'administration SoftGrid qui va les rendre disponibles aux utilisateurs. L'opération de publication consiste en l'importation du fichier .OSD qui contient toutes les informations de l'application virtualisée dans une base ou "Data Store". L'accès à l'application et sa publication sont gérés via les groupes "Active Directory".



3) La gestion de la base de données ou "Data Store":

Pour gérer la publication, les accès, et tout simplement les applications "séquencées", SoftGrid utilise une base appelée le "Data Store". Cette base est administrée à partir de la console d'administration à l'aide du service Web de SoftGrid !. Ce dernier élément sert d'intermédiaire entre la console et le "Data Store," il gère l'accès des administrateurs SoftGrid à ce dernier.


4) La gestion de l'application sur le poste de travail:

Un agent, installé sur le poste de travail, appelé "SofGrid desktop client" (il en existe un par type d'accès - terminal Services, mobiles, desktop) intervient lors du processus d'identification de l'utilisateur pour lui "présenter"ses applications autorisées et la façon dont elles seront accessibles sur le bureau (dans le menu démarrer, la barre de lancement rapide, etc, etc).
Il gère aussi toutes les informations liées aux groupes, au compte ou tout simplement les extensions des fichiers.


III.- Le principe de fonctionnement

Les applications "virtualisées" sont publiées à partir du serveur "SoftGrid" et s'exécutent, en local sur le client, de façon contrôlée grâce à l'agent "SoftGrid desktop client".
L'exécution de l'application se fait dans un environnement virtuel protégé appelé "SystemGuard". A l'intérieur on trouve un système de fichiers (VFS) et une base de registre virtuels !.
Le chargement de l'application à partir du serveur se fait par "streaming", chargement dynamique uniquement des parties nécessaires au fonctionnement et aux opérations courantes. Dans le cas de SoftGrid uniquement 20 à 40% de l'application sont envoyés lors de son lancement.
D'autre part une partie du disque dur local peut être utilisé en guise de cache ce qui permet d'exécuter l'application virtualisée en mode dit "Offline".
Grâce à ce mécanisme l'administrateur peut gérer les licences des applications virtualisées et leur donner une date de péremption! (très pratique pour les démonstrations ou les évaluations de logiciels)


Conclusions:

Comme on peut le voir l'architecture et la mise en place de "SoftGrid" dans une petite entreprise ou dans un centre universitaire informatique n'est pas une chose aisée.

Le nombre important de composants nécessite de pas mal de ressources matériels (serveurs de base de données, d'administration, stations clientes de "séquençage" de test, etc, etc...) ainsi que humaines (gestionnaire de serveurs, de postes clients, de tests...,..).

Par ailleurs, l'opération de "séquençage" a besoin de compétences particulières à SoftGrid .
En effet, les nombre important de paramètres ainsi que des options rendent son appropriation longue et difficile et ce malgré l'assistant(wizard) d'aide au démarrage.
On peut ainsi modifier ou personnaliser les fichier .SFT et OSD, agir sur le taux de compression du package, sur le système de fichiers virtuel ainsi que sur le registre, exécuter des scripts VBS à l'intérieure des packages, associer des extensions de fichiers, etc, etc. Une opération comme la mise à jour d'un package virtuel, par exemple, nécessite pas moins d'une vingtaine d'étapes !

Pour moi ce type d'application se prête plus pour des environnements disposant de plusieurs milliers de postes, d'utilisateurs et plusieurs dizaines de logiciels, avec des équipes "dédiées" à l'administration des applications. On peut très bien imaginer deux personnes responsables de la partie "serveurs SoftGrid" (base de données, SVAS, Web service...) et trois ou quatre "séquenceurs" aguerris qui connaissent sur les bouts des doigts les différentes options proposées par ce riche et complet environnement. Il s'agit bien d'une solution complète d'administration d'application (packaging, publication, accès, droits, contrôle des lancements, etc, etc)

De plus certains logiciels du marché ne sont pas de bons candidats à la virtualisation, et ce quelque soit la solution choisie. Par exemple, les logiciels de type accès VPN, les antivirus ou tout logiciel nécessitant un accès "direct" au matériel via un pilote ou un service ne seront pas "virtualisables".


Avant de terminer une petite mise en garde s'impose:
Comme expliqué plus haut j'ai fait mes tests avec la version 3.2 de SoftGrid en Juin 2005. Plus de deux ans ce sont écoulés et la société "Softricity" ainsi que sont produit ont été absorbés entre temps par "Microsoft". Désormais l'application s'appelle "Microsoft Application Virtualization 4.5" est se trouve, au moment de la rédaction de ce billet, en phase de beta test.

Pour un tour virtuel du produit chez l'éditeur cliquer ici

Dans mon prochain billet je vous parlerais de la deuxième solution étudiée appelée SVS de chez Altiris.

1 commentaire:

PERRIER Fabien a dit…

"Pour moi ce type d'application se prête plus pour des environnements disposant de plusieurs milliers de postes"

J'ai actuellement environ une 100ene de postes sous App-V et cela est déjà très rentable, ne serait-ce que lors d'une mise à jour logiciel, ou lorsque nous avons des stagiaires qui va et viennent régulièrement.
Avant App-V, nous mettions jusqu'à une 1/2 journée voir plus pour les plus complexes, aujourd'hui, 45 min sont nécessaires pour déployer un pc utilisateur.