Au cours des dernières décennies, le monde a considérablement évolué pour devenir de plus en plus digital et connecté. La mise en place de grosses infrastructures, l’utilisation de nouveaux concepts tels que la conteneurisation ou encore la transmission de données à grande échelle, les systèmes n’ont jamais été aussi complexes. Malgré cela, l’informatique s’est démocratisée et son utilisation est désormais à la portée de tous.
Nous devons cela aux efforts de recherches et de réflexions de différents acteurs qui nous ont permis l’émergence d’innovations devenues très utiles. L’une de celle-ci est le cloud computing qui a permis la popularisation et la démocratisation de l’informatique et de son hébergement.
En effet, grâce au cloud public, chacun peut louer des équipements informatiques et déployer ses propres services informatiques, et ce, sans avoir besoin d’investir massivement, tout en diminuant les coûts de maintenance. Que ce soient des machines virtuelles, des composants, tels que des bases de données managées ou encore des logiciels, l’informatique n’a jamais autant été à portée de clic.
Cependant, le cloud public, malgré son utilité, présente quelques inconvénients. La confidentialité des données, la souveraineté ou encore la maîtrise de son SI, montrent l’importance de garder la gouvernance sur son infrastructure. Par voie de conséquence, les solutions de cloud privé ou hybride ont vu le jour.
L’une d’entre elles est Openstack, un projet communautaire open source, né de l’association de la NASA et de Rackspace en 2010. En 2012 une fondation a été créée, beaucoup d’entreprises de renom telles que Red Hat, IBM, Google et bien d’autres l’ont rejointe. Son objectif premier est de gérer le développement et la pérennité du projet.
Son aspect open source permet à tout un chacun, d’étudier le cœur de l’outil et de le modifier en cas de besoin. Il existe donc différentes implémentations d’Openstack, comportant de légères voir de conséquentes différences.
Dans cet article, nous allons nous intéresser à Openstack en général, avec quelques références à l’implémentation Red Hat de Openstack : Red HJat Openstack Platform.
La base d’Openstack, les services
L’un des avantages d’Openstack est sa modularité. Son fonctionnement se base sur une multitude de services fournissant indépendamment un ensemble de fonctionnalités et communiquant entre eux via des bus de messages. De plus, chaque service dispose d’une API REST lui permettant d’être appelé.
Voici un schéma illustrant les relations possibles entre les différents services :
On observe différents types de service sur le schéma ci-dessus. Chacun joue un rôle différent, mais travaille en constante collaboration afin d’arriver au résultat voulu. Par exemple, le service Nova s’occupe de provisionner des machines virtuelles, il aura besoin du service Glance pour les images et du service Neutron pour la partie réseau. Par conséquent, certains services sont obligatoires et d’autres sont optionnels.
Il existe plusieurs manières de déployer Openstack. L’une de ces manières pour déployer Openstack se nomme « tripleO ». Elle consiste à déployer Openstack (undercloud), qui va ensuite déployer, piloter et monitorer une ou plusieurs autres instances d’Openstack (overcloud).
Voici un schéma représentant ces deux composantes pour ce type de déploiement :
L’undercloud est un ensemble d’outils permettant d’installer et gérer un environnement d’infrastructure. Il contient les composants essentiels dont les administrateurs systèmes ont besoin pour paramétrer et gérer les overclouds. Red Hat OpenStack Platform (RHOSP) Director est l’undercloud de Redhat. En général, il est déployé sur des systèmes matériels physiques.
L’overcloud, quant à lui, va être déployé et piloté par l’undercloud et va fournir les infrastructures aux utilisateurs finaux. Il va donc être composé de différents services répartis sur des nœuds.
Openstack est composé de six services principaux qui vont fournir les fonctionnalités essentielles du cloud :
- Nova : Permet la gestion des ressources de calcul et des accès. Il gère la planification, la création et la suppression des ressources
- Neutron : Permet de gérer la mise en réseau et l’interconnexion des services les uns avec les autres.
- Swift : Service de stockage en mode objet qui stocke et permet la récupération d’objets non structurés.
- Cinder : Service de stockage persistant en mode bloc.
- Keystone : Prend en charge l’authentification et l’autorisation de l’ensemble des services Openstack.
- Glance : Stocke et récupère les images des machines virtuelles.
Les autres services sont optionnels et permettent d’effectuer des tâches qui peuvent être importantes mais ne sont pas essentielles au fonctionnement du cloud.
D’après Redhat, les services de stockage dans Openstack présentent plusieurs inconvénients. Ils préconisent d’utiliser Ceph qui est plus adapté au besoin de stockage d’Openstack et qui peut remplacer la plupart des services de stockages par défaut.
Ceph : la solution de stockage adaptée pour Openstack
Ceph est une solution de stockage logiciel évolutive.
Elle présente à ce titre plusieurs avantages. Elle permet :
- D’installer le système de stockage sur du matériel bon marché auprès du fournisseur de son choix.
- Donne la capacité de mise à l’échelle horizontale plutôt que verticale et donc la possibilité d’ajouter facilement des serveurs de stockage supplémentaires au cluster pour améliorer la capacité et les performances.
- Du stockage :
- Objet à l’aide de la passerelle RADOS. Elle est donc compatible avec les services SWIFT (et peut communiquer avec son API).
- Par block avec le protocole natif Ceph ou via iSCSI. En effet, le service Cinder peut être configuré pour utiliser Ceph.
- Par fichier. Ceph possède son propre protocole CephFS pour gérer les fichiers. Il peut donc être interconnecté à Manila qui est le service de gestion de filesystem de Openstack.
- D’image. En effet, Glance, qui est le service de gestion d’images et est capable de stocker ces images dans Ceph plutôt qu’en local. Cela réduit le trafic réseau et améliore les performances. De plus, cela permet une redondance des images et la migration des hôtes de calcul.
- Une réduction des coûts de stockage
De plus, Ceph est une solution évolutive, open source et autogérée qui nécessite peu d’intervention de l’utilisateur. Elle correspond parfaitement au besoin d’Openstack.
Principaux cas d’usage
Cloud privé
L’un des principaux cas d’usage de Openstack est la mise en place de clouds privés. C’est notamment le cas dans les entreprises qui ont besoin de confidentialité comme les banques ou les secteurs très sensibles.
Cloud public
Sachant que Openstack est open source, il est tout à fait possible d’utiliser Openstack pour créer et commercialiser son propre cloud public.
Cloud hybride
Openstack permet de s’interfacer avec les principaux clouds publics notamment au travers de leur API. Par exemple, il existe des modules pour pouvoir communiquer avec l’API AWS afin de créer et gérer des EC2 sur ce cloud.
Conteneurs
Openstack offre une base solide pour le déploiement de conteneurs. Il existe quelques services qui permettent la gestion de conteneurs. Par exemple, le service Magnum permet de déployer différents types d’orchestrateurs comme Kubernetes, Docker Swarm ou encore Apache Mesos.
Conclusion
Openstack est aussi modulable que puissant et permet de s’adapter à bon nombre de besoins. Openstack, associé à Ceph pour le stockage, est une solution très performante rivalisant avec toutes les autres solutions du marché. Celle-ci a convaincu des clients majeurs tels que le CERN ou IBM. De plus, le projet étant open source et disposant d’une grande communauté, il permet une évolution et une progression constante, avec régulièrement, de nouvelles fonctionnalités. La solution est aussi très intéressante financièrement car tous ses produits sont open source. Les dépenses à engager sont donc bien moindres. Cependant, déployer Openstack nécessite beaucoup de compétences techniques et une bonne connaissance du produit. Redhat est un des acteurs les plus dynamiques dans le monde de l’hyperconvergé. Une joint-venture entre Devoteam et cette société trouve toute sa pertinence dans les déploiements d’Openstack Platform avec la solution de stockage Ceph.