OpenStack, la technologie qui aimerait standardiser le cloud

18 mars 2014 à 10h35
0
Logiciel d'infrastucture dont on entend beaucoup parler, OpenStack à l'ambition de transformer un datacenter virtualisé en une offre de cloud opérationnelle. Comme il s'agit d'un projet Open Source, au même titre que Linux, beaucoup voient en lui un système qui pourrait se répandre rapidement et, de fait, imposer un standard dans le cloud, permettre l'interopérabilité. Mais c'est encore loin d'être le cas. Voici pourquoi.

07231232-photo-openstack.jpg

OpenStack, qu'est-ce que c'est ?

008C000003382718-photo-openstack.jpg
OpenStack est une pile logicielle qui contrôle le fonctionnement d'un cloud. Pour ce faire, elle s'installe au-dessus de la couche de virtualisation des serveurs. En principe, lorsqu'un informaticien souhaite déployer un cloud dans un datacenter vierge, il commence par installer vSphere de VMWare, Windows Server de Microsoft, Enterprise Virtualization de Red Hat ou l'une des distributions Linux Server de Canonical (Ubuntu) ou de Novell (Suse) pour exécuter des machines virtuelles. Et c'est ensuite qu'il a besoin d'un logiciel comme OpenStack pour contrôler et définir quelles machines virtuelles seront disponibles pour quelles fonctions, avec quelles caractéristiques, quelles configurations réseau, quel OS, quel stockage, etc.

Du coup, lorsqu'il sera question d'exécuter dans le cloud un ERP, par exemple, il suffira de définir dans OpenStack que le logiciel a besoin de telles ressources et qu'il est accessible à tels utilisateurs. OpenStack s'occupera alors de tout mettre en place et lancera autant d'instances d'ERP que nécessaire suivant la charge de travail, quitte à relancer tout seul de nouvelles en cas de plantage.

0208000007237946-photo-anatomie-de-l-openstack.jpg

Projet OpenSource, au même titre que Linux, OpenStack s'installe sur une machine physique du centre de données par le biais d'une distribution. Il en existe près d'une vingtaine. Red Hat propose Enterprise Linux OpenStack Platform. Canonical et Novell livrent plutôt OpenStack comme un paquet optionnel de leur Linux. Il s'installe alors après la couche de virtualisation maison ou à part, pour compléter tout autre système de virtualisation concurrent. Pour les plus aguerris, il est également possible d'installer le logiciel OpenStack à la main, par-dessus un serveur Linux ou Windows.

L'ambition : devenir le Linux du cloud

