Citrix, ou le don d'ubiquité offert aux applications

le 17/04/2009 par Gabriel Guillon
Tags: Software Engineering

Citrix... ce nom vous évoque quoi ? Un détergent parfum citron ? Un sport extrême ?

J'avoue que pendant plusieurs années (en fait depuis le début de ma vie professionnelle) j'en ai entendu parler sans vraiment savoir ce que c'était. C'était associé, dans le contexte des discussions, à quelque chose comme "virtualisation", "trop de charge sur le poste utilisateur", et "p* c'est cher ! ". Bref, un produit souvent évoqué pour résoudre des problèmes, mais que je n'avais jamais vu, et qui ne ressemblait à rien d'autre.

Et ça y est, j'ai vu la bête : j'ai suivi une formation Citrix il y a quelques semaines.

Présentation!

Citrix, donc, est une suite logicielle permettant de faire du déport d'affichage.

C'est un peu comme la télévision, sauf que vous contrôlez ce qu'il se passe sur le plateau télévisé, et qu'il y a un plateau par téléspectateur : l'affichage se fait sur votre poste, qui peut être un vieux PC (sous Windows, Linux ou MacOS) qui traînait sous votre lit, et les calculs se font sur le serveur (Windows) distant qui, pour le coup, est une bête de course, un monstre de puissance qui peut faire tourner une dizaine d'instances de Catia (au hasard) en même temps.

Qu'on soit bien d'accord : Citrix n'est pas Terminal Server (même si en réalité il s'appuie sur ses services). Terminal Server vous déporte l'affichage de tout le bureau, Citrix uniquement celui d'une application (même s'il peut aussi vous déporter le bureau). Avec Terminal Server, ce que vous sauvegardez se fait sur le poste distant, pas avec Citrix (enfin... ça peut mais ça peut aussi ne pas).

Passé l'installation des différents composants d'une architecture (un serveur de licence, un contrôleur de domaine, un serveur Citrix, un client, sur autant de machines virtuelles ; suivront un serveur de base de données et un serveur web), nous avons joué avec des applications simples : le notepad et la calculatrice.

But de la manœuvre : montrer que ça fonctionne (la version testée était la XenApp 4.5). Et là, un constat : je n'y ai vu que du feu :) Je veux dire par là que l'application déportée a exactement la même tête que l'application réelle : pas de fenêtre parasite englobant l'application (on peut toutefois en mettre une), pas de ralentissement (notable, en tous cas). Bluffant !

Bulle

Puis est venu le concept de bulle (AIE, Application Isolation Environment, dans le jargon Citrix). Une bulle est un environnement d'isolation dans lequel l'application s'exécute (vous pouvez voir ça comme les chroot sous *nix). Citrix lui réserve alors son bout d'arborescence dans le système de fichiers et dans la base de registres pour mettre ses fichiers et ses clés. Cette technique permet de "Citrixer" des applications qui ne le sont autrement pas facilement. Nous avons fait l'exemple avec Adobe Reader. L'idée est tout simplement de demander à Citrix d'installer l'application. Ainsi il enregistre les fichiers et les paramètres dans la bulle afin de les servir au client. Pour autant, il faut le savoir, certaines applications résistent à la Citrixation, même en bulle. Il y en a très très peu, et je n'ai pas réussi à avoir la liste. Si quelqu'un a des informations, je suis preneur.

Déploiement d'applications

Citrix permet aussi de faire du déploiement d'application. Bien pratique pour déployer des patchs sur une palanquée de serveurs, ce que nous avons testé : il fallait déployer des correctifs Citrix sachant que l'un d'eux, non précisé, devait s'appliquer avant un autre, non précisé non plus. Dans un premier temps il nous a fallu tester les patchs pour découvrir leur dépendance les uns au autres, puis les mettre dans des groupes afin de pouvoir en séquencer le déploiement (qui peut se faire à une heure et date fixée). Nous avons donc pu toucher du doigt le système d'ordonnancement du déploiement.

Une fonctionnalité que j'ai trouvé intéressante est pour le client la possibilité de sauvegarder sur son disque local les données générées. En effet, dans ce cas, l'application que vous exécutez "voit" les disques locaux et/ou les disques du serveur sur lequel elle est exécutée.

Conclusion

Mon sentiment sur Citrix est le suivant : c'est une application qui est très utile, très aboutie (preuve en est le nombre de fonctionnalités tunnables), qui rend d'immenses services. J'ai été, pour le coup, bluffé par la prouesse technique.

Pour autant un point me met mal à l'aise (et m'a fait me perdre pendant la formation) : il faut quasiment avoir une certification Windows pour le paramétrer. Certaines choses se paramètrent dans la base de registres, d'autres dans les stratégies de groupe (GPO), d'autres dans une des consoles Citrix, d'autres dans l'autre (oui, il y en a deux), quand ce n'est pas un empilement de ces différents endroits avec des précédences les uns sur les autres. Je m'étais attendu à tout gérer dans la console de configuration de Citrix et je me retrouve bien (trop ?) souvent à en fait configurer Windows.

Toi qui n'a jamais administré de serveurs Windows, passe ton chemin...