Bernard Ourghanlian : “Il faut complétement repenser le déploiement du poste de travail”
Dans l’entretien ci-desous, Bernard Ourghanlian, directeur technique et sécurité de Microsoft France, partage ses réflexion sur le futur de la virtualisation du poste de travail. Il est question entre autres choses des évolutions de la virtualisation pour prendre en compte les architectures multi-coeurs, du futur de Word, de la probématique du couplage entre le système d’exploitation et les applications, de la nécessité de repenser le déploiement du poste de travail, d’Hyper-V V3, d’App-V, de MED-V, de MinWin, de la nécessité de patcher les machines virtuelles, de l’utilisation de machines personnelles dans les entreprises, de la fin de l’installation traditionnelle des applications, de MDOP et de la SA, de la transition du business model de Microsoft vers la consommation d’applications à la demande, du bon contexte d’utilisation de la VDI, de SaaSvs Software + Services, de Live Mesh et des applications "meshifiées", de MOS, des relartons entre Microsoft et Citrix, et enfin du "non sens" qui consiste à développer des applications clientes en Javascript.
Hugo Lunardelli : Le thème de cet entretien sera celui de la virtualisation et notamment de la virtualisation du poste de travail. Ce sujet à tendance à se complexifier rapidement, les options disponibles pour les entreprises se multipliant très vite : on avait jusqu’ici Virtual PC, on a désormais App-V (ex SoftGrid), on va bientôt avoir MED-V, VECD sans oublier Terminal Services … cela devient de plus en plus difficile de s’y retrouver.
Je souhaiterai faire un point sur ces différentes solutions, parler des évolutions de l’offre de virtualisation, en liaison ou non avec Windows 7, et enfin comprendre votre vision du déploiement d’applications en entreprise.
Pour compléter la discussion, je souhaiterais éclairer l’annonce qui a été faite récemment par Citrix avec Intel concernant le développement d’un hyperviseur pour poste de travail et répondre aux questions qui en découlent par rapport à la stratégie Microsoft, par rapport aussi d’une façon plus générale aux relations entre Citrix et Microsoft. On a du mal à suivre qui fait quoi, s’il s’agit de coopération, de compétition …
Bernard Ourghanlian : Aujourd’hui, la virtualisation est, d’une manière générale, essentiellement perçue par la plupart des acteurs comme étant une virtualisation serveur, uniquement dans le datacenter, dans des scénarios qui sont essentiellement de la consolidation, ce qui a probablement correspondu à la première grosse application de la virtualisation.
Petit à petit, on voit cependant arriver des scénarios un tout petit peu plus innovants autour de plans de reprises d’activité, de plans de continuité d’activité mais on est encore dans une vision où la virtualisation reste quand même très orientée serveur. Selon les chiffres dont on dispose il y a probablement moins d’une dizaine de pourcents de serveurs qui sont virtualisés, en sachant également qu’en ce qui concerne les postes de travail, il y en a probablement moins d’1 % qui utilisent la virtualisation.
Donc la virtualisation c’est quelque chose qui aujourd’hui est encore très loin d’avoir atteint son plein potentiel. Pour autant, si on résonne stratégie cette fois ci, on peut penser qu’à terme, tous les environnements feront appel à la virtualisation et ceci de façon massive. Sur un horizon d’environ cinq ans, je pense qu’il y aura très peu d’environnement qui ne seront pas encore virtualisés, que ce soit au niveau des Datacenters, donc des serveurs, mais aussi au niveau des postes de travail.
La raison pour laquelle je pense cela repose notamment sur l’évolution du hardware qui ne se dément pas avec de plus en plus de produits faisant massivement appel à la notion de multicoeur, en sachant que le multicoeur est très intéressant puisque, globalement, c’est un moyen de ne pas faire se démentir la Loi de Moore : on est toujours sur une perspective de doublement de la densité des composants par unité de surface tous les 18 mois.
Cependant depuis que l’on a arrêté de faire galoper les gigahertz, on est en train de raffiner les perspectives d’utilisation de processeurs, aujourd’hui multi-cœurs, vers des modèles qui seront probablement dans l’avenir « many-cœurs ». Quand je dis many-cœurs, c’est simplement qu’au lieu d’avoir des processeurs qui seront totalement homogènes, on aura des processeurs qui seront probablement hétérogènes. Quand je dis hétérogènes ça veut dire qu’on aura, par exemple, quelques cœurs centraux qui seront, en terme de profil, relativement semblables à ce qui existe aujourd’hui, donc des processeurs sophistiqués capables de faire l’exécution dans le désordre, du renommage de registre, de la prédiction de branchement, bref disposant de tout un tas de dispositifs très sophistiqués en termes de hardware mais qui ont le gros inconvénient de consommer beaucoup d’énergie, avec probablement autour de ces processeurs d’autres processeurs « moins intelligents » qui ne bénéficieront pas forcément de tous ces dispositifs sophistiqués ou bien qui seront plus spécialisés pour, par exemple, faire du graphique, être capable d’intégrer des capacités de traitement un peu particuliers liés soit à du graphique, soit à du traitement de signal, etc. On peut donc imaginer la mise en œuvre de processeurs qui seront moins homogènes qu’ils ne le sont aujourd’hui.
Qu’est ce que cela veut dire vis-à-vis des problématiques de virtualisation ? On peut parfaitement imaginer qu’à terme, sur les cœurs centraux de ces processeurs many-cœur, on puisse exécuter le moniteur de machine virtuelle qui, en fait, aura essentiellement comme fonction de faire du multiplexage de machines virtuelles et sur les cœurs un peu moins « intelligents » on puisse exécuter les différents systèmes d’exploitation qu’on voudrait bien leur faire exécuter. Donc certes, cela serait moins performant, mais cela serait beaucoup moins consommateur en terme d’énergie dont on sait que c’est un sujet extrêmement important aujourd’hui, à la fois pour des raisons environnementales mais aussi pour des raisons de consommation d’énergie qui sont des problèmes de plus en plus importants, cette fois-ci au niveau des Datacenters.
Toujours est-il qu’en termes de hardware, on sait qu’on a potentiellement un avenir dans lequel il y aura plusieurs dizaines de cœurs disponibles par processeurs et où il faudra réécrire de façon massive les applications pour être capable d’en tirer partie.
Cette chose là va certainement se passer un jour car on n’a guère le choix ; pour cela, il est nécessaire que l’on mette en place les briques de base logicielles permettant de le faire en sachant qu’écrire des logiciels en parallèle reste quelque chose d’extrêmement compliqué et que, fondamentalement, les humains que nous sommes sont relativement mal équipés pour ça. Cela va donc certainement prendre beaucoup de temps, en partie parce qu’il faut que les outils de base fassent leur apparition, mais aussi parce qu’il faut également disposer des outils permettant de nous aider à paralléliser, voire même de paralléliser tout seul les logiciels.
Il y a des évolutions très importantes dans ce domaine qui vont arriver avec Windows 7, le Framework .NET version 4 ainsi que les outils de développement autour de Visual Studio 10. Mais de toute façon, avant que l’écosystème dans sa globalité aille vraiment dans cette direction là, il s’écoulera des années. En attendant il faut se dire « j’ai plein de puissance et j’en fais quoi ? »
Dans ce cadre là, le gros intérêt de la virtualisation c’est que si j’imagine que demain j’ai un poste de travail (sans parler des serveurs) sur lequel j’ai dix, vingt, trente cœurs, j’aimerai bien être capable de les utiliser. Et si je regarde mes besoins, c’est certes de faire aller les applications plus vite, mais si je suis réaliste, certaines applications comme Word – pour prendre un exemple assez emblématique – n’arrivera jamais à tourner plus vite parce qu’il y aura un processeur beaucoup plus rapide dessous ; à un moment donné on est toujours en train d’attendre que l’utilisateur ait terminé de taper son texte. Donc Word, en tant qu’outil de traitement de texte classique, ne pourra pas bénéficier de façon massive de l’arrivée de n cœurs et donc de n processeurs.
HL : Ce qui est le problème d’Intel pas celui de Microsoft ?
BO : Si c’est quand même le problème de Microsoft parce qu’en fait, ça nous conduit à réfléchir à ce que pourrait être le successeur de Word. Quand je dis successeur de Word, cela signifie non plus un traitement de texte au sens traditionnel du terme mais un agent intelligent qui est capable de nous programmer la totalité de notre journée de demain en nous préparant l’ensemble des éléments contextuels de nos différentes réunions, en étant capable par exemple de nous rédiger un résumé synthétique sur n’importe quel sujet que nous lui aurons préalablement confié, etc.
HL : On est très loin du traitement de texte !
BO : On est très loin du traitement de texte mais on peut penser que ces sujets, sur lesquels on a d’ailleurs commencé un petit peu à communiquer (il y a eu deux ou trois interventions de Craig Mundie sur ce sujet là) où en fait le paradigme que l’on vise, c’est potentiellement de pouvoir se substituer en termes de fonctionnalités à une très bonne assistante, ce qui aujourd’hui est quelque chose qu’on est absolument incapable de faire.
Moi j’ai une très bonne assistante et je sais que je ne serais pas capable de me passer d’elle, parce qu’aujourd’hui dans la réalité, la plupart des outils dont on dispose sont absolument incapables de se substituer à une très bonne assistante.
Donc, on pourrait effectivement rêver de ce genre de logiciel mais, pour l’instant, ces logiciel restent encore de l‘ordre du concept et on est encore très très loin de la réalisation. Alors l’idée c’est de se dire que l’on a plein de puissance potentielle sur son poste de travail, et que l’on aura cette puissance pour le même prix que ce que l’on a aujourd’hui, dans ces conditions pourra-t-on utiliser cette puissance pour faire quelque chose d’intelligent ? Quelque chose d’intelligent c’est par exemple de réussir à diminuer, pour ne pas dire éliminer, le couplage qui existe entre le système d’exploitation, le middleware et les applications.
Aujourd’hui si j’ai besoin de migrer un poste de travail sous Vista, je suis obligé de re-tester toute mes applications, que cela me plaise ou non. Et honnêtement, si je suis utilisateur, je n’ai pas très envie de le faire, à la fois parce que cela me coûte une fortune, mais aussi parce que finalement je suis conduit à avoir un cycle de vie de mes applications qui évolue au même rythme que ma plateforme système et la plupart du temps, ma plate forme hardware. Et cela, fondamentalement parlant, cela n’a pas de sens.
Je peux avoir des applications qui évoluent toute les semaines parce que j’ai des besoins métiers très forts qui nécessitent une évolution permanente de mes applications à ce rythme, mais à l’inverse je peux avoir des applications qui fonctionnent depuis 10 ans, auxquelles je n’ai absolument pas envie de toucher, qui font globalement ce que je leur demande de faire et je n’ai absolument pas envie d’y toucher pour quoique ce soit.
Aujourd’hui on est dans une approche où l’évolution du poste de travail est essentiellement monolithique, c’est en gros du tout ou rien.
En entreprise, il n’est pas rare de voir un millier d’applications potentiellement installables sur le poste de travail. On a même un client, en France, qui a 16 000 composants applicatifs pour ses postes de travail et c’est complètement fou ! Pour être honnête, on ne peut pas imaginer qu’une DSI responsable puisse gérer correctement 16 000 composants en respectant un SLA (Service Level Agreement) vis à vis des utilisateurs, sauf à avoir une organisation monstrueuse en termes de taille. Ceci correspond, en général, à des situations dans lesquelles il y a eu un certain contournement de la DSI par les utilisateurs ou bien des dérapages du système d’information qui ont eu pour résultat un nombre de composants applicatifs beaucoup trop important, mais en tout état de cause, imaginer de tester quelques milliers d’applications sur le poste de travail, même si on ne met qu’une seule journée pour tester la compatibilité applicative avec la nouvelle version du système d’exploitation, cela fait encore des milliers de jours et ça c’est quand même énorme.
Le contexte où, à mon sens, la virtualisation est appelée à jouer un très grand rôle sur le poste de travail c’est finalement pour éliminer ce niveau de dépendance mutuelle qui existe entre le système d’exploitation, les différentes couches applicatives de type middleware et les applications.
Pour cela, l’idée c’est de recourir à la virtualisation sur le poste de travail. Cela veut dire en fait deux choses : la virtualisation système, c’est à dire la virtualisation classique que l’on peut retrouver dans n’importe quel Datacenter aujourd’hui pour faire de la consolidation, et puis la virtualisation dite applicative telle qu’App-V le permet dans l’environnement Microsoft.
L’idée c’est de dire que l’on va complètement repenser le déploiement de son poste de travail. Cela veut dire que l’on va créer un master sur lequel on va installer la version courante, la plus récente du système d’exploitation, donc Windows 7 ou Windows 8 quand il arrivera.
On y ajoutera des clients de virtualisation, de virtualisation système, Hyper-V V3 (aujourd’hui, on dispose de Virtual PC pour faire de la virtualisation système sur un poste de travail), App-V dans la version qui sera disponible à ce moment là, MED-V (on reviendra sur le rôle que peut jouer MED-V dans ce cadre là), éventuellement une virtualisation de présentation telle que celle qui est permise à travers Terminal Services en sachant que Terminal Services dans la version qui sera disponible avec Windows Server 2008 R2 intègrera la notion de brokering de connexion et donc la possibilité de faire en sorte que les connexions puissent être fédérées entre plusieurs utilisateurs de manière intelligente. Il s’agit d’une fonctionnalité qui existe en standard chez Citrix aujourd’hui.
Et donc l’idée c’est de dire que, sur un poste de travail, mon master est extrêmement simple. Je peux y ajouter un anti-virus, parce que jusqu’à preuve du contraire, cela reste nécessaire même si on n’en a pas envie. Et puis… rien d’autre. Tout le reste est « distribué à la demande ».
Alors tout le reste cela veut dire quoi ? Cela veut dire des images systèmes; donc si j’ai par exemple Windows 8, je peux imaginer héberger des images systèmes de Windows 7, de Vista, de Windows XP, voire même de Linux. Tout ça dans un contexte où, de manière virtualisée, j’ai ces différentes images systèmes mais en fait, l’idée c’est de coupler les deux types de virtualisation que sont la virtualisation système et la virtualisation applicative pour faire en sorte que les applications, dans le cas où elles ne sont compatibles qu’avec une version antérieure du système d’exploitation, mais pas avec la version courante, je puisse les streamer comme App-V le permet, sur la machine virtuelle qui est capable de les supporter. Donc, l’idée c’est que pour l’utilisateur, grâce cette fois-ci à MED-V (Microsoft Enterprise Desktop) qui va permettre au niveau du Shell, c’est-à-dire de l’interface graphique, de donner à l’utilisateur l’impression qu’il a toute une série d’icônes ou d’applications qui sont disponibles sur son poste de travail mais, en fait, il ne sait pas si cette application est « exécutée de façon native » sur le système d’exploitation natif de la machine ou au sein d’une machine virtuelle. Aujourd’hui si on regarde Virtual PC, cet outil souffre d’un énorme handicap vu de l’utilisateur. On a, en fonction des machines virtuelles, autant de bureaux que de machine virtuelles et donc en fait autant de contextes d’interaction entre l’homme et la machine.
HL : Excusez moi de vous interrompre mais j’ai cru comprendre que l’idée derrière MED-V consistait à utiliser Virtual PC pour héberger une image système corporate sécurisée dont les applications allaient pouvoir interagir avec le bureau d’utilisateur sans justement cette notion de bureaux multiples, mais il n’était pas question de streaming à la App-V…
BO : Oui, mais l’idée ici c’est de faire les deux. Dans App-V aujourd’hui, l’intégration au sein du bureau est totalement transparente, ce qui veut dire que si je double clique sur mon application, soit elle est déjà dans mon cache local et dans ce cas là je l’exécute, soit elle n’est pas dans le cache local et dans ce cas là je la « streame ».
Ici l’idée consiste à exécuter une application, par exemple uniquement compatible avec Vista et pas avec les versions d’après, alors que j’ai Windows 8 comme version native sur ma machine. En ce cas, j’instancie automatiquement la machine virtuelle Vista que je ne vois pas et, en termes d’usage, soit mon application est déjà dans la machine virtuelle, soit je la streame sur cette machine virtuelle en sachant que l’idée c’est également que les masters de ces autres système d’exploitation soient aussi les plus simples possible. Donc l’idée c’est de coupler de manière systématique les deux types de virtualisation pour, qu’en fait, un utilisateur ait la vue d’un bureau unique, d’une seule interface graphique même s’il a éventuellement deux, trois, quatre machines virtuelles systèmes en dessous et qu’en fait, sur ces machines virtuelles, les applications seront streamées à la demande. Et une fois qu’elles seront là, elles seront utilisables.
HL : Ce que vous décrivez là c’est un mélange de App-V et de MED-V…
BO : Exact. En fait c’est un mélange de trois virtualisation, c’est un mélange d’Hyper-V parce que, en fait je me place dans une hypothèse ou j’ai la version 3 d’Hyper-V sera la version qui supportera normalement le poste de travail (je vais y revenir sur cette version 3).
HL : Vous n’avez jamais communiqué sur cette version ?
BO : Non, nous n’avons jamais communiqué, pour l’instant c’est un sujet sur lequel il y a pas mal de choses à faire puisque l’on est en train de finir la V2 qui sera intégrée dans Windows Server 2008 R2. L’objectif de la V3 – sans engagement de la part de Microsoft pour l’instant car on est encore très en amont – c’est bien sûr de permettre le support des postes de travail. Avec Windows 7 on aura encore une version de Virtual PC qui sera adaptée pour Windows 7, qui apportera d’ailleurs quelques nouvelles fonctionnalités en incluant notamment, sur la version entreprise de Windows 7, quelques fonctions d’intégration du bureau propres à MED-V (mais pas l’administration) mais je dirais que ce ne sont pas des innovations majeures.
Hyper-V V3, si j’essaye de regarder son objectif, c’est de supporter les postes de travail et pour supporter les postes de travail, il faut qu’il repose sur un noyau de Windows qui soit un noyau totalement dégraissé. Vous savez peut être que l’on a démarré il y déjà maintenant à peu près 3 ans un projet extrêmement long et complexe, un projet qui s’appelle MinWin, dont l’objectif est de permettre de « modulariser » complètement le noyau de Windows. Donc ce projet a démarré, déjà avec Vista, il continue avec Windows 7 mais en fait l’achèvement de MinWin en tant que tel, c’est à dire vraiment la possibilité de faire deux choses fondamentales qui sont de pouvoir débrayer complètement Internet Explorer et de pouvoir complètement débrayer le Shell, sont des choses qui ne sont pas encore faisables parce que ces deux éléments sont encore trop imbriqués dans le noyau de Windows. Mais l’objectif qui est fixé avec MinWin, quand il arrivera avec Windows 8 si tout se passe bien, c’est de pouvoir complètement débrayer ces fonctionnalités, quand je dis débrayer c’est de faire en sorte que potentiellement ils ne soient pas présents du tout. A ce moment là, cela permettra d’avoir, pour le poste de travail, l’équivalent d’un Windows Server Core … dans le cas de Hyper-V V3 sur le poste de travail qu’il soit le plus petit possible, aussi bien en termes de surface d’attaque potentielle, qu’en termes d’encombrement mémoire et d’encombrement disque.
HL : Ce qui veut dire que l’on n’aura pas Hyper-V V3 pour Windows 7 ?
BO : Très probablement pas ! Il est cependant possible par contre que Hyper-V V3 soit disponible au préalable sur la partie serveur. Mais ceci reste à voir. Dans l’état actuel des choses, c’est une modification très importante puisque en fait on parle vraiment de la « modularisation » complète du noyau de Windows.
HL : Et en termes de calendrier ?
BO : Normalement Windows 8 sortira probablement après Windows 7…
HL : Donc en 2012
BO : Oui quelque chose comme ça. C’est un travail qui est assez colossal, puisque cela nécessite de complètement dénouer l’espèce de « plat de nouilles » qui est aujourd’hui présent dans le noyau Windows pour des raisons historiques, notamment liées à la version d’Internet Explorer dans Windows.
D’une manière générale, on a aujourd’hui au sein du noyau de Windows ce qu’on appelle des dépendances cycliques, c’est-à-dire qu’on a la couche N qui dépend de la couche N-1, ce qui est normal mais qui dépend à son tour de la couche N+1, et ça ce n’est plus du tout normal. Et donc le résultat c’est effectivement qu’on a besoin de trancher ce nœud gordien pour essayer de faire en sorte que les dépendances de Windows soient correctement définies avec des interfaces également correctement définies, correctement documentées, de façon qu’on puisse n’installer que les éléments dont on a besoin et pas autre chose. Aujourd’hui c’est extraordinairement complexe de faire cela. Et donc c’est la raison pour laquelle Windows Core représente certes un progrès mais ce n’est pas encore tout à fait là où l’on veut aller.
HL : Le Windows Core de Windows Server 2008 ?
BO : Oui tout à fait ! La où on veut aller, c’est vraiment un noyau totalement modulaire et dans lequel on puisse ne mettre que très peu de composants. Par exemple, on peut avoir envie de mettre uniquement au niveau réseau la couche NDIS et pas du tout TCP/IP, de telle façon qu’en fait Windows soit difficilement attaquable depuis l’extérieur, au sens des protocoles TCP/IP classiques du terme. Il y a beaucoup de chose à faire pour arriver jusque là et donc la vision que l’on a pour le poste de travail c’est que Hyper-V V3 permettra d’embrasser ce modèle, et de faire en sorte que l’on ait un encombrement minimal de la couche de virtualisation et que vu de l’utilisateur, il ait son Hyper-V V3 embarqué de manière normale sur n’importe quel poste de travail et que, derrière, il installe les quelques machines virtuelles système dont il a besoin et tout le reste, au sens App-V du terme, vient à la demande. MED-V étant là pour donner à l’utilisateur l’impression qu’il n’a qu’un seul bureau. L’idée étant potentiellement – et ça c’est aussi un travail qui est en cours au niveau applicatif de faire en sorte que pour une application donnée, on connaisse a travers l’analogie qu’on pourrait faire du manifeste qui existe dans les applications .NET, c’est-à-dire d’un fichier XML qui décrit l’application – de faire en sorte qu’on sache que cette application est compatible avec telle version et, qu’en fait, on sache automatiquement si l’application nécessite ou non la possession d’une machine virtuelle ; à partir de là, vu de l’utilisateur c’est absolument transparent, il ne voit absolument pas la différence entre exécuter une application qui est au sein d’une machine virtuelle ou exécuter une application native. Fondamentalement il n’a qu’un seul bureau, son interface homme machine c’est la même chose et derrière il y un, deux, trois cœurs qui sont utilisés pour virtualiser Windows XP ou Vista. En termes de modèle, c’est quelque chose qui utilise pleinement le hardware, ne nécessite pas de réécrire totalement les applications et permet à l’utilisateur d’avoir enfin une indépendance entre le cycle de vie de ses applications et le cycle de vie du système.
HL : Ce que vous décrivez là représente une vision à moyen terme qui nécessite des niveaux de performances beaucoup plus important que ceux dont on dispose aujourd’hui, pour que l’ensemble puisse fonctionner de façon fluide. MED-V va arriver dans le courant de ce semestre et j’imagine que pour faire tourner aisément dans un système d’exploitation une machine virtuelle et des applications intégrées, il doive falloir une configuration musclée.
BO : En fait aujourd’hui cela ne marche pas si mal : j’ai une machine virtuelle Windows 7 sur mon PC et honnêtement les performances sont plutôt bonnes. La seule chose qui est nécessaire fondamentalement, c’est de la mémoire. Aujourd’hui c’est vraiment nécessaire, c’est à dire que si on veut avoir une machine virtuelle « qui respire » il faut lui donner pas mal de mémoire. C’est un sujet sur lequel on travaille beaucoup sur Hyper-V ; dans Hyper-V V2 qui sera intégré à Windows Server 2008 R2, il y a une fonction qui est en cours de préparation et qui va probablement arriver dans une mise à jour de Hyper-V V2, avant l’arrivée d’Hyper-V V3. Il s’agit d’une fonction d’allocation intelligente de mémoire. Si on regarde aujourd’hui les solutions qui sont proposées chez nous ou chez VMware qui fait un petit mieux que nous mais avec quelques frustrations autour de la notion d’overcommitment, cette solution là ne nous paraît pas être une solution vraiment intelligente. La solution que l’on vise, c’est une solution dans laquelle on va être capable d’allouer de la mémoire dynamiquement aux machines virtuelles, autrement dit faire en sorte que à n’importe quel instant, on puisse réallouer de la mémoire en plus ou en moins, à l’ensemble des machines virtuelles qui sont sur la machine, autrement dit on va définir pour chaque machine virtuelle à travers une politique ou un fichier de configuration une mémoire minimale, une mémoire moyenne et une mémoire maximum et, sur la base de ces paramètres on va avoir la possibilité de faire en sorte que l’on puisse retirer de la mémoire et rajouter de la mémoire dynamiquement à chacune des machines virtuelles. Cela nécessite bien sûr que le système d’exploitation le supporte et donc, en fait, on aura la nécessité de recourir a la paravirtualisation et donc ce que l’on a appelé dans le cas d’Hyper-V, les « enlightments », de telle façon que le système d’exploitation soit capable d’accepter qu’on puisse rajouter de la mémoire ou que l’on puisse lui en retirer. Et donc l’idée ça va être de pouvoir à la demande, ajouter ou retirer de la mémoire pour bénéficier d’un genre d’équilibrage dynamique entre les différentes machines virtuelles. L’idée c’est d’utiliser le maximum de mémoire à chaque instant mais, si on rajoute une machine virtuelle, il faudra en enlever sur celles qui tournent déjà et en rajouter à la nouvelle machine virtuelle, et cela c’est une fonctionnalité qui va arriver dans l’Hyper-V V2.x. C’est une fonctionnalité qui va normalement arriver juste après la sortie d’Hyper-V v2 (qui sera intégrée avec Windows Server 2008 R2) mais qui va jouer sur le poste de travail un rôle absolument fondamental parce que en fait sur le poste de travail aujourd’hui, le goulot d’étranglement en tant que tel c’est moins le processeur que la mémoire et donc typiquement cela fait partie des éléments qui joueront un rôle très fondamental dans la virtualisation des poste de travail.
HL : En termes de caractéristique mémoire, quelles sont les recommandations de Microsoft pour justement tirer partie de ces technologies ?
BO : C’est relativement difficile à dire puisque cela dépend vraiment de l’environnement applicatif que l’on a dans ces machines virtuelles. Si on veut tailler une machine virtuelle Vista avec 256 mégas de mémoire, on peut le faire mais cela va « ramer » et il faut espérer que l’on n’installera pas beaucoup d’applications au dessus.
Aujourd’hui, si on prend une machine virtuelle Windows 7, on respire vraiment sans problèmes avec un giga de mémoire. Avec Windows 8 on peut raisonnablement penser qu’on respirera encore mieux parce que on aura la possibilité de bénéficier de MinWin et donc de la possibilité de n’avoir que les briques dont on a besoin sur son poste et aussi sur son serveur, cela fait partie des éléments qui vont contribuer à rendre beaucoup plus simple l’utilisation d’un PC sur lequel on aura certes de la mémoire mais pas dans des quantités absolument gigantesques.
HL : Mais d’une façon générale, pour une entreprise qui aujourd’hui doit procéder à un appel d’offres pour renouveler une partie de son parc PC, sur quel montant de RAM doit elle tabler pour pouvoir à terme mettre en œuvre ces différents technologies, est ce quelle doit partir sur quatre gigas ?
BO : A terme, je pense que quatre gigas est probablement un bon chiffre. Mais en sachant que la virtualisation est un sujet qui est « en devenir », pour plein de raisons. Il y a aussi le fait que le hardware évolue. Au niveau du hardware il y a un certain nombre de fonctionnalités qui arrivent dans les nouvelles générations de processeurs qui ne sont pas encore intégrées dans les machines d’aujourd’hui, comme par exemple la fonction qui s’appelle VT-d chez Intel et IOMMU chez AMD, qui sont des fonctions qui vont permettre au niveau de la virtualisation de pouvoir faire des entrées sortie « directes » depuis les machines virtuelles. Aujourd’hui quand on regarde la façon dont cela fonctionne sur Hyper-V, on fait une entrée-sortie, mais on a besoin de passer à travers le bus mémoire qui va sous-traiter tout le travail à la machine virtuelle parente qui fait effectivement le travail. On a besoin de faire des échanges mémoire à mémoire entre deux machines virtuelles qui, au final, vont aboutir à un disque ou à un périphérique d’entrée sortie. L’idée avec VT-d (« d » comme Direct IO) c’est d’avoir simplement un message service qui dise au hardware : « prépare ta fenêtre de DMA, je vais ‘tirer’ à cet endroit là », et à ce moment là on va faire en sorte que la machine virtuelle, une fois que l’on a préparé le buffer au bon endroit, puisse directement insérer le contenu de l’entrée sortie dans le buffer sans avoir à faire de la recopie. C’est un énorme plus en termes de performances parce que cela va permettre de pouvoir consommer énormément moins de CPU que ce l’on fait aujourd’hui. Et d’une manière générale, c’est ce qui va permettre, dans un environnement qui est très riche en entrées sorties comme le poste de travail, d’avoir de bien meilleures performances.
HL : Ce que vous décrivez là se situe dans un horizon d’environ 3 ans et quid de l’arrivée beaucoup plus tôt, si on en croit Citrix, d’une solution qui leur soit propre ?
BO : Je dirais qu’il est encore un petit peu tôt pour pouvoir se prononcer sur une telle solution : la question c’est de voir comment elle sera déployée et quelles seront réellement ses performances et ses capacités, parce que, d’une manière générale, la virtualisation sur le poste de travail c’est déjà possible à travers Virtual PC (ou son équivalent chez VMware). Virtual PC ce n’est pas un Hyperviseur, donc cela présente un certain nombre d’inconvénients mais c’est parfaitement utilisable aujourd’hui. Ce qui en fait reste problématique au niveau de toutes les machines virtuelles, et c’est vrai pour tout le marché aujourd’hui, c’est d’abord leur performance et leur niveau d’intégration avec le système.
Quand on parle d’une solution comme MED-V, sa justification essentielle c’est que, pour un utilisateur, il est extrêmement perturbant d’avoir n machines virtuelles : il n’y comprend plus rien. Il passe son temps à passer d’une machine virtuelle à une autre, il ne sait ce qu’il peut faire entre elles, il peut faire du copier coller, de temps en temps c’est possible, de temps en temps ce n’est pas possible, et puis donc d’une manière générale, l’expérience utilisateur n’est quand même pas très simple. Et puis la dernière chose qui me parait aussi tout à fait fondamentale, c’est la problématique de la gestion de ces machines virtuelles, c’est à dire qu’aujourd’hui une machine virtuelle cela a un cycle de vie, ca naît, ça meurt mais entre temps en général cela fait plein de choses et en particulier ça doit se patcher. Donc un des sujets extrêmement importants au niveau des machines virtuelles c’est de faire en sorte de savoir les patcher offline.
Aujourd’hui l’idée c’est que quand je reçois un patch sur le poste de travail, il faut que l’on sache patcher toutes les machines virtuelles qui sont installées dessus. Sans même d’ailleurs que la machine virtuelle soit démarrée. Ca c’est quelque chose sur lequel on travaille, c’est un point absolument fondamental qui aujourd’hui est totalement « planqué sous la moquette » mais dans la réalité, quand on se retrouve avec 25, 30, 50 machines virtuelles et qu’il faut toutes les patcher et qu’il faut toutes les démarrer pour être capable de les patcher, c’est un vrai cauchemar !
Cela fait partie des éléments sur lequel il y a un travail de fond qui est à faire parce que, dans l’état actuel des choses, si je démarre une machine virtuelle non patchée et que, comme c’est malheureusement le cas, j’ai trois ou quatre virus qui se baladent sur le réseau, j’y « ai droit » immédiatement. Donc cela fait partie des points sur lesquels on a absolument besoin de faire progresser les choses. Ce point est encore plus important sur les serveurs, puisque sur les serveurs « en général » on a moins de serveurs physiques, moins de machines virtuelles et on gère cet environnement a peu près de manière professionnelle mais, si on imagine donner des tas de machines virtuelles à des utilisateurs qui n’ont pas la moindre idée de ce qu’il faut faire en terme de patchs, cela va mal ce terminer.
Concernant ces solutions de virtualisation, il y a même des fabricants comme les gens de Phoenix qui aujourd’hui essayent de mettre en œuvre un hyperviseur qui soit intégré en standard avec n’importe quel PC. Je dirais : « pourquoi pas », si l’on accepte de se restreindre à faire relativement peu de choses dans ce cadre là car, dès que l’on commence à rentrer dans un environnement opérationnel où on va faire des choses un peu plus complexe nécessitant un véritable OS, la question de savoir comment on va patcher l’hyperviseur concerné si on a des problèmes, est un vrai sujet.
D’ailleurs, l’une des raisons pour laquelle aujourd’hui on travaille sur la preuve mathématique d’Hyper-V, un sujet sur lequel on travaille en partenariat avec l’université de Sarrebruck et Microsoft Research, c’est parce que l’on sait que c’est un élément fondamental. Il va falloir être capable de prouver mathématiquement les machines virtuelles car on ne peut pas se permettre d’avoir à supporter un bug sur le moniteur de machine virtuel lui-même.
Et c’est d’ailleurs l’une des raisons pour laquelle l’architecture d’Hyper-V me semble tout a fait préférable parce que c’est un micro noyau de petite taille (moins d’un Mo, environ 50 000 lignes de code) qu’une architecture d’hyperviseur « à la VMware » dans lequel on va rajouter tout un tas de drivers de périphériques etc. Une des raisons pour lesquelles on veut garder à l’hyperviseur une taille absolument minimaliste c’est qu’on veut vraiment réussir à le prouver mais aussi à en limiter au maximum la surface d’attaque. On sait que c’est essentiel.
HL : Pour rassurer les directions informatiques ?
BO : Oui mais pas seulement : il n’est tout simplement pas possible qu’on ait des bugs dans quelque-chose qui va devenir une composante absolument fondamentale de tous les postes de travail et de tous les serveurs de demain. Donc l’idée c’est qu’on n’ait jamais à patcher, jamais, sauf pour rajouter des fonctionnalités. C’est exactement la même chose que si on disait : « désolé mais il faut changer le BIOS sur toutes vos machines ». J’ai souvenir de virus il y a quelques années qui bousillait le BIOS quand il s’exécutait et c’était une catastrophe, les gens ne pouvaient plus rien faire. Donc là c’est pareil, si l’hyperviseur à un bug et que, par exemple, on a mis là dedans ce que l’on appelle un « hyper rootkit », qui va attaquer l’hyperviseur lui-même, c’est l’enfer. Il faut imaginer des milliers de serveurs et des dizaines ou des centaines de milliers d’ordinateur à patcher, c’est à devenir fou. Donc cela, on ne peut pas se permettre de le faire. C’est une des raisons pour lesquelles l’autre évolution qui est importante au niveau hardware c’est l’arrivée de TXT (Trusted Execution Technology) chez Intel (cela s’appelle SVM chez AMD) qui va permettre de faire en sorte qu’on puisse disposer de la signature d’hyperviseur dans le TPM pour faire en sorte que l’on soit sûr que l’hyperviseur ne soit pas frelaté avant de le démarrer. Ce sont des briques qui deviennent absolument nécessaires si on veut construire des systèmes d’information demain.
HL : Et justement ce n’était pas une des ambitions de l’annonce de Citrix et d’Intel que d’expliquer que des composants compatibles avec les extensions processeur d’Intel puissent être patchés à distance même s’ils ne sont pas opérationnels ?
BO : Si bien sûr, cela fait partie des objectifs de vPro, etc … Si l’on regarde aujourd’hui la fréquence de patch d’un BIOS sur une machine, c’est souvent très fréquent, par exemple tous les deux ou trois mois (c’est le cas sur la mienne). Donc le fait qu’on ait envie de le faire de la façon la plus simple possible, c’est effectivement logique et moi ça ne me choque pas que l’on se donne les moyens de mieux le faire. Mais, dans tous les cas, le fait qu’on puisse le faire c’est bien, mais ne pas avoir à le faire c’est encore mieux.
HL : Tout à fait mais on pourrait imaginer, avec ce genre d’outils, de pouvoir patcher Hyper-V sans que cela devienne quelque chose d’incommensurable ?
BO : Oui on peut l’imaginer, mais d’une manière générale, honnêtement, ce que l’on constate et ce que nous disent tous nos clients, une des raisons pour lesquelles ils patchent avec si peu de bonne volonté – quand on voit ce qu’il est en train de se passer avec Conficker et tout les problèmes qu’il y a chez de très nombreux clients qui ont fait le choix de ne pas patcher – c’est qu’en fait, sur 100 % des PC, il y a toujours un ou deux % pour lesquels il y a un problème. On ne sait pas pourquoi : « parce que ceci », « parce que cela », « parce que le PC n’était pas accessible par le réseau »,…
Ce qui est très difficile dans cet environnement là c’est d’atteindre le 100 %. Donc même si on a la possibilité de patcher sans avoir à démarrer le PC, c’est très bien, ce qui est ensuite compliqué ce sont les cas d’espèces qui font que le PC n’a pas été patché, pour des raisons X, Y ou Z. Un bon patch c’est un patch qu’on n’a pas besoin d’appliquer parce que l’hyperviseur aura été assez solide pour ne pas nécessiter de correction…
De même, un bon déploiement c’est un déploiement qu’on n’a pas besoin de faire, c’est la raison pour laquelle la virtualisation est si importante, l’idéal étant qu’un jour il n’y ait plus de déploiement du tout. Quand on voit les difficultés qu’ont nos clients aujourd’hui avec le déploiement des postes de travail, honnêtement je pense que ce problème a assez duré. A mon sens, la raison pour laquelle la virtualisation dans ce cadre est une vraie révolution, c’est que l’on change complètement la donne. Déployer les postes de travail, patcher les postes de travail, cela a été toujours une vrai « galère ». Il faut que cela cesse.
HL : Entre la situation actuelle que vous décriviez avec moins d’un % des postes de travail qui utilisent la virtualisation et la vision à moyen terme reposant sur Hyper-V V3, comment est ce que vous voyer la transition s’opérer graduellement entre ces deux stades?
BO : Je dirais que cette transition va déjà s’opérer à travers la généralisation d’App-V et de MED-V et avec la volonté de faire en sorte que, petit à petit, les gens comprennent l’intérêt de la virtualisation. Par ailleurs, l’un des intérêts majeurs de MED-V, c’est le fait que, vis-à-vis des utilisateurs, il n’est pas besoin de les reformer : le fait qu’ils ont une machine virtuelle en plus de leur machine habituelle va être totalement transparent pour eux.
HL : Et cela va tourner sur des machines actuelles ? J’ai cru comprendre que sur un PC ou un portable standard aujourd’hui cela risquait de « ramer ».
BO : Cela dépend de ce que l’on appelle un portable standard, c’est toujours pareil. Avec Windows 7 qui arrive bientôt, c’est déjà une consommation mémoire qui est nettement moindre que la consommation mémoire de Vista. Aujourd’hui on peut parfaitement utiliser Windows 7 avec un giga de mémoire, par exemple sur un Netbook, ce qui était honnêtement assez difficile avec Vista. Dans ce sens là c’est un élément de progrès extrêmement substantiel.
Ensuite, si j’ai des machines virtuelles, par exemple aujourd’hui une machine virtuelle XP qui correspond à des scénarios très réels dans les entreprises qui ne peuvent pas migrer vers Vista parce que leurs applications ne tournent pas ; la virtualisation pour ces entreprises c’est une solution, je dirais même que c’est probablement la solution. Donc avoir encore une machine virtuelle XP sur lequel j’ai mon patrimoine applicatif, que je n’ai pas envie de migrer, représente une solution tout à fait envisageable, au moins pendant quelques années le temps que les choses se résolvent.
Aujourd’hui, une machine Windows XP avec 512 mégas, ça tourne sans grande difficulté ; il est donc tout à fait envisageable de pouvoir faire tourner à la fois Windows 7 et une image virtualisée de Windows XP sur la même machine et, même avec 2 gigas, cela ne devrait pas poser le moindre problème.
HL : Une machine avec un giga de ram sous Windows 7 serait suffisamment configurée pour faire tourner et Windows 7 et une machine virtuelle sous XP ?
BO : Probablement pas, donc là l’idée c’est d’avoir plutôt deux gigas parce que cela va me permettre de faire tourner à la fois Windows 7 et puis une machine XP, voire même en plus une machine Vista, si je ne fais pas des choses absolument gigantesques dessus. Mais c’est vrai qu’aujourd’hui, quand on regarde les configurations que l’on trouve y compris sur n’importe quel PC chez Carrefour, Auchan etc., honnêtement je ne sais pas si on trouve encore, en dehors des Netbooks, le moindre PC avec moins de 2 gigas de mémoire vie. La progression est dans cet axe là, c’est-à-dire que l’on se rend compte qu’au niveau processeur de toute façon on ne peut plus rajouter des gigahertz.
HL : Quid du parc existant ?
BO : Il faut voir à quelle vitesse les choses évoluent, mais dans les entreprises aujourd’hui, on a souvent un taux de renouvellement d’environ un tiers chaque année, ce qui veut dire qu’on renouvelle 100 % du parc tous les 3 ans ; une telle approche est donc loin d’être invraisemblable.
HL : Les rythmes de renouvellement vont peut être s’allonger compte tenu du contexte économique.
BO : C’est tout à fait probable ; ceci étant, comme on, dit « nécessité fait loi ». Rien n’empêche d’imaginer des modèles totalement différents de la façon dont on utilise les postes de travail aujourd’hui dans les entreprises. Alors peut être que c’est quelque chose de très révolutionnaire mais je pourrais tout à fait imaginer que, dans certaines entreprises, moyennant le payement d’une sorte d’allocation forfaitaire annuelle aux collaborateurs, on leur dise : « utilisez donc votre PC ». Il y a d’ailleurs des entreprises qui se sont lancées dans cette direction, comme la Shell. Elles payent quelque chose comme 2000 $ ou 2000 € à leurs collaborateurs et leur disent : « vous achetez la machine que vous voulez mais, par contre, vous en assurez la maintenance, je ne veux pas en entendre parler ». Il n’y a donc pas de call center sur autre chose que les applications. « Tout ce qui est système d’exploitation etc., c’est votre problème ; moi je vous donne une machine virtuelle avec, dessus, tout l’environnement corporate dont vous avez besoin et vous la faites tourner sur votre PC. »
HL : C’est l’idée de Med-V ?
BO : C’est MED-V plus Virtual PC/Hyper-V V3 en l’occurrence sur le poste de travail à terme. Et oui c’est effectivement ca l’idée.
HL : Si la machine qui supporte l’OS hôte des machines virtuelles à des problèmes, qu’est ce qui ce passe si la machine n’est pas sécurisée ?
BO : C’est clair que là on a exactement les mêmes problèmes qu’on a aujourd’hui dans la virtualisation dans les Datacenters. Quand on a une machine dans un Datacenter qui supporte quatre, cinq, dix ou vingt machines virtuelles, si jamais l’on a un problème au niveau du hardware ou au niveau de l’hyperviseur ou de la partition maitresse, malheureusement on perd tout.
Donc l’un des éléments sur lequel on travaille, même si je ne suis pas très certain que ce soit très réaliste sur un poste de travail, c’est de pouvoir imaginer d’avoir plusieurs partitions parentes qui soient capables d’être en redondance.
HL : Pour prendre le relais en cas de défaillance de la partition principale… Je suppose que l’ensemble des partitions parentes doivent être patchées, ça devient compliqué !
BO : C’est clair que la virtualisation sans gestion du cycle de vie d’une machine virtuelle c’est l’enfer.
Il faut absolument gérer son cycle de vie de machines virtuelles et c’est la raison pour laquelle on a tant insisté sur System Center Virtual Machine Manager : c’est obligatoire, on a pas le choix, il faut être capable de gérer à la fois les machines physique et les bibliothèques de machines virtuelles de la façon la plus intelligente possible et être capable de faire en sorte que les mises à jours de ces machines virtuelles se fassent dès que c’est possible et le plus rapidement possible.
Ce qui nécessite ensuite de savoir, par exemple, utiliser des protocoles différentiels pour pouvoir ne recopier que ce qui a changé. Par exemple si je mets en place un changement au niveau central, je vais faire en sorte que les machines virtuelles et l’ensemble du parc puissent être patchés sans recopier les quelques gigas que représente la machine virtuelle à chaque fois. C’est une des raisons aussi pour laquelle utiliser App-V et Hyper-V fait beaucoup de sens car cela permet d’avoir des machines virtuelles en petit nombre en fonction des profils d’utilisation et ensuite de streamer le reste du patrimoine applicatif à la demande ; cela évite d’avoir les situations qu’on voit chez pas mal de clients où l’on a des centaines et des centaines de machines virtuelles différentes juste parce que untel a telle application, untel a telle autre application et, à chaque fois, il faut en gérer autant, c’est-à-dire en patcher autant. C’est un cauchemar. Alors que si, en central, j’ai un patch à appliquer au niveau App-V, je patche en central mon application et puis à partir du moment où je vois qu’il y a une différence sur le poste de travail, je télécharge la différence et puis c’est tout. C’est comme même un énorme avantage !
HL : Est-ce que c’est la fin des applications installées au sens traditionnel du terme ?
BO : Je pense que oui et il est probable que l’on verra sous peu des applications Microsoft livrées également sous la forme de containers App-V. Une des hypothèses sur lesquelles on travaille consiste à étendre ce modèle de déploiement au Web. Imaginons que toutes les applications de Microsoft soit disponibles sur un portail Live en mode abonnement ou en mode « je paie à la consommation ». A partir du moment où on est dans ce mode là, je double clique sur mon application, je la « streame » sur mon poste de travail et, ça y est, l’application est là.
Donc en termes de perspective, la virtualisation applicative est quelque chose d’extrêmement important, pas seulement dans l’environnement de l’entreprise, mais aussi dans le monde de l’internaute lambda qui a besoin d’utiliser une application pour un usage particulier pendant quinze jours et puis voila.
Un exemple que je cite souvent c’est Excel, avant la déclaration d’impôt. C’est typique d’un usage dans lequel on n’a pas besoin des applications tout le temps, on a juste besoin d’un usage temporaire d’une application et la virtualisation applicative dans ce cadre là c’est quand même très bien car je n’ai pas besoin d’installer quoi que ce soit sur mon poste de travail. J’installe l’application dans un container et quand je n’en ai plus besoin, il suffit que je supprime le container et je n’ai plus d’application, … c’est quand même autre chose que le mode dans lequel on a l’application, dans lequel on l’installe, ça prend un temps fou, ensuite on la désinstalle, ça prend aussi un temps fou, ça marche une fois sur deux …
HL : Reste à adresser le scénario ou un utilisateur a besoin de travailler depuis plusieurs machines
BO : Un des scénarios intéressant dans ce contexte là, c’est par exemple ce qui arrive avec les fonctionnalités de BranchCache *. Le gros intérêt ici, c’est que l’on utilise un cache distribué où le même élément est en mémoire cache, géré en mode peer to peer : il est directement disponible sur l’ensemble des postes de travail d’une agence, pour en faire en sorte qu’on puisse avoir un cache qui soit répliqué et qu’en même temps, on ait la possibilité de faire en sorte que le transfert réseau ne se fasse qu’une fois. Cela évite d’avoir un serveur en agence et ça permet dans un scénario où, effectivement, on peut avoir l’environnement applicatif App-V qui ne soit téléchargé qu’une fois, de faire en sorte que la mise à jour ne se fasse qu’une fois et qu’ensuite, elle soit disponible sur l’ensemble des postes de travail.
HL : Je pensais plutôt à un scénario grand public.
BO : Dans le cas d’un scénario de ce type, c’est un tout petit peu plus compliqué, sauf à imaginer que l’on ait Home Server à la maison. Ou encore d’utiliser Live Mesh pour synchroniser tous ces éléments…
HL : Et encore, cela ne répond pas à toutes les problématiques. Si je suis en déplacement dans un cybercafé, j’aimerai bien retrouver mon environnement applicatif.
BO : Dans ce cas là, le scénario à envisager c’est probablement un scénario de type mémoire flash, clé USB un peu sérieuse, sur laquelle j’ai cet environnement virtualisé ; ça aussi ça fait partie des choses qui sont faisables.
Maintenant sur le plan licence, etc., ce n’est pas simple du tout. C’est un scénario qui, sur le plan technique, a déjà été réalisé. Mettre une image virtuelle d’une application telle qu’Office sur une clé USB virtualisée, c’est quelque chose que l’on sait faire. Mais pour l’instant cela n’existe qu’à l’état de prototype parce que, sur le plan du contrôle de licences, c’est quand même assez compliqué à mettre en place. Et tant qu’il n’y aura pas un certain nombre de moyens pour résoudre ça, cela restera assez compliqué pour nous. Cependant, on y travaille.
H : Je voudrais revenir sur la transition que j’évoquais tout à l’heure … On va partir d’une situation où on utilise App-V, MED-V pour aller progressivement vers Windows 8 et Hyper-V V3. Entre ces deux phases, que va-t-il se passer ?
BO : Pour moi la chose qui va arriver essentiellement, c’est une évolution de Virtual PC pour supporter Windows 7 et pour permettre le mode de fonctionnement dont je vous ait un petit peu parlé tout à l’heure, où l’on va avoir la notion en quelque sorte de bac à sable sécurisé dans une machine virtuelle. On va pouvoir dire que cette machine virtuelle, c’est une machine virtuelle sur laquelle j’ai mes applications d’entreprise et où je ne joue pas et puis j’ai une machine virtuelle à côté, qui est une machine virtuelle où je surfe sur internet, il peut éventuellement m’arriver des « bricoles » … D’une manière générale, Virtual PC embarquera, sur les versions entreprise de Windows 7, une partie de MED-V.
H : Donc ça c’est MED-V !
BO : Oui, tout à fait. En fait, c’est une fonctionnalité qui va reposer sur un couplage d’une partie de MED-V (il faudra toujours utiliser MED-V si l’on veut gérer en central ses machines virtuelles) et de Virtual PC. L’idée, c’est qu’au niveau Virtual PC, on ait une fonction de décoration des fenêtres qui montre de manière claire : là je suis dans un environnement dangereux, là je suis dans un environnement non dangereux et donc faire en sorte que, par exemple, dans ce cadre là je sois dans un contexte où je n’autorise pas le copier coller entre les deux, en considérant que cela peut être une façon de faire fuir des données de l’entreprise. D’une manière générale, les fenêtres d’une machine virtuelle Windows XP qui sera exécutée dans ce mode sous Windows 7 seront décorées comme les anciennes fenêtres Windows XP et pas comme les fenêtres natives Windows 7 afin que l’utilisateur puisse bien faire la différence, même si son expérience d’utilisation sera complètement transparente.
HL : Dispose-t-on de données de coûts qui soient liées à la distribution, à l’installation des applications sur les postes de travail, au fait de les patcher versus les scénarios que vous décrivez ?
BO : Pour l’instant je ne crois pas qu’on ait ces données. On a des données sur l’optimisation d’infrastructure où, en fait, on a une évolution du coût en termes de TCO qui est fonction du niveau de maturité de l’infrastructure de l’entreprise. Ces données ont été élaborées en partenariat avec le Gartner et avec IDC. En ce qui concerne la problématique que vous mentionnez, c’est un sujet sur lequel on travaille en ce moment et sur lequel on n’a pas encore de chiffres.
HL : Ce sera sans doute un argument clé qui permettra de convaincre les DSI
BO : Oui ; ceci étant, quand on parle à une DSI en expliquant qu’en utilisant simplement la virtualisation applicative, rien d’autre, il est capable de streamer ses applications, de les distribuer depuis un serveur central, en général ça fait mouche !
HL : Oui, mais cette capacité est subordonnée à la souscription de la Software Assurance !
BO : Je suis d’accord.
HL : Même si Microsoft présente MDOP comme étant un produit qui à connu un succès très rapide, malgré tout quand on compare le nombre de licences MDOP par rapport au parc corporate, on reste sur des chiffres relativement marginaux.
BO : C’est vrai, mais ceci étant, c’est particulièrement vrai en France et c’est nettement moins vrai ailleurs. Un des sujets où la France est particulièrement en retard, c’est sur la Software Assurance (SA). Il y a beaucoup de pays, en Allemagne, en Angleterre, aux USA où la situation n’est pas du tout la même. C’est un sujet sur lequel on se fait régulièrement « remonter les bretelles » en France. Mais manifestement il y a d’autre pays où la SA a été bien perçue en termes de valeur et où il y a une utilisation beaucoup plus massive de MDOP qu’en France. C’est un sujet sur lequel on doit incontestablement à travailler d’avantage.
HL : Est ce que c’est quelque chose qui va évoluer avec Windows 7 ?
BO : Vous voulez dire en termes de licence ? Je ne pense pas ; ceci étant je ne suis pas forcément le meilleur interlocuteur sur ce sujet. Si c’était partout difficile de vendre la SA, il pourrait y avoir des volontés … Mais si c’est en France que cela ne va pas bien par rapport à d’autre pays, en gros on dit à la France de mieux faire. Bien entendu, je schématise…
HL : En ce qui concerne les éditions de Windows 7, certaines fonctionnalités supposent de disposer de Vista Enterprise et donc de la SA, ces fonctionnalités seront-elles également exclusives de Windows 7 et incluses dans la SA ?
BO : Je ne sais absolument pas. Il faudra en discuter avec les personnes chez nous qui s’occupent vraiment des problématiques de licences Windows. Je suis d’accord avec vous sur le fait que ce soit important mais ce n’est pas un sujet simple.
En fait, quand on met en perspective tout ce que l’on vient de se dire, l’on n’est pas très loin d’un changement de business model si l’on pense un peu sérieusement à ce que cela veut dire de savoir consommer un logiciel à la demande. Derrière, le besoin naturel c’est de pouvoir facturer à la consommation. Dans le grand public, il est évident que cela sera probablement la première chose qui sera demandée. Il faut donc faire la transition depuis un business model fondé sur des licences à usage potentiellement perpétuel vers un modèle dans lequel on fonctionne plutôt par abonnement. On bien encore « j’achète one shot pour une durée limitée », ce qui est encore un business model totalement différent. Cette transition de business model est quelque chose qui n’est pas simple surtout quand il y a derrière des dizaines de milliards de dollars à la clé.
En même temps c’est intéressant parce que cela permet de réduire le taux de piratage en permettant aux gens de goûter un logiciel que, sinon, ils n’auraient pas imaginé utiliser. En fait, il y a beaucoup d’éléments positifs aussi mais il faut trouver la bonne façon de faire cette transition.
HL : Il y a un scénario dont on n’a pas parlé, celui du VDI (Virtual Desktop Infrastructure) également proposé par Citrix qui consiste à héberger des images systèmes de poste de travail sur des serveurs. Je pense à XenDesktop. Quel rôle voyez-vous jouer à cette architecture ?
BO : Je pense que cela peut satisfaire certains scénarios d’usage mais, qu’en fait, aujourd’hui c’est une solution très chère, simplement parce que, quand on regarde le nombre d’images virtuelles qui peuvent être supportées avec des performances raisonnables sur un seul serveur très musclé, on se rend compte que ce nombre est relativement limité. On va publier dans peu de temps un livre blanc sur ce sujet, document qui va permettre de « tailler » le nombre de machines virtuelles Vista ou Windows XP que l’on peut utiliser sur des serveurs avec, par exemple 16 processeurs, et beaucoup de mémoire et on se rend compte que le nombre de machines virtuelles est relativement limité. Ainsi, même en utilisant Citrix Xen Desktop pour réaliser le brokering de connexion, il faut un octoprocesseur avec 32 GO de mémoire avec 4 interfaces réseau pour supporter : 45 machines virtuelles XP (512 MO) ou 28 machines virtuelles Vista (1 GO) ; quand on a des dizaines et des dizaines de postes de travail à virtualiser, c’est quand même très coûteux.
La raison en est que la capacité de vrai partage de mémoire dans un cadre de machines virtuelles est quand même relativement limité et d’autre part le fait qu’utiliser une machine virtuelle ce n’est pas « gratuit » ; il faut aujourd’hui consommer pas mal de CPU pour les faire fonctionner, idem pour la mémoire et elles ne sont en général pas très performantes en termes d’entrées sorties pour les raisons qu’on a évoqué ensemble tout à l’heure. Toutes ces raisons militent en direction du fait que ce sont des scénarios qui sont relativement coûteux au sens où, si l’on a des dizaines de milliers de postes à virtualiser dans un tel contexte, il faudrait des milliers de serveurs. Et finalement le gain que l’on a pour passer d’un nombre de dizaines de milliers de postes de travail à plusieurs milliers de serveurs, on se rend compte que, sur le nombre de serveurs, on a encore une vraie problématique de déploiement à résoudre. Par ailleurs, il y a une autre raison qui me paraît assez substantielle qui est que la virtualisation et donc l’affichage à distance présente un certain nombre de contraintes. Parmi ces contraintes il y a, par exemple, le support d’un affichage graphique de bonne qualité. Je pense à l’utilisation du mode Aero en mode Terminal Services qui est l’une des fonctionnalités qui va arriver avec Windows Server 2008 R2.
HL : Faisant suite au rachat de Kidaro l’année dernière ….
BO : Exactement … On va avoir la possibilité d’avoir une interface graphique sur le serveur dont on va se servir des moyens de calcul pour ne transférer que la bitmap.
HL : Est-ce que c’est plus efficace que de transférer uniquement les données permettant de redessiner les éléments d’interface sur le poste de travail ?
BO : Quand on commence à avoir des choses complexes comme des ombrages, de la transparence, aujourd’hui c’est impossible, il faudrait rafraîchir en permanence. C’est difficile à faire et c’est la raison pour laquelle il y a cette volonté de pouvoir supporter soit du hardware partagé sur le serveur, soit d’utiliser intelligemment les ressources hardware présentes sur le poste de travail. Ce sont des choses qui seront disponibles avec Windows Server 2008 R2. Une autre limitation familière à tous les utilisateurs de Terminal Services, c’est la problématique de la redirection des entrées sorties, par exemple des ports USB : si je veux être capable sur une application en central de pouvoir utiliser, qui mon imprimante, qui mon scanner, qui ma clé USB, j’ai toujours des tas de problèmes. En effet, le déport de ports marche plus ou moins bien et nécessite à chaque fois de tester sérieusement. Ce n’est pas parce que j’ai une application « posée » sur un serveur et que je la virtualise que, pour autant, elle marche instantanément en redirection d’affichage. Ce sont des problèmes que l’on connait bien et que la plupart de nos clients ont déjà expérimenté.
Dans un usage typiquement de type « call center » où les applications sont toujours les mêmes, les scénarios restent identiques et dans un contexte où le taux de disponibilité est absolument clé, c’est un scénario où l’utilisation d’un environnement VDI fait tout à fait du sens. On a alors un usage du poste de travail de type « task worker » basé sur des tâches répétitives, sur l’utilisation de modèles de réponses prêtes à l’emploi … Dans cet environnement il faut être capable de changer rapidement une machine virtuelle par une autre afin de ne pas rester coincé par une machine sur laquelle on a un virus. Dans un tel contexte, VDI est tout à fait envisageable.
Par contre, dans un contexte plus « banal » où je suis « information worker », c’est-à-dire que j’utilise mon poste de travail pour des tâches de traitement relativement sophistiquées, un des problèmes typiques que nous adressent nos clients c’est « quid de la voix sur IP », « quid de la communication unifiée dans un modèle où tout est en central » ?
De même, si je suis un utilisateur important du graphique, si j’ai de gros besoins en termes de collaboration, de présence … ce sont des scénarios où, à mon sens, l’utilisation de ce type d’architecture n’est pas adaptée.
Par ailleurs, il faut également considérer que, dans l’immense majorité des entreprises, il y a une migration naturelle des postes de travail fixes vers des postes de travail portables et, sur ce type poste, si je suis en déplacement et que j’ai besoin de travailler, l’idée d’une connexion vers le Datacenter en mode VDI risque de ne pas me mener très loin car je n’aurai pas toujours accès au réseau.
HL : il y a un dernier scénario dont on n’a pas parlé, et pour cause, c’est celui du mode SaaS qui représente une alternative intéressante en réponse aux problématiques de déploiement applicatif
BO : C’est une des raisons pour laquelle il y a aussi des évolutions de Microsoft dans ce domaine.
Si j’essaye de me projeter dans cinq ans, dans un contexte Windows Azure, etc., la perspective générale consiste dans sorte de banalisation du fait que j’ai des applications qui sont natives, hébergées dans une machine virtuelle ou hébergées dans le « nuage ».
Si j’essaye de me projeter dans une vision Software + Services, j’ai des applications qui sont en local, d’autres qui sont dans le nuage, j’ai des données en local et des données dans le nuage et je ne fais pas la différence. Cependant, il est évident que si on veut faire en sorte que cela soit réalisé d’une manière qui soit acceptable pour l’utilisateur, il faut à la fois résoudre un certain nombre de problèmes qui sont loin d’être simples par rapport à des problématiques de type : où sont les données, sont elles confidentielles, est ce que j’ai envie de les mettre chez Microsoft, Google ou d’autres où est-ce que je considère que c’est un peu risqué et qu’il vaut mieux que je les aie chez moi ?
Est-ce qu’il ne faudra pas, si j’ai une application que j’utilise très souvent, que cette application vienne automatiquement sur ma machine, plutôt qu’être exécutée en permanence avec un temps de latence qui est celui que l’on connaît sur internet ? Idem pour les données : est-ce qu’il ne faudrait pas faire en sorte qu’en fonction du profil d’utilisation des données et des applications, automatiquement ces dernières soient répliquées automatiquement vers mon poste de travail où j’aurai le meilleur temps de latence ?
Mine de rien, ce temps de latence c’est quand même un sujet. Si j’ai mes données qui sont hébergées dans un Datacenter qui est à 12 000 km de chez moi, cela ne pose pas de problème si j’ai un petit volume de données, mais si je commence à avoir des « vraies » données, genre base de données, ou même un gros tableau Excel ou un gros fichier PowerPoint, je vais y passer un certain temps et moi, en tant qu’utilisateur, je ne vais pas être content.
C’est encore l’une des raisons qui militent en direction de Software + Services plutôt que Software as a Service. Si j’ai, comme cela s’est passé il n’y a pas très longtemps chez Salesforce.com ou chez Google, un gros problème, j’aimerai bien pouvoir continuer de travailler quand même. Or, ce qui leur est arrivé peut arriver à n’importe qui : on a vu ce qui s’est passé récemment avec la tempête.
Si un Datacenter s’était trouvé dans la région des landes, à mon avis il avait quelques soucis à se faire, ne serait ce que parce que il n’avait plus de courant ! La continuité de fonctionnement suppose une infrastructure dont tous les composants sont opérationnels : je peux avoir chez moi un PC qui tourne sur sa batterie, idem pour mon mobile mais si le DSLAM de mon fournisseur d’accès est indisponible…
HL : Vous parliez d’un environnement dans lequel tout est parfaitement intégré, dans lequel on ne fait pas de différence entre applications locales et applications distantes, ditto pour les données, etc … comment comptez vous vous y prendre pour parvenir à ce résultat ?
BO : Honnêtement c’est aujourd’hui un peu tôt pour en parler mais c’est clairement un sujet sur lequel on travaille. Il faut non seulement assurer une transparence de l’accès aux données mais aussi faire en sorte que les données soient répliquées de façon intelligente pour être là où il est le plus raisonnable qu’elles soient. Typiquement si j’ai une application locale qui accède à des données distantes, peut être serait-il intelligent de rapatrier les données en local si je peux. De même que si j’ai un usage vraiment épisodique de certaines applications, pourquoi ne pas les déporter à distance dans le nuage … C’est le genre de sujet sur lequel il y a encore beaucoup à faire. Si vous regardez ce que permet de faire Live Mesh par exemple, à terme l’objectif est de faire en sorte que Live Mesh soit présent dans toutes les applications vendues par Microsoft sans exception. C’est-à-dire qu’il sera nécessaire qu’il y ait la fonction de réplication, la fonction « peer to peer » que l’on trouve dans Live Mesh en standard. Notre direction est de faire en sorte qu’à travers Live Mesh qui sera intégré partout, pour tous les utilisateurs, l’accès aux données et aux applications soit extrêmement banal et qu’il ne soit plus nécessaire de se poser la question de leur emplacement.
HL : On est encore très loin de cette vision …
BO : Il y a encore beaucoup de choses à faire dans Live Mesh pour que cela soit possible et il faut rendre toutes les applications « Live Mesh » aware mais cela représente notre direction stratégique et nous venons juste de nous réorganiser pour intégrer Live Mesh dans l’équipe Windows et le tout est désormais chez Steven Sinofsky. La raison de cette réorganisation est de permettre cette évolution. L’objectif est de faire en sorte que le nuage soit vu comme une extension naturelle de son bureau et que l’utilisateur ne fasse pas la différence.
HL : N’est pas ce qui se passe dans le cas de MOS (Microsoft Online Services) où les données de messagerie ou de collaboration sont hébergées ?
BO : Le cadre est un petit peu différent : il y a une homogénéité parce que, dans la pratique, toute la partie données, stockage, application, au lieu d’être dans mon Datacenter, elle se trouve chez Microsoft.
Ça ne change pas vraiment l’architecture du système tel qu’il est aujourd’hui mis en œuvre. Par contre, avec Azure et notre approche « S + S », ce que l’on vise c’est un changement total de l’architecture. C’est vraiment une révolution complète en termes de façon d’appréhender les choses.
Il s’agit d’une inflexion stratégique qui émane de Ray Ozzie et qui n’existait pas du temps de Bill Gates qui était probablement plus consensuel. Ozzie est dans un mode où il laisse toute latitude aux groupes produits mais leur explique que la stratégie technique de Microsoft c’est ce que je viens d’énoncer et que cette stratégie n’est pas discutable : « vous avez un produit qui est ‘Live Mesh Aware’ ou, demain, vos produits n’existent plus »…
HL : A partir de quand s’appliquera cette politique ?
BO : Maintenant…
HL : Elle s’appliquera donc à Office 14
BO : C’est sans doute un peu tôt pour Office 14 car on est déjà très avancé dans la conception mais on peut imaginer qu’il y ait des évolutions d’Office Live Workspace qui aillent dans cette direction.
HL : Je voudrai terminer sur le partenariat entre Microsoft et Citrix
BO : Ce partenariat est comme beaucoup d’autres partenariats, c’est un partenariat dit de « coopétition ». Cela fait très longtemps que l’on est partenaires avec Citrix mais il y a aussi des sujets sur lesquels nous sommes en concurrence. Tout cela est très habituel dans le monde de l’informatique.
HL : L’annonce de l’hyperviseur poste client de Citrix va venir en concurrence avec les évolutions d’Hyper-V ?
BO : Ce n’est pas impossible, reste à voir ce qu’il y aura dans l’hyperviseur en question. L’élément important à prendre en compte c’est que pour toutes les raisons évoquées ci-dessus, nous considérons que l’hyperviseur est une fonction de base du système. Ensuite, la question sera de savoir s’il y aura de la place pour un grand nombre d’hyperviseurs sur le marché.
HL : Quelle est la réaction de vos clients quand vous leur présentez le panorama des solutions de virtualisation dont nous venons de parler ?
BO : D’une manière générale, je pense que toutes les entreprises voient dans les problématiques de déploiement, de gestion du poste de travail, une vraie calamité. Et, honnêtement, je pense que l’on a une vraie responsabilité dans la chose.
Pourquoi les gens ont-ils envie d’aller vers des clients Web ce qui, à bien des égards, constitue un contre-sens total ? Si l’on regarde aujourd’hui le niveau de productivité que l’on a quand on développe des applications Web, même si la donne change un petit peu avec Silverlight, quand on voit des Google Gears, cela représente, à mon sens, un non-sens absolu. Pas parce que le concept de persistance locale en mode déconnecté est mauvais mais tout simplement parce que l’on a un niveau de productivité dans le développement lamentable quand on programme en Javascript.
HL : Cela dépend du navigateur que vous utilisez …
BO : Cela ne dépend pas du navigateur, ce n’est pas un problème de performances. Je parle uniquement de la vitesse de développement de n’importe quel développeur qui travaille en Javascript. On ne va quand même pas revenir à des langages de script tout à fait antédiluviens comme Javascript…
Aujourd’hui, il faudrait au moins multiplier par dix la productivité des développeurs ; on ne va donc pas s’amuser à revenir à l’âge de pierre. Encore une fois, pour moi cette évolution est un non sens. Si l’on y réfléchit bien, le logiciel reste aujourd’hui un artisanat qu’il est absolument nécessaire de faire passer enfin à l’ère industrielle. Pour cela il est nécessaire de penser en matière de productivité des développeurs et certainement pas de revenir à des langages de ce genre. On dispose de la loi de Moore pour les processeurs ; il est temps que l’on puisse bénéficier d’une loi de Moore pour la productivité des développeurs…
Je ne parle pas des problématiques de temps d’exécution car ce n’est pas cela la question. La vraie question, c’est comment on améliore la productivité des développeurs et comment on fait en sorte de ne pas la faire régresser.
On l’a déjà fait régresser parce que finalement, quand on regarde sur des environnements mono-machines, ce que permettaient de faire, dans les années 90, des L4G ou des ateliers de génie logiciel, on avait une productivité qui était meilleure que celle qu’on a aujourd’hui quand on développe dans un environnement distribué en C# ou en Java. On a perdu en productivité, ce qui est quand même paradoxal même si la complexité des environnements a considérablement augmenté…
A mon sens, il faut repenser la productivité du développement logiciel et cela ne va certainement pas dans le sens de la massification de l’utilisation des langages de script d’assez bas niveau. Il faut « simplement » que l’informatique et le développement passent de l’artisanat à l’ère industrielle ; en bref, que l’informatique fasse enfin ce que l’industrie lourde a réalisé à la fin du 19ème siècle… Sa révolution…
· BranchCache est une des fonctionnalités de Windows Server 2008 R2 destinée à accélérer les temps d’accès aux documents et à réduire l’utilisation de la bande passante dans un scénario de réseau d’agences ou la connectivité est réduite.