Dossier Cloud Computing : comment le Paas promet de révolutionner l'informatique (2/3)

Après un tour d'horizon des différents modèles de cloud et des définitions du cloud, nous revenons dans cette seconde partie de notre dossier sur les offres Paas de VMware, Joyent et Salesforce.com. La dernière partie de notre dossier couvrira les offres de Microsoft (Azure), Google (App Engine) et Amazon (Elastic Beanstalk).

Mais où va donc VMware avec vFabric ?

En août 2009, VMware annonçait le rachat de SpringSource, société pilotant le développement du framework Java Spring. De quoi lui fournir un middleware Java complet ainsi que le framework Java le plus populaire au monde, le tout avec une vaste gamme d’outils de développements et de gestion de la performance applicative. Bref, de quoi affronter les grands frameworks applicatifs tels que Windows .Net de Microsoft, notamment. A tel point que nous nous interrogions alors : VMware s’imagine-t-il en Microsoft 2.0 ?

En avril dernier, l’éditeur a poussé la démarche un peu plus loin, en s’associant à Salesforce.com pour lancer la version bêta de VMForce, une plateforme en nuage visant à élargir le spectre des applications catapultables dans le nuage Salesforce. C’est donc sans trop de surprise que Paul Maritz, PDG de VMware, a profité de la grand messe annuelle de l’éditeur pour préciser les lignes de sa stratégie : dans la cale, la partie infrastructure, avec vCenter et vCloud; en haut, tout ce qui touche à l’utilisateur final et au SaaS; au milieu, le PaaS (Platform as a Service). VMware en est encore à packager son offre mais on connaît déjà les composants essentiels qui composeront l’offre PaaS de l’éditeur. On a aussi une certitude.

Dans un premier temps, elle devrait se positionner comme une plateforme de déploiement d’applications pour nuages privés, même si VMware devrait aussi jouer le rôle de marchand d’armes pour des opérateurs ou des hébergeurs souhaitant utiliser sa solution pour construire leur propre offre de Paas public.

vfabric

D’un point de vue programmatique, la plate-forme PaaS de VMware s’appuie sur Java et plus précisément sur le framework Spring. L’administration et la supervision de la plate-forme sont confiées à Hyperic, tandis que la partie middlware s’appuie sur vFabric. vFabric s’appuie sur un étage de gestion de base de données reposant sur GemFire, la solution distribuée de gestion de données rachetée avec Gemstone. Le bus de message interapplicatif est assuré par RabbitMQ le broker de messages libre hérité par VMware du rachat de SpringSource, tandis que la couche serveur d’applications Java est assurée par tcserver  (l’implémentation Tomcat de SpringSource).Enfin, l’étage de serveur web est confié à vFabric ERS, un package de serveur web basé sur Apache qui inclut aussi le support de langages tels que Perl et PHP.

Il est à noter que cette liste n’est sans doute pas définitive, VMware souhaitant rester ouvert à d’autres langages que Java. A l’été 2010, des rumeurs avaient ainsi circulé sur une possible acquisition par VMware d’EngineYard, un service de Paas basé sur Ruby on Rails, concurrent d’Heroku, depuis racheté par Salesforce.com. Si VMware dispose aujourd’hui de la plupart des éléments pour permettre à ses clients de mettre en oeuvre une plate-forme PaaS privée, l’éditeur reste pour le moins frileux quant à l’idée d’offrir vFabric sur son propre cloud en mode public.

Certes, VMware peut arguer du fait que plusieurs de ses partenaires (opérateurs, opérateurs de cloud, hébergeurs) devraient à terme proposer sa plate-forme de PaaS en mode public. Mais une telle organisation est sans doute moins séduisante que celle proposée par un Microsoft qui assume totalement l’exploitation de sa plate-forme et des garanties de services associées. Bref, si la position de marchand d’armes est sans doute suffisante dans l’IaaS, il se pourrait bien qu’elle devienne rapidement intenable dans le PaaS. Il faudra alors voir si VMware est prêt à s’attirer les foudres de ses partenaires en se lançant lui même sur ce marché…

Joyent : le petit cloud qui monte, qui monte…

