OpenStack, qu'est-ce que c'est ?
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.
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
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.
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 :
Dashboard : l'interface graphique
Orchestration : pour organiser le cloud en templates
Compute : pour lancer les machines virtuelles
Object Storage et Block Storage : dévolus au stockage
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
Networking : pour établir les plages d'adresses IP
Identity : pour référencer les utilisateurs
Telemetry : pour savoir tout ce qu'il se passe
OpenStack, quelles sont les limites ?
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.
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).
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.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.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.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é.