samedi 5 janvier 2008

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

Dans mon dernier billet je vous ai parlé de mes tests effectués avec le logiciel "SoftGrid" (maintenant Microsoft Virtualization Application 4.5). Le type de solutions dites "complète" . Son architecture , assez lourde, va vous permettre de gérer la chaîne complète de la virtualisation des applications (packaging, publication, contrôle d'accès, présentation et mise à disposition, etc, etc). J'ai donc continué ma recherche d'une solution simple et robuste, pourquoi pas intégrable à des solutions globales d'administration des systèmes...

Maintenant c'est le tour de SVS de chez Altiris (maintenant Symantec).

Il existe deux versions de SVS:

- La version "SVS Professional"
- La version gratuite à usage personnel appelée "SVS for personal use"

J'ai donc testé, dans un premier temps, la version gratuite puis la version professionnelle dans sa version 2.1 SP1

I.- L'architecture

Le produit de base, celui qui sert à créer les packages virtuels, est le même pour les deux versions. La différence réside dans le mode de licence (usage personnel ou pas) et les modules complémentaires dont je vous parlerais plus en détails.

Partie commune aux deux versions (personnelle et professionnelle)
  1. Le "Software Virtualization Agent": C'est l'agent installé sur le poste de travail. Il contrôle l'exécution des packages virtuels. Il s'agit d'un filtre de type "file system filter driver". Il occupe 160KB sur le disque et 1Mo de RAM en pleine charge.
  2. La "SVS admin": Console installée sur le poste de création de "packages" de préférence une machine virtuelle.
Pour la version professionnelle:
  1. Le "SVS Streaming System": Serveur de "Streaming" , contrôle de licences et administration centralisée des"packages" virtuels. Il s'agit de la version 5.2.1 du logiciel "AppStream Technology Windows Edition" de chez AppStream.
  2. Le module "Logon Hook": Permet d'associer des "packages" virtuels, grâce à des règles, aux groupes et aux utilisateurs d'un domaine Windows
  3. Des modules d'intégration à la solution NS (Notification Server) de chez "Altiris": NS permet le déploiement de logiciels, l'automatisation de tâches, la gestion de correctifs, les inventaires matériels et logiciels, les rapports, les suivis, etc, etc...

II.- Les opérations


  1. La création du package virtuel: C'est l'opération principale. Il s'agit de la capture de toutes les étapes d'installation du logiciel puis de leur virtualisation. Il est conseillé d'employer un poste "propre" avec le minimum de logiciels installés.

    Voici 3 images qui montrent la création d'un package virtuel avec SVS.







    Avant tout, il faut déterminer le type de couche a créer (application, données ou vide)







    L'image ci-contre montre le nom du programme a installer, ici OpenOffice 2.3. L'option "Capture Globale" sert à mettre à jour le package .











    La dernière partie est un récapitulatif des

    options choisies lors des étapes précédentes
    (Cf. image ci-contre)













  2. L'exportation du package virtuel: L'ensemble des opérations capturées sont stockées dans une archive. On parlera donc du fichier .VSA ou "Virtual Software Archive". C'est ce fichier qui sera utilisé pour "importer" le package virtuel sur d'autres postes.



    Un clic droit sur le nom du package pour obtenir le menu avec l'option "Exporter"




    Un aperçu de l'exportation sous SVS. Le résultat est le fichier .VSA qui pourra être utilisé sur n'importe quel autre poste.


















  3. L'importation du package: Grâce a cette opération, le package virtualisé peut être utilisé sur des postes différents.


    Voici deux images qu'illustrent l'importation d'un package SVS. Cette opération rend disponible le logiciel sur le poste.

















  4. L'activation/désactivation du package: Une fois importé pour utiliser le package il suffit de l'activer. Les extensions de fichiers (par exemple .pdf) sont associées automatiquement à l'application virtualisée. La désactivation "désinstalle" l'application.



Dans l'image ci-contre le package OpenOffice n'est pas activé. L'icône du document ODT n'est pas reconnu par Windows.












Ici le package est activé. Tous les documents associés à l'application sont reconnus par le système.






III.- Le principe de fonctionnement

La création d'un package SVS ne diffère pas de celle des autres solutions de virtualisation. A l'installation de l'application , SVS, va capturer tous les changements effectués sur le système puis va générer une enveloppe dite "package virtuel". Pour rendre ce "package" portable sur d'autres postes on doit procéder à une "exportation". Cette opération va créer un fichier suffixé .VSA (Virtual Software Archive) . Pour être utilisée sur un autre poste, l'archive .VSA devra être "importée" . Toutes ces opérations sont effectuées avec l'outil "Altiris Software Virtualization Admin" . Lors de la phase d'importation SVS va créer un dossier caché appelé C:\FSLRDR. Il va y stocker les différentes parties du package dans un dossier qui a pour nom un numéro d'ordre (Cf. image ci-contre). Aussi chaque application virtualisée dispose d'une couche appelée "couche de données". Il s'agit d'un endroit où tous les changements effectués par l'application virtualisée seront conservés (paramètres, préférences, fichiers crées, manipulés, utilisés par l'application, etc, etc). Il existe une opération supplémentaire sur les packages appelée "Réinitialisation de la couche". Elle va vider entièrement la partie données.



Les seules fichiers qui ne sont pas conservés dans cette couche sont ceux sauvegardées sur un partage réseau ou un périphérique externe (clé USB, DVD,...). En d'autre termes, tous les fichiers manipulés par une application virtualisée ,comme par exemple "SuperCopier", iront directement dans la couche de données (ou "Data Layer"). Couche aussi appelée "Inscriptible".





Lors de l'activation d'une couche SVS le filtre
installé sur le poste de travail "superpose",
comme un calque, la partie "C:\FSLRDR\"
correspondante (Cf image ci-contre)


Conclusions


Pour un usage personnel, SVS s'avère être une solution simple et efficace. Cependant il faut pas perdre de vue la manipulation de données avec les logiciels virtualisés, en particulier avec SVS. La désactivation d'une couche provoque la disparition automatique de données manipulées avec elle. Pire encore, sa "réinitialisation" provoque la perte définitive de toutes les données présentes dans la partie "inscriptible" du "package" !!. Aussi l'importation d'un package SVS laisse des "traces" sur le PC hôte (installation du "package", dossier FSLRDR, fichiers composant le "package "virtuel, la couche "inscriptible", etc, etc. ). Une dernière remarque: N'oubliez pas de bien "réinitialiser" la couche avant son exportation en fichier .VSA. Il se peut que de données personnelles manipulées avec le package restent dans la partie "inscriptible" et par conséquence soient stockées dans l'archive ! (Exemple: Pensez à bien "réinitialiser" votre "package Picasa" avant de l'exporter et le mettre en partage pour tous . Il y a un grand risque que vos photos manipulées avec le "package Picasa virtuel "soient restées dans la "Data Layer" . Autrement, la version actuelle a beaucoup évoluée surtout en ce qui concerne son intégration à des produits tiers (Ardence, AppStream, Wyse Studio...) ainsi qu'à la solution "maison" NS (Notification Server). D'autres fonctionnalités comme le "Logon Hook"(attribution ciblée de "packages") ou l'automatisation des opérations d'importation, activation et désactivation à la volée font de SVS une solution complète de virtualisation d'applications.

Dans mon prochain billet je parlerais de mes tests avec la solution "Thinstall"



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.

mercredi 2 janvier 2008

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

J'ai décidé de diviser ce billet en 5 parties pour expliquer pourquoi la virtualisation d'applications peut apporter une réponse à certains problèmes inhérents à l'administration des postes de travail.

Depuis quelques temps la virtualisation en informatique est devenue un sujet très à la mode, on virtualise les systèmes d'exploitation (serveurs et clients) ainsi que l'accès et l'administration de systèmes de stockage (SAN, NAS) sans compter les accès aux réseaux !.

Les applications n'échappent pas à la règle. Dans le monde "Windows" l'installation d'une application (d'un logiciel) nécessite la modification du registre et la copie de dizaines, voir de centaines de fichiers sur le disque dur de l'ordinateur. Il s'agit d'une opération courante qui peut se répéter de dizaines de fois pendant la durée de vie du système.

Chaque application installée va donc, pour ses besoins propres de fonctionnement, installer des librairies ou bibliothèques dynamiques (DLL), modifier le registre (paramètres, enregistrement des DLL, etc, etc), créer de raccourcis, ajouter de services, etc, etc.

Mais qui sont donc ces "DLL's" ?

Les DLL sont de librairies dynamiques chargées en mémoire lors de l'exécution de l'application principale. Elles contiennent des fonctions standards ou privées utilisées de façon ponctuelle . La grande majorité des applications Windows utilisent et fonctionnent avec de DLL dites "partagées".

Si lors de l'installation d'une application une autre sans lien apparent cesse de fonctionner alors on est face au problème dit de "l'enfer des DLL" (ou "dll hell"). C'est à dire que les deux applications sont "connectées" via une DLL ou librairie partagée. La dernière application installée à changé la librairie partagée par une version plus récente ce qui a rendu la première inutilisable. Un autre exemple: Deux versions d'un même logiciel installées sur le même poste. Il y a forte chance que l'on rencontre le même type de problème. Alors, comment sortir de ce piège?

La solution "idéale" serait que chaque application fonctionne avec sa bonne version de "DLL partagée " de façon protégée , encapsulée en quelque sorte. Les dernières versions de "Windows" (2000, XP, Vista) se sont attaqué au problème avec plus ou moins de succès (dllcache, WFP, DLL privées, correctifs, redirection de bibliothèque de liens dynamiques, etc, etc) mais cela reste de l'ordre plutôt de "premiers secours" que de véritable soin.

Dans le monde Unix (linux) les librairies partagées ("Shared librairies") sont autrement implémentées et ne posent pas ce type de problème. Aussi, la plus part de développeurs font ce que l'on appelle des "Applications statiques", elles comportent toutes les bibliothèques nécessaires dans le programme compilé.


De plus, les installations, réinstallations et désintallations qui font partie du "cycle de vie" normal d'un poste de travail vont provoquer une dégradation de performances du système dûe à la fragmentation du registre et du disque dur ainsi qu'à certaines "traces" laissées ci et là après chaque désintallation.

Dans la deuxième partie du billet je vous présenterais les différentes solutions que j'ai eu le temps d'étudier avec pour chacune l'incontournable liste de PRO&CONS...

mardi 1 janvier 2008

Une bonne année 2008.....

Une bonne année à vous tous pleine de réussites !
En espérant qu'elle sera très riche en nouveautés et aussi en défis....


Humberto

lundi 31 décembre 2007

MojoPac ou comment apporter son environnement de travail avec soi !

Salut,

Il m'arrive parfois qu'en déplacement je souhaite bénéficier de mon environnement de travail configuré (mon client de messagerie, mon navigateur et deux ou trois bricoles...)

Lors de la lecture d'un magazine j'ai découvert un produit, gratuit pour un usage personnel, appelé "MojoPac"... En quoi cela consiste-t-il? il s'agit d'un "bureau virtuel" (ok il y a un peu de l'abus de langage...) sécurisé qui peut être installé sur un Ipod ou une clé USB (je vous conseil l'Ipod ou un mini disque dur à la place d'une clé USB pour une simple question de performances !) et qui va s'appuyer sur le système du PC "étranger"...

L'utilisateur ouvre une session sur MojPac
qui va charger ses paramètres et son bureau, voir image ci-contre



Lors d'un récent déplacement à Arcachon chez des amis j'ai donc apporté mon Ipod avec le MojoPac configuré et installé, je l'ai connecté à leur PC (équipé d'une espèce de Windows Média Edition ;-( , j'ai lancé à partir de l'IPOD mon MojoPac et au bout de quelques minutes je me suis retrouvé avec mon Thunderbird, mon Firefox et tous les autres programmes prêts à l'emploi ! (bookmarks, adresses mails, configurations de serveurs, etc, etc) !

C'est géant..en plus c'est gratuit pour un usage personnel !!!


Pour une installation MojoPac encore plus "lite" j'utilise des versions virtualisées de mes logiciels préférés , vous pouvez trouver quelques unes ici:
http://thindownload.com/

Ce sont des versions de logiciels libres virtualisés avec le logiciel de virtualisation "Thinstall" ..
J'en parlerais plus en détails dans un autre billet...

Ci-contre le bureau "MojoPac" avec
les applications virtualisées (Thunderbird, FireFox..)

En plus, côté sécurité aucune information n'a été enregistrée sur le PC de mes amis et lorsque l'on vérifie les processus qui tournent sur le PC hôte on y voit que le MojoPac processus uniquement !

A essayer de toute urgence....

Plus d'informations sur MojoPac ici:

http://www.mojopac.com/portal/content/what/

Intro

Hello, and welcome to my blog !

It's my first blog so please bear with me.

This blog will be about the "client computer or desktop management". I have been working with computers since 1988 (from the days of CP/M 86 OS!), and especially with client management.

Now with virtualization technology hitting IT manager's doors and hurtled to the top of every "must-do list" CCON (client consolidation, thanks to Massimo Re Ferre, http://www.it20.info/misc/brokers.htm), application and storage virtualization are changing the way client environments are managed.

As a professional I work in France for the Rennes 2 University's IT department and currently in a project called "Client computers: What's next?".

So here I am with a little blog's corner and a chance to show you my lack of drafter skills ! ;-(
Also, this "intro" is in English but I'll be blogging in French. I'll try to have both English and French versions but "with a little help from my friends..", the students from the CFTTR (http://www.uhb.fr/langues/craie/cfttr/ff/cfttr.html).

In my personal life I enjoy riding my mountain bike with my son Robin as well as walking and life at the beach (although I live in Rennes, 37,2 miles from Saint-Malo!).

So, I'll try to share my choices and point of view about new technologies involved in the client management field with you.

I'll finish this intro with one statement (suggested by my lawyer ;-] ) :

"The opininions expressed on this blog are my own. They are not representative of my "company", Rennes 2 University, or the rest of my family or friends."
Sometimes I'm not politically correct , so if you disagree with something I say or think that something needs correction then please let me know."

Thank you and now let's blog !

Humberto