Joyent a fait ses débuts dans le monde du cloud il y a cinq ans avec le lancement de sa plate-forme d’infrastructure-as-a-service basée sur un OS dérivé d’OpenSolaris et sur la technologie de conteneurs de Sun (les Solaris Containers sont l’équivalent des Jails de BSD ou des conteneurs virtuels de Virtuozzo, la plate-forme de virtualisation de Parallels).

Progressivement, Joyent a enrichi son offre de conteneurs pré-configurés baptisés Joyent Accelerators (et récemment renommés Smart Machines). Ces conteneurs incluent toute la logique nécessaire pour exécuter des applications web écrites en Java, Ruby on Rails, PHP, … Certains sont fournis en partenariat avec des éditeurs tiers comme Zeus (pour le load balancing), Riak (base de donnée distribuée dérivée de Dynamo). Plus récemment, Joyent a aussi enrichi sa plate-forme avec la capacité d’accueillir des VM Windows ou Linux. Ces dernières sont instanciées pour l’instant sur un noyau OS implémentant KVM.

Pour la petite histoire, il est peu probable qu’il s’agisse du noyau SmartOS dérivé d’OpenSolaris. Nous parions plutôt sur l’utilisation d’un noyau linux. Mais dans les mois à venir, Joyent espère achever le portage de KVM sur son propre OS (à l’instar du portage de KVM déjà réalisé pour FreeBSD) et offrir alors la possibilité de faire cohabiter machines virtuelles et conteneurs sur un même OS.

joyent

Un dernier élément de la pyramide Joyent est ce que la firme appelle Smartplatform, en fait son offre de PaaS spécifiquement optimisée pour exécuter des applications serveurs écrites en JavaScript. Cette offre s’appuie sur la technologie node.js qui permet de créer et d’exécuter des applications Javascript serveur (voir la vidéo ci-dessous). Pour cela, la firme a créé une Smartmachine optimisée pour l’éxécution de node.js et a créé un environnement de développement autour du système de versioning Git (l’ensemble est le fruit du rachat de Reasonably Smart, en janvier 2009).

Selon Joyent, sa technologie de Paas JavaScript présente des caractéristiques techniques uniques permettant de développer des applications web capables de faire face à des charges massives. Il est à noter que node.js est disponible en open source, mais que Joyent continue de présider aux évolutions de la technologie via son créateur, Ryan Dahl. 

Vidéo : joyent : un cloud Paas pour les applications Javascript

Au-delà des aspects infrastructure, la plate-forme de cloud de Joyent inclut un étage d’orchestration qui permet à un développeur d’applications de redimensionner à la volée l’architecture de son application tournant sur l’infrastructure de l'éditeur. Elle embarque aussi un étage d’administration et de supervision avancé. Ce dernier s’appuie sur les données collectées à tous les étages de la plate-forme par DTrace, la technologie de profilage et d'analyse dynamique de performance développée à l’origine par Sun et dont l’un des trois co-développeurs, Brian Cantrill, est aujourd’hui vice-président en charge de l’ingénierie chez Joyent. L’ensemble de la plate-forme, de l’OS aux « smartmachines » en passant par les composants d’infrastructure, est instrumenté avec la technologie DTrace.

Cet usage de Dtrace permet une supervision fine de l’ensemble des paramètres techniques d’un cloud Joyent et contribue, selon la firme, à un taux d’utilisation des ressources du cloud optimum. Sur la base de sa propre expérience avec JoyentCloud, Joyent estime ainsi qu’un cloud d’infrastructure Joyent est utilisé à environ 70% de son potentiel théorique contre 30 à 35 % pour les solutions concurrentes.

Transformation en cours

Pendant près de cinq ans, Joyent a bâti son succès sur son propre cloud baptisé JoyentCloud, qui serait aujourd’hui le troisième cloud d’infrastructure mondial derrière ceux d’Amazon et de Rackspace. La firme compterait ainsi plus de 25 000 clients dont plusieurs prestigieux tels que ABC/Disney, CNN, Gap, le Gilt Groupe, LinkedIn ou Yahoo.

La firme, qui s’est développée sur ses fonds propres et a atteint l’équilibre sans investissement extérieur, a finalement levé 15 M$ de fonds en 2009 auprès d’Intel Capital pour accélérer son développement et sa transformation. Car s’il a grandi en devenant fournisseur de services cloud, Joyent espère se développer en se transformant en éditeur de logiciels cloud. ll ne s’agit pas toutefois de renier le travail accompli ni de mettre un terme à l’offre JoyentCloud.