07237562-photo-datacenter.jpg
OpenStack n'est pas le seul système de contrôle pour le cloud. Sont également disponibles vCloud Suite de VMware, System Center de Microsoft, Cloud Service Automation de HP, SmartCloud Orchestrator d'IBM, Cloud Lifecycle Management de BMC, ou encore Automated Suite for Clouds de Cisco, pour ne citer que les plus célèbres. Du fait de la jeunesse du phénomène cloud, tous ces logiciels sont assez récents, deux, trois ans tout au plus. Tous sont plus ou moins compatibles avec n'importe quelle couche de virtualisation sous-jacente, que ce soit VMWare (hyperviseur ESX), Microsoft (Hyper-V) ou Linux (KVM). En revanche, le fonctionnement de tous ces logiciels diffère, avec des fichiers qui s'installent dans des endroits particuliers, des procédures propres pour faire fonctionner et surveiller le cloud et un jeu de commandes exclusives (l'API) pour s'interfacer tant avec les périphériques physiques qu'avec des logiciels tiers. Dans ce contexte, OpenStack revendique le qualificatif de « standard », là où toutes les autres solutions sont propriétaires. Cela signifie trois choses :

1. Ne plus être lié à un fournisseur

Une entreprise qui déploie OpenStack pourra se faire aider par n'importe quel prestataire de service, comme c'est le cas avec Linux. Alors qu'en revanche, si elle déploie HP Cloud Service Automation, par exemple, elle ne pourra faire appel qu'aux partenaires de HP. Dans la pratique, la situation est pour l'heure, quelque peu différente : il y a d'un côté, les prestataires qui sont déjà certifiés pour une solution propriétaire et de l'autre, ceux qui se forment encore à OpenStack.

2. Espérer avoir le système le plus répandu

Comme OpenStack est Open Source, c'est-à-dire installable gratuitement pour peu que l'on soit suffisamment chevronné (les logiciels propriétaires sont payants mais s'accompagnent d'une prestation de service), il y a de grandes chances que le logiciel se répande autant chez les hébergeurs que l'a fait Linux. Tous ses concurrents seraient alors cantonnés à quelques datacenters privés, privilégiés par des entreprises qui préfèrent rester clientes chez Microsoft, HP, VMware et consort. Dans ce cas, OpenStack deviendrait un standard de fait. Attention : ce n'est pas encore le cas. Pour l'heure, les hébergeurs tâtonnent toujours entre des solutions propriétaires, du fait-maison et parfois un peu d'OpenStack.

3. Pour profiter d'un écosystème d'applications

L'intérêt d'établir un standard dans le cloud est évident. Il permet à ceux qui veulent offrir des services en ligne (applications SaaS, plateformes d'exécution PaaS, voire pool de machines virtuelles IaaS configuré dans un but précis, comme le kit d'une boutique e-commerce par exemple) de définir une bonne fois pour toutes le schéma, ou « template », des machines virtuelles nécessaires (quelles machines, sur quel réseau, avec quelles images disques, etc.) et de télécharger ce schéma chez n'importe quel hébergeur compatible.

Cette standardisation intéressera également un éditeur de logiciel SaaS qui veut diffuser son application sur plusieurs clouds, tantôt pour qu'elle soit intégrée à différents portails (et même à des portails d'entreprises, pourquoi pas), tantôt pour toucher des clients européens qui ne veulent pas s'abonner à un cloud public américain comme Amazon EC2, Microsoft Azure ou Google. Il est à noter que les développeurs d'OpenStack l'ont conçu pour qu'il soit compatible avec le format de templates utilisé par Amazon. Il existe donc bien un intérêt à concevoir dès à présent, des templates dans le format d'OpenStack.

00EA000007238256-photo-interconnexion-de-cloud.jpg

OpenStack, comment ça marche ?

OpenStack est un ensemble de neuf modules écrits en Python. Ils sont chacun dédiés à une fonction précise (gestion des machines virtuelles, gestion du réseau, gestion du stockage, gestion des utilisateurs, supervision de l'ensemble...) et ont chacun une base de données SQL attitrée dans laquelle ils écrivent et lisent les informations qui leur permettent de travailler. Ils communiquent entre eux et avec l'extérieur au moyen d'un jeu de commandes propres (l'API) et selon le protocole MQ.

Toutes les autres technologies sont laissées à l'appréciation de l'exploitant du cloud. Les modules OpenStack peuvent être exécutés par un système Linux ou Windows, les machines virtuelles gérées fonctionneront par-dessus un hyperviseur VMWare, Microsoft (Hyper-V), Linux (KVM) ou autre (hyperviseur Xen, partitions LPAR, etc.), engin la base de données de chaque module peut-être de n'importe quel marque. Les développeurs d'OpenStack utilisent MySQL, mais le système fonctionne aussi bien avec PostgreSQL, Oracle ou SQL Server de Microsoft. Quant au protocole de communication MQ, il peut être lancé par les services RabbitMQ (recommandé), ou Apache Qpid ou encore Zero MQ.

Selon l'usage que l'on veut faire d'OpenStack, il n'est pas nécessaire d'installer tous les modules. Chaque module dispose d'un nom de code auquel les documentations font référence. Revue de détail :

01F4000007238476-photo-openstack-comment-a-marche.jpg


