J’ai eu la chance d’aller à la première journée Cloud organisé par France Grilles et l’INRIA à l’ENS Lyon (voir le programme à l’adresse suivante: http://indico.in2p3.fr/conferenceOtherViews.py?view=standard&confId=4094). Je dis la première journée car il devrait suivre 4 nouvelles journées sur le cloud computing pendant l’année 2011: Virtualisation, Data, Programmation et Application. La journée était composée de plusieurs présentations et a fini par une table ronde. En voici mon résumé, bien entendu, ce résumé est orienté par mon axe de recherche la sécurité mais j’essaye de retranscrire la plupart des grandes idées qui sont ressorties.
Juste un petit rappel avant de commencer:
- un cloud privé est un cloud utilisé uniquement au sein d’une entreprise et donc où tous les utilisateurs sont au sein d’une même organisation. En général, l’opérateur du cloud et les utilisateurs de celui-ci sont donc tous au sein d’une même organisation sauf dans le cas de l’externalisation du cloud comme n’importe quels autres services IT ;
- un cloud public est un cloud utilisé par des utilisateurs de toutes origines et opérer par une société propre ;
- un cloud hybrid est un ensemble d’un cloud public et d’un cloud privé. Ce concept est souvent utilisé pour étendre un cloud privé lors de pics de demande en utilisant des ressources d’un cloud public. Cela permet d’absorber ces pics sans avoir à acheter du matériels qui sera que rarement utilisé.
Grilles VS Clouds
Tout d’abord, le premier discours revenait sur la différence entre une grille et un cloud qui n’est pas toujours évidente. Il faut voir que comme la grille le concept de cloud computing n’est pas nouveau. Comme souvent en informatique, des vieux concepts sont régulièrement remis sur le devant grâce aux différentes avancées technologiques (et leur faible coût). Le cloud computing a été introduit en 1961 sous le terme “Computing As A Utility”.
Mais tout d’abord, une définition de la grille: c’est une méthode permettant la mise en commun de ressources dans des domaines d’administration différentes (par exemple des universités de plusieurs pays). Le concept d’organisation virtuelle (VO) est donc essentiel. Finalement, la grille a un très fort héritage du HPC (High Performance Computing).
Au contraire, le cloud est une version “simple” d’un système distribué et ne comporte pas de mise en commun de ressources (sauf dans le cas de la fédération de plusieurs clouds). Il existe plusieurs types de clouds: IaaS (Infrastructure as a Service), PaaS (Platform as a Service) et SaaS (Software as a Service). L’un des principaux aspects des clouds est l’isolation des différents utilisateurs dans des containers et donc la possibilité pour plusieurs utilisateurs potentiellement concurrent de partager le même système distribué. Il faut voir que même si le concept a été introduit dans les années 60, il n’a été possible que récemment grâce à l’extension d’Internet. En plus de faciliter la vision d’un système distribué, le cloud permet également de faciliter l’informatique dite ubiquitaire. En effet, les clouds permettent d’accéder, stocker et synchroniser des données depuis à peu près n’importe où. Bien entendu, le cloud a également un intérêt pour les entreprises en facilitant la réduction des coûts. C’est un point essentiel car si la grille n’a pas plus pris dans le milieu industriel c’est du fait de l’absence de modèle économique pour ces systèmes. Hors, le modèle économique d’opérer et d’utiliser un cloud sont claires et très largement documenter (même si rien n’est parfait et que le cloud computing comporte également des désavantages). La communauté européenne a commandé un rapport sur le cloud computing et ces intérêts. Ce rapport est disponible à l’adresse suivante: http://cordis.europa.eu/fp7/ict/ssai/docs/cloud-report-final.pdf. Par exemple, SaaS permet de faciliter les coûts imputable aux cycles de vie des logiciels. Le cloud computing facilite la mise en place de nouveaux services comme le Data as a Service ou le Compoment as a Service. Il faut tout de même voir que les clouds actuels sont de grands eco-systèmes (MS, Google, Apple, etc) et comportent des risques de verouillages dans un eco-système dû à une absence d’interopabilité. Mais ces grandes infrastructures consomment énormément d’énergie. Il est donc essentiel de prendre en compte cette variable. Il faut voir que d’ici 25 ans les datacenteurs consommeront autant d’énergie que les humains aujourd’hui. Il y a donc un risque de concurrence entre la consommation électriques de ces immenses “fermes” informatiques et la consommation classique des sociétés.
Il existe plusieurs points à prendre en compte et qui ne sont pas encore réglés:
- les modèles de fautes
- la sécurité
- le modéle économique i.e. des applications ne coutant pas cher à l’opérateur et donc consommant peu de ressources du cloud
- SLA
- la prise en compte des aspects énergie
- la gestion des données
- la fédération de cloud (des grilles de clouds en quelque sorte): Sky Computing
- l’auto-configuration (self-*)
- l’ordonnancement
- des nouveaux modéles de programmation comme MapReduce
- l’interaction entre les lois des différents pays et les structures informatique
Il faut tout de même casser certains mythes classiques du cloud. Le vol de données est toujours plus souvent physique que dans le clouds. Mais, il existe un risque réel comme l’a montré le MIT en attaquant le principe essentiel du cloud: l’isolation par virtualisation et la prévision du placement dans Amazon EC2. Finalement, il n’est pas simple d’utiliser le cloud, il faut repenser ces modéles de programmation en ne prenant plus en compte uniquement la performance mais aussi essayer de réduire au maximum l’utilisation des ressources du cloud coûtant cher.
How virtualization changed the grid perspective ?
La virtualisation est la brique de base du cloud. Il est le concept sous jacent de tous les types de clouds. Le talk présenté essentiellement les travaux fait dans le cadre de HipCal financé par l’ANR (http://hipcal.lri.fr/wakka.php?wiki=PagePrincipale) qui a introduit Entropy. Entropy est un cluster wide context switch. Je vous invite à aller consulter leur page pour en apprendre plus.
Le projet StratusLab et la technologie cloud
StratusLab est un cloud privé composé d’une pile logiciel open-source. Ce projet est financé par la communauté européenne. Le but est de faciliter l’utilisation des clouds à des utilisateurs du monde scientifique. De part cette orientation, les utilisateurs ont le choix d’utiliser des services classiques de grilles comme des services de cloud. Dans le futur, les opérateurs du projet souhaitent pouvoir étendre leur cloud privé en cloud hybride en utilisant donc des ressources issues de clouds publics. StratusLab repose sur OpenNebula (http://www.opennebula.org) et supporte des interfaces standardisés (OCCI pour les ressources et CDMI pour les données). L’un des autres buts est de pouvoir mettre en avant un modèle économique proche de celui du cloud (Pay As You Go) au monde scientifique.
Sky Computing on FutureGrid and Grid’5000 with Nimbus
Nimbus est une pile logicielle opensource pour la construction d’IaaS. Elle est développé par le monde universitaire américain. Elle est donc une sorte de pendant à OpenNebula en Europe. Le but du talk était la mise en avant de la fédération de cloud réparti sur deux continents (Europe et Amérique du Nord). C’est un donc un système à très large échelle. Un des points originals de Nimbus est que comme Amazon EC2, il incorpore le concept de Spot Instances. C’est-à-dire l’enchére sur les ressources non utilisées du cloud pour limiter au maximum le coût d’une application n’ayant pas de contraintes temporelles. Afin de faciliter la configuration des VMs sur Nimbus, il existe un context broker qui va pousser la configuration suivant le type d’utilisation de la VM. Pour permettre la distribution d’images virtuelles sur ces skys, Nimbus dispose d’une fonctionnalité appellée LANTorrent qui est une version de torrent orienté pour les LAN. Il permet en 1min30 pour le transfert et 1min30 pour le boot de démarrer 168 machines virtuelles. Encore faut-il pouvoir raccorder les machines virtuelles se trouvant sur des clouds différents, pour cela, ViNe a été présenté. C’est un switch virtuel permettant de construire un réseau haute performance virtuel.
OpenNebula Cloud Case Studies for Research and Industry
Lors de cette journée, nous avons eu la chance de voir (ou revoir pour moi qu’il l’avait déjà vu lors de EuroPar 2010) le talk de Ignacio Llorente (DSA Research Group) qui est le fondateur de OpenNebula. OpenNebula est une pile logicielle entièrement opensource permettant la mise en place d’une infrastructure du type IaaS. Il est principalement issue de travaux qui ont eu lieu dans le cadre du projet FP7 européen Reservoir avec Oracle, IBM et SAP mais aussi de nombreuses équipes d’universitaires. Le but est de créer un logiciel qui s’adapte au besoin des opérateurs du cloud. Tous les composants sont facilement remplaçable grâce à une approche modulaire sous la forme d’interface. Bien entendu, comme les autres approches (voir le billet précédent sur OpenStack), il supporte les standarts qui sont en émergence (e.g. OCCI) ou les standarts defacto de l’industrie (API Amazon EC2). OpenNebula permet de mettre en place aussi bien un cloud public qu’un cloud privé ou un cloud hybride. Il est supporté par l’industrie (IBM, SAP, etc) mais aussi par des institutions (Europe via FP7). Il dispose désormais d’un support professionnel via la société C12G Labs. De plus, OpenNebula est actuellement en test au CERN pour la mise en place d’un cloud privé pour les physiciens (sûrement pour aider à l’utilisation des données issues du LHC). Il existe aussi des opérateurs industrielles l’utilisant en production comme China Mobile IT qui l’utilise pour son infrastructure interne. Dans le monde universitaire, en plus de StratusLab que j’ai déjà présenté, d’autres projets universitaires utilisent OpenNebula. BonFIRE a pour but la mise en place d’un testbed sur plusieurs sites géographiques afin de tester les services de l’internet du futur (Futur Internet). Il y a également 4Cast qui est une approche PaaS et qui est le pendant platform de OpenNebula (qui est de type IaaS et donc infrastructure). Les deux mots de conclusion du talk ont été que dans le futur les datacenters des entreprises seront tous des clouds hybrids i.e. une partie public utilisable par tous et une partie privée interne à une entreprise. Le second mot a été sur l’émergeance de cloud réparti géographiquement et des nouvelles fonctionnalités et challenges que cela va amener.
From XtreemOS Grids to Contrail Clouds
XtreemOS est un système d’exploitation distribué pour les grandes infrastructures de type grille alors que Contrail est le pendant pour les clouds. Ces grandes infrastructures peuvent donc être réparties dans plusieurs domaines d’administration mais sont également par définition dynamique. En effet, dans de telles infrastructures, il y a toujours un risque de pannes, de problèmes, d’operations de maintenance, d’ajouts de matériels, etc. XtreemOS est une approche OS à opposer avec les approches middlewares classiques sur les grilles. Il est simple à utiliser via l’utilisation d’interface UNIX classique i.e. POSIX mais aussi de l’interface de grille SaGa. Il a été conçu dés le début avec le concept de passage à l’échelle et de sûreté de fonctionnement (dependable system). XtreemOS peut être utilisé de trois manières différentes dans les clouds. Tout d’abord, XtreemOS peut utiliser les clouds pour étendre ses ressources de manière dynamique. Il peut aussi être utilisé pour faire de la fédération de cloud en utilisant XtreemOS pour la coopération des différentes infrastructures. Finalement, XtreemOS peut être utilisé comme un système d’exploitation à destination des clouds IaaS.
Dans ce dernier cas, XtreemOS ne voit plus le concept de jobs mais de machines virtuelles. XtreemFS (le système de fichiers de XtreemOS) peut être utilisé pour créer un cloud storage pour le stockage d’images virtuelles et des données des utilisateurs. La fédération de clouds est faciliter par la possibilité de gérer plusieurs domaines d’administration. De plus, l’utilisation d’organisations virtuelles permet de mettre en place plusieurs politique d’ordonnancement et de prendre en compte l’hétérogénité du matériel.
Contrail sera une pile logicielle opensource orientée coopération et partage dans des fédérations de clouds (privés et/ou publics). Le but est de voir cet ensemble comme un cloud homogéne du point de vue de l’utilisateur. Il sera donc possible de créer des contrats entre fournisseurs de clouds pour absorber les piques de consommation. Contrail permettra la création de structure IaaS et PaaS et prendra en compte la coopération entre ces deux types/niveaux de clouds. Une des idées intrinseques à Contrail est la mise en place de SLA. Que ce soit de type qualité de service (QoS) ou qualité de protection (QoP). Un exemple de qualité de protection est la prise en compte de la localité des données. Cela facilitera la sous location de ressources. Contrail est donc orienté sky computing et devrait permettre la migration à chaud d’un utilisateur d’un cloud vers un autre.
Des Grilles vertes aux nuages verts : vers des systèmes efficaces en énergie
Actuellement, 2,5% des dégagements de CO² est dû à l’informatique. Il est donc essentielle de réduire la consommation éléctrique de l’informatique et donc de ses dégagements de CO². L’une des solutions est de réduire la sous consommation des ressources informatiques. Pour cela, il y a 4 leviers:
- réduire le nombre de ressources ;
- ralentir les ressources ;
- optimisation des ressources et des logiciels ;
- coordination à grande échelle.
Il existe de plus en plus de travaux et de certifications orientés green computing: Green 500, Green Grid, SNIA, Green Touch, EEE. Des nouveaux brokers de ressources sont également développés pour prendre en compte ces nouveaux objectifs et donc balancer les performances et les consommations énergétiques comme ERIDIS. En effet, l’énergie est un nouveau contexte à prendre en compte. ERIDIS a été déployé sur Grid5000. Cela a permit de voir que 14% de la consommation éléctrique est perdue dû au temps non utilisé entre le début de la plage de la réservation d’une ressource et le début de son utilisation effective. Grâce à cette instrumentation, il a été possible de faire ressortir l’impact de la localisation d’un serveur dans un rack par rapport à sa consommation éléctrique. L’ensemble des résultats de cette expérimentation est disponible publiquement. Cela a permis la proposition et l’expérimentation de politique green sur Grid5000.
Un nouveau courant du green computing a lieu dans le cloud. Il va de pair avec l’utilisation d’energie verte et la facturation de l’énergie à l’utilisation. Cela donne lieu à des initiatives comme le Green Open Cloud qui doit permettre une consolidation pour réduire la consommation d’énergie. Le but est donc travailler sur le gain performance / énergie. Il est également resorti de ces études que la migration à chaud coûte cher en terme énergétique. Cela donne lieu à un french cloudware avec Bull.
PaaS Security
Le problème des architectures PaaS est le risque de faire tourner du code malicieux ou provoquant des fautes. Ce risque a un impact sur l’infrastructure même du cloud mais également sur les autres utilisateurs. Le talk était orienté vers la sécurité des JVMs et plusieurs programmes concurrences utilisant la même JVM. Le problème est donc multiple:
- l’isolation des programmes utilisant les même ressources (par exemple la même JVM) ;
- pouvoir compter efficacement l’utilisation des ressources par chaque utilisateur ;
- permettre à un programme de se finir de manière propre (pas possible en Java pour le moment).
Une isolation par container est possible en rassemblant des ensembles de thread d’un même utilisateur dans le dit containeur. Ceci est proposé par JSR 121 Isolation API. D’autres JVM que celle de Sun/Oracle permettent également une isolation plus ou moins forte. KaffeOS utilise des processus similaires à ceux des systèmes d’exploitations pour permettre une telle isolation mais amène un problème de communication entre ces threads/processus. I-JVM permet la facilitation de cette communication entre threads. JNode/JX est efficace mais c’est un OS propre basé sur Java et est donc difficile à utiliser pour une architecture de type PaaS.
Le comptage des ressources (ressource accounting) est possible via JVM Tooling Interface mais provoque un overhead car il modifie le byte code. JRes JRAF-2 permet une instrumentation dynamique du code et donc facilite la mise en place du comptage. MVM est un cluster de JVM et via JSR284 (Ressource Consumption Management API) permet la mise en place d’une telle fonctionnalité. Mais ce n’est pas sur que Sun/Oracle la rendent publique. KaffeOS se limite au décompte d’utilisation temps et mémoire et I-JVM est plus complet en prenant en compte le processueur, la mémoire, les threads, etc.
La fermeture propre d’un thread est impossible avec la JVM classique mais KaffeOS et MVM le prennent en compte. I-JVM est également capable de proposer cette fonctionnalité mais il demande de programmer proprement pour prendre en compte la fin d’un thread.
NetBeans propose des mécanismes de sécurité plus avancés mais il sont relativement limité. Les Servlets ne proposent pas grand chose sauf une authentification et une encryption des communications (SSL). MVM permet uniquement une isolation. OSGi permet une sécurité par ensemble (bundle) visible ou non. Mais OSGi a souffert de 25 failles de sécurité dont 8 dans la JVM. I-JVM régle ces problèmes.
En plus de la sécurité PaaS Java, il est également possible de la faire en .NET. Il existe des domaines d’applications permettant l’isolation, les Active Directory sont isolés. Mais il faut faire son comptage de ressource soi-même et il n’est pas possible de faire une fin de thread propre. De plus, il n’existe que peu/pas de recherche sous .NET.
Pour conclure, il n’existe que deux solutions avec chacun leurs défaults: MVM mais il y a un problème de surcoût et I-JVM mais il existe le problème de fin de thread.
Le cloud computing pour un opérateur de télécommunications
Le but des clouds pour les opérateurs est de réduire les coûts mais aussi de simplicité d’utilisation. Cette simplification permet de réduire le temps entre le début de développement et la mise en place du services pour le publique. Il permet aussi une bonne flexibilité et une prise en compte du passage à l’échelle. Finalement, il améliore la qualité de services et la disponibilité. En temps que fournisseurs de cloud, cela permet de virtualiser l’ensemble des ressources et de faciliter l’automatisation des infrastructures.
Mais il existe des risques qui ne sont pas encore pris en compte:
- SLA, automatisation, disponibilité, sûreté de fonctionnement
- des structures PaaS
- le stockage
- les aspects réseaux
- la sécurité et la privacy
- l’absence de standart, d’interopabilité et de portabilité
- des licenses logiciels adapté
- la prise en compte de la localisation géographiques des données et leur lieu de traitement
- le coût de la structure
- l’intégration d’un cloud dans les SI
Les clouds devraient permettre d’ouvrir de nouvelles perspectives:
- évolution des offres d’hebergement pour les entreprises
- évolution des offres pour le marché de masse
- évolution des systèmes d’information
- orienté internet du futur
Pour FT/Orange, il devrait émerger un large ensemble d’offre:
- vertical cloud: cloud dédié (eGov, Santé, etc)
- Personnal Cloud
- Mobile Cloud
- Community Cloud
- Open Cloud: comme SIROCO un IaaS OpenSource par Orange
- Federate cloud avec un nouveau rôle d’intermédiaire entre les différents clouds
- On Demande Virtual Private Cloud
- Full Network Virtualization
Deux exemples de clouds proposés par Orange:
- My Personal Storage Cloud qui est un stockage ubiquitaire
- Community Cloud qui est une grille de desktop se basant sur des réseaux communautaires. Le but est d’augmenter la taille du cloud en prenant des ressources en bord de réseaux, c’est-à-dire chez le client.
Stratégie Cloud Computing pour IBM
IBM propose déjà des clouds privés. Il vient de mettre en place un pour ING. Cela leur a permis de mettre en avant l’importance de l’intégration totale d’un cloud dans les systèmes d’information. En général, les chefs sont réticents à passer aux clouds alors que les développeurs sont extrêment intéressés. Mais il faut qu’en même voir, qu’un datacenter cloud coûte environ 500 millions de $ à construire. Actuellement, les clouds représentent 5% du CA de l’IT mais en 2015 il représentera 15%. Ce qui est à noter, c’est que les clouds seront l’un des seuls facteurs de croissances dans l’IT. Les clouds seront intégrés à tous les niveaux. Pour IBM, la R&D est essentielle dans le cloud aussi bien pour la sécurité que les service de gestion car pour le moment il n’existe rien dans ces domaines.
IBM propose un service de cloud: IBM CCMP. Cela leur a permis de mettre en avant l’importance du self service dans le cloud. IBM est actuellement entrain d’intégrer la mise en place de pattern (du genre LAMP) et d’autoconfiguration dans le cloud. Il devrait également proposer une version d’eclipse modifier permettant de créer sa propre infrastructure dans le cloud par une interface graphique simple du type glisser/déposer.
IBM veut proposer un cloud par type de besoin comme: analytics, collaboration, développement & tests, desktop, stockage, progiciels. Un des exemples est la mise en place de cloud contenant des bureaux graphique pour les développeurs. Cela permet de ne plus rien avoir sur le poste client et tout dans le cloud ce qui peut être une bonne chose dans le cas de l’outsourcing.
Chez IBM, les clouds sont déjà utilisés en interne et dans le futur pour le publique. Mais la crainte numéro 1 actuelle est la sécurité et tout particulièrement la sécurité de la virtualisation. Pour cela, IBM propose IBM Virtual Server Security pour VMWare qui contient un IPS, un firewall, la détection de rootkit, etc. Mais pour IBM, le cloud peut également aider la sécurité des systèmes d’information en mettant dans le cloud des logiciels de sécurité.
IBM va proposer des clouds communautaires comme pour l’administration américaine qui par décret s’oriente vers le cloud. Il y a également l’état de New York qui propose un cloud pour les collectivités locales permettant la gestion de l’eau, de la santé et d’autres services. Il pourrait également émerger des clouds propres pour la santé mais aussi pour la finance et les banques. Actuellement, IBM a un cloud avec 3000 utilisateurs et un taux d’utilisation de 90% ce qui est à comparer avec les 15% classiques. Le cloud permet donc effectivement une bonne consolidation.
Les clouds vont permettre la mise en place du concept de Everything as a Service mais aussi la composition de ces services. Mais, toujours d’un point de vue sécurité, il faut que l’ensemble du matériel de l’infrastructure puisse permettre la prise en compte de plusieurs utilisateurs potentiellement concurrents.
IBM travaille sur un projet nommé CSP² pour Cloud Service Provider dont le but est de pouvoir gérer une structure de cloud à très large échelle:
- 1 000 000 de machines virtuelles
- quelques dizaines de milliers de nouvelles machines virtuelles toutes les heures
- un temps de déploiement inférieur à 1 minute
- 99,999% de SLA
- un placement des machines virtuelles intelligent basé sur l’historique et des régles statiques
- des machines virtuelles de gestion des ressources
Conclusion
La conclusion de la journée est que les clouds sont un nouveau secteur émergeant et très interessant que ce soit d’un point de vue utilisation que recherche. Mais qu’il reste encore des grands obstacles à gérer comme la sécurité pour pouvoir une véritable émergeance du cloud dans l’ensemble des systèmes d’informations.