Comme l’expliquent les responsables de la firme que nous avons rencontrés en novembre 2010 à San Francisco, tout le monde peut se permettre de clamer qu’il dispose d’une plate-forme cloud, mais rares sont ceux qui peuvent faire la preuve opérationnelle que cette plate-forme fonctionne comme annoncé et tienne ses promesses. Avec près de cinq ans de disponibilité sur le marché de JoyentCloud, Joyent estime – à l’instar d’un Microsoft avec Azure - que sa plate-forme logicielle a fait ses preuves et entend continuer à l'utiliser comme creuset pour le développement de ses futures offres. L’offre de cloud public JoyentCloud devrait donc continuer à vivre sa vie en parallèle de l’offre de cloud privé prête à l’emploi, baptisée SmartDatacCenter.

Cette stratégie mimique un peu celle de Microsoft avec Azure d’un côté et les appliances Azure de l’autre, même si l’emphase est pour l’instant mise par le numéro un mondial du logiciel sur la déclinaison publique de son offre packagée et moins sur l’offre privée (pour le simple fait que cette dernière n’est toujours pas disponible). L’intérêt de la solution de Joyent n’a d’ailleurs pas échappé à certains et Dell a choisi dès le mois d’avril 2010 de faire de l’offre SmartDataCenter sa solution par défaut pour la constitution de cloud PaaS privés.

Rebaptisée Dell Cloud Solution for Web Applications, l’offre de Joyent est positionnée par le géant texan comme une solution clé en main de plate-forme privée pour l’exécution d’applications Java, Ruby, PHP ou Javascript et l’objectif du Texan est de la proposer aux grands comptes comme aux hébergeurs et aux opérateurs télécoms. Notons pour terminer qu’en Europe, Joyent met l’accent pour l’instant sur ses capacités en matière de cloud d’infrastructure. Une stratégie pas forcément stupide puisqu’elle permet à la firme de faire son trou sur le marché avec une offre éprouvée et que le pas à franchir pour mettre en œuvre les composants PaaS de l’offre sera ensuite très petit. Et sur un marché européen plus conservateur que le marché US, cela permet aussi de ne pas effrayer les clients potentiels en leur donnant l’impression que SmartDataCenter se limite à l’exécution d’applications JavaScript. 

En savoir plus : L’architecture de l’offre de Joyent (PDF)

Salesforce.com : la Suisse du PaaS.

De SalesForce.com, on connaissait déjà l’offre de PaaS Force.com, appuyée sur la base de données multitenant maison et sur un langage dérivé de Java, APEX. Mais 2010 aura été une année riche de nouveautés dans le domaine du PaaS chez l’éditeur californien. La firme a en effet annoncé en avril un partenariat avec VMware pour lancer VMforce, une solution de PaaS Java basée sur les technologies vFabric de la filiale d’EMC.

Concrètement, VMforce fournit à ses clients une plate-forme publique prête à l’emploi pour l'exécution d'applications Java. Ce nuage, supporte les objets Pojo (Plain Old Java Objects) et les JSP, de même que les Servlets Java, en s’appuyant sur le framework Spring. Le tout étant propulsé par la version SpringSource de Tomcat, tc Server. Comme l’indiquent Salesforce et VMware, « les développeurs peuvent traiter leur compte VMforce comme une simple instance locale Tomcat dotée d’une capacité incroyable de montée en puissance ». L’ensemble est encapsulé dans des machines virtuelles portées par une infrastructure virtualisée avec vSphere.

vmforce

Les applications peuvent s’appuyer sur les bases de données de Force.com (database.com) ainsi que sur les services proposés par cette plateforme. Pas de rupture, donc, pour les habitués de la plateforme Force.com, mais une ouverture conséquente : pour profiter des ressources du nuage de Salesforce, il ne sera bientôt plus obligatoire de se frotter à Apex, le langage propriétaire de Salesforce.