Dashboard : l'interface graphique

07239390-photo-openstack-horizon.jpg
Le module Dashboard, dit « Horizon » est l'application web qui permet à l'utilisateur d'interagir avec les services OpenStack et qui sert à les surveiller. On utilise typiquement le Dashboard pour lancer des machines virtuelles, ou un groupe de machines virtuelles, attribuer des adresses IP ou encore contrôler les accès. Le Dashboard peut recevoir des extensions pour ajouter des onglets à son interface, par exemple pour ajouter un système de facturation. On peut remplacer le Dashboard par n'importe quelle interface graphique web déjà écrite pour piloter le cloud EC2 d'Amazon. Fonctionnent Euca2ools (interface en lignes de commande), Hybridfox (plug-in dans Firefox), boto (interface pour envoyer des commandes en Python ou connecter des interfaces écrites en Python), fog (idem mais en Ruby) et PHP-opencloud (idem mais en PHP).


Orchestration : pour organiser le cloud en templates

07239388-photo-openstack-heat.jpg
Le module Orchestration, dit « Heat », tient à jour des groupes de machines virtuelles qui doivent fonctionner ensemble, ou templates. Lorsque l'utilisateur veut par exemple lancer plusieurs instances d'un site e-commerce, le module Orchestration indiquera au reste d'OpenStack qu'il faut lancer tel serveur web, tel serveur d'applications et tel serveur de base de données. Il y a la possibilité d'indiquer, via le protocole REST (c'est à dire via le web) des machines virtuelles qui sont hébergées dans un cloud compatible. Typiquement, dans un autre cloud OpenStack ou dans le cloud EC2 d'Amazon.


Compute : pour lancer les machines virtuelles

07239394-photo-openstack-nova.jpg
Le module Compute, dit « Nova », met en route et éteint des machines virtuelles quel que soit leur format (VMware, Hyper-V, KVM, Xen, etc.). Il peut d'ailleurs fonctionner avec plusieurs hyperviseurs en même temps, ce qui permet d'avoir un cloud OpenStack compatible avec différentes technologies de virtualisations incompatibles entre elles. Compute peut également envoyer des messages aux machines virtuelles, typiquement l'identifiant et le mot de passe qui leur permet de démarrer jusqu'au bout.



Object Storage et Block Storage : dévolus au stockage

07239384-photo-openstack-cinder.jpg
En matière de stockage, OpenStack dispose de deux modules. Soit il gère des images disque standard (c'est le mode Block, traité par le module « Cinder »), soit il gère les volumes de données au format S3, d'Amazon (c'est mode objet, traité par le module « Swift »). Par ailleurs, il peut y avoir du stockage dans la VM elle-même, mais ce contenu disparaît à l'extinction de la VM.

En mode Block, le module Cinder se base sur un pilote de disque virtuel, du genre iSCSI, pour associer une image disque à une machine virtuelle. Cette image subsiste tant qu'on ne l'efface pas. De plus, Cinder fonctionne un peu comme le RAID ce qui lui permet d'aller lire et écrire sur un autre disque si celui d'origine tombe en panne.

En mode Objet, l'espace de stockage est partagé entre plusieurs machines virtuelles et elles y accèdent avec des commandes REST. A noter que le mode objet revient à un accès en HTTP. De même, ce qui est physiquement stocké peut l'être sur n'importe quel système de fichier. En pratique, on ne peut pas copier un volume Objet d'un cloud à l'autre. Il faut copier les fichiers. Les volumes de données objets compatibles sont S3, GridFS, Rados Block Device et n'importe quel système de fichiers local.


Image : pour tenir à jour les images disque

07239386-photo-openstack-glance.jpg
Le module Image, dit « Glance » référence l'emplacement de toutes les images disques par le biais d'un chemin d'accès dans Block Storage ou Object Storage. Glance définit également si une image disque est censée accompagner une machine virtuelle en particulier (les données d'un serveur par exemple) ou fait figure de disque générique pour démarrer un serveur en particluier (typiquement avec une copie de Windows ou de Linux dessus). Via REST, il est possible de demander à Glance de copier une image disque d'un cloud OpenStack à l'autre.


Networking : pour établir les plages d'adresses IP

07239396-photo-openstack-neuton.jpg
Le module Networking, dit « Neutron » (et initialement « Quantum ») configure le réseau selon différents schémas. Il peut attribuer des adresses IP fixes, définir un serveur DHCP qui en attribuera dynamiquement aux machines virtuelles, faire office d'équilibreur de charge ou encore mettre sur un même réseau privé des machines virtuelles qui sont hébergées sur des clouds physiquement séparés. Il accepte la connexion de services supplémentaires par plug-in, par exemple pour doter le réseau d'un parefeu qui détecte les attaques.


Identity : pour référencer les utilisateurs

07239392-photo-openstack-keystone.jpg
Le module Identity, dit « Keystone » tient à jour la liste des utilisateurs en leur faisant correspondre les services auxquels ils ont accès. Ces services peuvent être propres à OpenStack (par exemple pour paramétrer le réseau) ou des templates en particulier (par exemple pour les utilisateurs abonnés à une application SaaS). Keystone peut s'interfacer avec un annuaire d'entreprise, de type LDAP ou Active Directory, et ainsi paramétrer automatiquement les utilisateurs.



Telemetry : pour savoir tout ce qu'il se passe

07239382-photo-openstack-ceilometer.jpg
Le module Telemetry, dit « Ceilometer » récupère tous les messages issus de tous les fichiers log du cloud et les enregistre comme des métriques dans sa base de données. Ces métriques doivent, à terme, servir aux services de facturation, en particulier pour évaluer le prix qu'un utilisateur doit payer au regard de sa consommation du cloud. Dernier module à avoir fait son apparition, Ceilometer ne dispose pas encore de beaucoup de plug-ins qui en tiennent compte.

OpenStack, quelles sont les limites ?

00AF000007239622-photo-herv-lema-tre-red-hat.jpg
Le projet OpenStack tend à imposer un standard technique dans le cloud, mais attention aux fausses idées que suggère ce terme de standard ! En l'état, OpenStack ne rend pas les offres de clouds interchangeables. Pas question pour l'entreprise de migrer son patrimoine numérique entre deux hébergeurs compatibles OpenStack comme on change d'opérateur mobile sans perdre son numéro de téléphone, ou comme on change de banque en faisant un virement. « Ne vous attendez pas à ce que nous donnions à nos clients les clés pour partir à la concurrence », lance Hervé Lemaître, directeur avant-vente chez Red Hat. Les machines virtuelles au format Red Hat (KVM) qui sont exécutées dans un centre de données ne fonctionneront pas dans un autre qui utilise le format VMWare (ESX), et encore moins dans le cloud public d'Amazon qui dispose de son propre format. Le fichier client qui est sauvegardé par un ERP en ligne chez un hébergeur local ne sera pas non plus récupérable par un autre ERP en SaaS hébergé dans un cloud public. Et le fait que tout le monde se dise OpenStack n'y changera rien.

Le standard d'OpenStack ne concerne que les templates de machines virtuelles, c'est-à-dire le format de fichiers qui définit un pool de machines virtuelles (leur nombre, leurs différents types, leurs images disques, leur interaction en réseau, etc.). Ce template va servir à l'exploitant d'un cloud, pour mettre en ligne, par exemple, une application SaaS, après avoir importé les images disques que lui a fourni l'éditeur de cette application et après les avoir converties dans le format de machines virtuelles qu'il utilise. Le standard OpenStack aide les prestataires à mieux collaborer, il n'est pas là pour permettre aux utilisateurs de changer de prestataire.

01C2000007239496-photo-dsi-datacenter.jpg


Une solution à l'interopérabilité

Ce qu'OpenStack rend en revanche possible pour l'utilisateur, c'est d'exécuter ou de surveiller des machines virtuelles stockées dans une offre de cloud à partir de machines virtuelles exécutées depuis une autre offre de cloud. Cette fonction est censée faciliter l'intégration de l'informatique lorsqu'une entreprise rachète un concurrent qui n'est pas abonné au même prestataire par exemple. Elle devrait aussi permettre, au fil du temps, de compléter les ressources cloud d'un prestataire avec celles d'un autre prestataire, typiquement moins cher. Mais, encore une fois, uniquement si toutes les offres de clouds concernées sont OpenStack.

L'interopérabilité entre plusieurs clouds, pour les faire fonctionner comme s'ils n'étaient tous qu'un seul centre de données, n'est pas propre à OpenStack. VMware et Microsoft la proposent aussi entre des clouds basés sur leurs solutions. Pour Pauline Maillard, chef produit Windows Server chez Microsoft, c'est le principe du cloud hybride, très demandé ces jours-ci par les DSI. « Nous devons tous offrir aux entreprises la possibilité de basculer simplement le surplus de calcul de leur salle informatique vers une offre de cloud externe, qui doit donc être compatible avec celle de l'entreprise », indique-t-elle. Problème, si les datacenters des entreprises sont déjà équipés en VMware ou Microsoft pour la virtualisation, aucun ne tourne encore avec OpenStack.

OpenStack doit encore convaincre le marché

OpenStack est un projet encore très jeune. Initié en 2010 par l'hébergeur américain Rackspace lors d'une collaboration avec des ingénieurs de la Nasa sur la mise au point d'un cloud, OpenStack a fait son entrée entre 2011 et 2012 dans différentes distributions Linux sous la forme d'un logiciel en version beta et n'est vraiment utilisable que depuis juillet 2013. Quelques précurseurs, des grands acteurs du numérique pour la plupart, ont entrepris d'utiliser OpenStack pour faire fonctionner des portions de leurs offres de cloud. En France, c'est le cas de l'hébergeur Numergy et du centre européen de recherche CERN. Aux USA, c'est le cas de Paypal, de Yahoo et d'AT&T, mais aussi du cloud public de HP, en plus bien évidemment de la Nasa et du cloud public de Rackspace.

A l'international, Sony utilise OpenStack pour motoriser le fonctionnement en ligne de plusieurs jeux Playstation 4, MercadoLibre s'en sert pour les instances cloud de plusieurs services d'e-commerce et Cisco l'a mis en œuvre derrière son service WebEX. OpenStack sert aussi à contrôler les services en ligne « Business MarketPlace » de Deutche Telekom, ainsi que les machines virtuelles derrière le site Wikimedia Labs. Enfin, tout dernièrement, Alcatel-Lucent a annoncé que sa soluton CloudBand, qui vise à remplacer des équipements réseaux par des serveurs virtuels, sera basée sur OpenStack (au-dessus du kit de Red Hat).

01C2000007239808-photo-sony-s-est-associ-rackspace-pour-solidifier-l-architecture-de-son-service-de-cloud-gaming-playstation-now.jpg


Les fournisseurs investissent surtout.. de la sympathie

Il y a aussi en engouement de façade, avec la plupart des fournisseurs d'infrastructure qui ont déjà annoncé prendre part au projet. En l'occurrence, il s'agit pour chacun de ces éditeurs et de ces constructeurs de s'assurer que leurs produits soient bien pris en charge par OpenStack. Leur implication dans le projet varie cependant du tout au tout. Brocade a conçu un pilote pour que son contrôleur de baies Fiber Channel soit exploité par le module de stockage Cinder d'OpenStack.

0082000007239836-photo-pat-gelsinger-pdg-de-vmware.jpg
Oracle, en revanche, n'a aucun produit compatible OpenStack à son catalogue, mais il vient de se féliciter de faire preuve de support moral. Plus pragmatique, Pat Gelsinger, la patron de VMware, a déclaré : « adhérer à OpenStack, c'est d'abord pour nous l'opportunité de bénéficier des efforts de R&D d'une communauté de développeurs que nous ne salarions pas. »

Bref, pour l'instant, OpenStack c'est surtout de gentilles intentions et des essais en laboratoires. Il est trop tôt pour savoir si le projet deviendra aussi incontournable que ses développeurs le souhaitent.

Une solution qui tarde à décoller

En trois ans et demi d'existence, OpenStack a surtout obtenu un succès marketing. Parmi le gros des hébergeurs et des entreprises susceptibles de transformer leur datacenter en cloud, peu ont déployé la solution. Jusqu'ici, les utilisateurs préfèrent encore contrôler leur cloud à la main ou via des kits propriétaires. « La raison est simple : les distributions OpenStack ne sont pas des solutions de cloud clés en mains. Elles donnent des ingrédients essentiels pour en démarrer la construction, mais l'exploitant doit toujours tricoter lui-même tout un tas de couches supplémentaires, parmi lesquelles la gestion des configurations, des mises à jour, de la haute disponibilité, de la surveillance, de la sécurité, etc. », explique Subbu Allamaraju, l'ingénieur en chef d'eBay qui a eu en charge la construction du cloud de Paypal à partir d'OpenStack.

01C2000007239870-photo-complexit-de-mise-en-oeuvre-du-cloud-openstack.jpg


En clair, les kits propriétaires restent plus simples à mettre en œuvre. D'ailleurs, Red Hat, complète lui-même sa distribution OpenStack d'un kit supplémentaire, CloudForms, pour simplifier le contrôle du cloud. Paradoxalement, CloudForms peut très bien fonctionner directement au-dessus d'une couche de virtualisation, typiquement par-dessus Red Hat Enterprise Virtualization, c'est-à-dire sans une once d'OpenStack. De même, les outils de HP peuvent aussi fonctionner sur une distribution OpenStack, si l'utilisateur le désire.

En somme, OpenStack n'est finalement qu'une option, une couche de difficulté supplémentaire et donc de coût à un moment ou l'autre. Mais elle vaudrait la peine pour celui souhaite adhérer à un standard, même s'il n'existe pas encore.

L'incertitude du développement Open Source

Alessandro Perilli, analyste chez Gartner identifie l'inertie de la communauté de développeurs OpenStack comme un problème pour les hébergeurs. Selon lui, si un prestataire souhaite créer une offre de cloud public IaaS concurrente de celles proposées par Amazon (EC2), Microsoft (Azure) ou Google, il doit s'attendre à dégainer de nouvelles fonctions régulièrement pour rester dans la course. « Et il se retrouvera tôt ou tard devant le dilemme de soit attendre que la communauté OpenStack définisse et implémente une nouvelle fonction, soit implémenter rapidement lui-même la fonction pour rester dans la course, au prix de se voir exclu de la communauté OpenStack », indique l'analyste.

01C2000007240764-photo-beaucoup-de-concurrence-autour-d-openstack.jpg


Il pointe en particulier la couche réseau d'OpenStack, appelée Neutron, qui ne cesse de changer et que certains utilisateurs ont remplacée par des technologies alternatives comme NSX, Nuage, OpenContrail ou encore Midonet. Par ailleurs, les projets Open Source connaissent souvent des « forks », c'est-à-dire des évolutions inattendues dans plusieurs directions parallèles. Il est impossible de dire aujourd'hui si le marché adoptera bien OpenStack ou s'orientera vers d'autres projets Open Source du même genre, comme CloudStack d'Apache, Cloud Foundry de VMware, oVirt de Red Hat, Nimbus, ou encore Synnefo.

L'idée d'un standard OpenStack reste néanmoins séduisante. Mais entre complexité de mise en œuvre et doutes sur l'avenir, elle bute encore sur la réalité du marché.
Haut de page