L’ouverture à Java, réclamée à cor et à cri par de nombreux clients SalesForce, est une façon pour la firme d’étendre son périmètre mais aussi d’accueillir plus d’applications dans son catalogue. VMforce est encore en « bêta » et à ce jour Salesforce.com n’a pas communiqué sur ce que seront les coûts de son offre Java.

Rachat d’Heroku : le pari de Ruby

Mais l’annonce la plus significative de l’année pour Salesforce.com dans le PaaS est sans aucun doute l’acquisition d’Heroku, dévoilée au mois de décembre pendant la conférence DreamForce 2010. Avec ce rachat, Salesforce.com se dote d'une plate-forme applicative moderne conçue spécifiquement pour l'exécution dans le cloud d'applications Ruby. La plate-forme d'Heroku héberge déjà plus de 100 000 applications Ruby et devrait à terme pouvoir exécuter d'autres technologies comme des applications Javascript serveur (à la Joyent) ou des applications PHP.

Avec le rachat d’Heroku, Salesforce.com accélère sa transformation en un spécialiste du PaaS. L’architecture d’Heroku, largement masquée aux développeurs, s’appuie sur un cloud d’infrastructure open source basé sur des serveurs x86 sous Debian Linux. Au niveau le plus bas de l’architecture d’Heroku figure une couche de base de données construite sur PostGresQL, associée à une couche de cache «in-Memory» motorisée par memcached. Au dessus vient se greffer la partie «serveur d’application», fournie par une infrastructure distribuée baptisée Dynogrid.

Chaque «Dyno» est un fait un conteneur motorisé par Debian sur lequel est instancié un interpréteur Ruby (MRI) et un serveur web, en l'occurrence le serveur "Thin" qui s’appuie sur trois librairies fondamentales (le parseur Mongrel, la librairie Event Machine - pour la gestion des entrées/sorties - et Rack -qui assure la liaison entre le serveur web et les frameworks Ruby comme Rails ou Sinatra). Les applications développées par les utilisateurs s'exécutent sur ces «dynos».

heroku

La distribution de la charge et des requêtes, l'une des clés du succès d'Heroku, s’effectue au travers d’une couche propriétaire développée par la société et baptisée erlang. Erlang assure la distribution des requêtes HTTP entrantes entre les différents «dynos» souscrit par l’utilisateur. Des dynos additionnels peuvent être instanciés à la volée par cette couche de distribution en cas d’augmentation brutale de la charge et peuvent être à l’inverse éteints lorsque la charge redevient normale.

Ruby aujourd'hui, Javascript serveur et PHP demain ?

Comme l’explique Byron Sebastian, le CEO d’Heroku, la plate-forme construite par la société se concentre sur l’exécution d’applications Ruby, mais n’est pas limitée à ce seul langage. D’autres runtimes pourraient très bien être proposés à terme sur la plate-forme d’Heroku. Sebastian a ainsi indiqué au MagIT qu’une implémentation bêta de node.js existe aujourd’hui chez l’éditeur pour l’exécution d’applications serveurs Javascript, à l’instar de ce que propose Joyent. L’approche «Dyno» d’Heroku ressemble d’ailleurs furieusement à celle des «smartmachines» de Joyent.

On peut ainsi imaginer à terme que la société propose des dynos capables d'interpréter d'autres langages tels que PHP. Il est à noter que Salesforce n’exclut pas non plus de supporter d’autres langages que Java au dessus de VMForce. Le support de Jruby pourrait ainsi être proposé à terme dans VMForce, laissant le choix aux utilisateurs de la plate-forme sur laquelle ils souhaitent faire tourner leur code Ruby.

A l’inverse, on pourrait très bien imaginer un Dyno faisant tourner le serveur d’application tcServer et le framework Spring (même si Salesforce et Heroku n’ont absolument pas mentionné cette possibilité dans les discussions que nous avons pu avoir avec les responsables des deux sociétés). Terminons en signalant qu’en l’état, la plate-forme d’Heroku s’appuie sur sa propre couche de base de données (à base de PostgreSQL) mais qu’il est aussi fort probable qu’une des premières intégrations entre la plate-forme de Salesforce et celle d’Heroku pourrait être la possibilité pour les développeurs de choisir entre cette couche et celle de Database.com , la base de données en nuage de Salesforce.  

Pour approfondir sur Virtualisation de serveurs