Vous êtes sur la page 1sur 6

Les composants d'OpenStack

1. Introduction :
Ce chapitre a pour objectif de présenter les différents composants ou modules
qui constituent le coeur de la plate-forme OpenStack : Keystone, Glance,
Neutron, Nova, Horizon, Cinder et Swift.

2. Définition :
OpenStack est avant tout un "framework cloud modulaire" permettant
l'implémentation d'une infrastructure IT scalable :
– Framework : c'est un ensemble de composants logiciels structurels,
permettant de créer des fondations d'infrastructure IT (exemples : des
machines virtuelles à base de modèles, des workloads applicatifs à base de
modèles, des processus d'extensibilité de machines virtuelles en fonction de
charge d'utilisation...).
– Cloud (sous-entendu cloud computing) : c'est le cœur même du domaine
abordé par OpenStack qui se distingue d'un logiciel classique d'hypervision
(vSphere/vCenter de VMware, RHEV/RHEV-M de RedHat, Hyper-V de
Microsoft...) en étendant les possibilités et donc les fonctionnalités.
– Modulaire : OpenStack est livré sous forme de modules logiciels qui
fournissent chacun séparément un ensemble de fonctionnalités. Tous les
modules dialoguent entre eux et s'échangent des messages via un bus de
messages.
Tous les modules ne sont pas obligatoirement nécessaires et le choix de
l'implémentation dépend du périmètre du projet cloud. Chaque module est
accessible via une librairie d'API REST (exemple : le module Swift permet un
accès par programmation pour pouvoir stocker des objets comme des
fichiers dans le cas d'un cloud storage).

3. Composants :
Les composants présentés ici sont matures et sont installables en production.
L'avant-dernière version appelée Juno, sortie le 16 octobre 2014, fournit pas
moins de onze composants en standard pour les services de base et les services
partagés (source : Wikipédia, http://fr.wikipedia.org/wiki/OpenStack).
3.1 Services de base :
– Service de dashboard (interface web de paramétrage et de gestion) : Horizon.
– Service de compute (coeur d'OpenStack) : Nova.
– Service de gestion des réseaux : Neutron (ex-Quantum).
– Service de stockage bloc : Cinder.
– Service de stockage objet : Swift.

3.2 Services partagés :


– Service d'identité : Keystone.
– Service d'image : Glance.
– Service d'orchestration : Heat.
– Service de métrologie : Telemetry (ex Ceilometer).
– Service de base de données : Trove.
– Service de big data : Sahara.

Remarque :
Un composant particulier concerne du code partagé : il s'agit d'Oslo, qui peut
être vu comme un ensemble de librairies Python. Il n'offre pas de
fonctionnalités directement visibles à l'utilisateur comme les autres modules
mais permet aux composants OpenStack de fonctionner entre eux.

3.3 Services en cours de développement :


3.3.1 Composants en cours de développement :
D'autres composants sont en cours de développement et seront
intégrés dans de futures versions : Ironic (service de Bare-Metal
c’est-à-dire de serveurs physiques sans couche de virtualisation),
Manila (service de gestion des systèmes de fichiers partagés, Zaqar
(service de middleware as a service),
Designate (service de gestion DNS), Barbican (service de gestion des
clés secrètes), TripleO (service OpenStack on OpenStack, c'est-à-dire
service de déploiement d'OpenStack grâce à OpenStack).

3.3.2 Le composant Murano :


Un composant intéressant, Murano, permet le déploiement
automatisé d'applications préconfigurées pour des environnements
de tests et pour gérer l'auto-scaling en environnement de
production.
Le développement de Murano étant très récent, il doit cependant, à
ce jour, être utilisé en environnement de développement.
Murano est un service développé initialement par la société Mirantis
et qui a été porté dans la communauté OpenStack.
Une fois Murano installé, le dashboard présente un nouveau service
avec des fonctionnalités :
– Catalogue d'applications
– Environnements
– Applications
Liste d'applications fournies initialement par Murano et qui
peuvent être utilisées pour la fabrication des bundles (exemple :
Apache HTTP Server, Zabbix Agent, WordPress, MySQL...). Il faut
partir de ce catalogue pour créer l'environnement applicatif.
– Manage
Images : liste des images disponibles pour la fabrication des
bundles applicatifs.

4. Architectures OpenStack :
4.1 Architecture logique :
D'un point de vue logique, OpenStack peut être représenté a minima avec trois
services : un bloc de compute, un bloc de Networking et un bloc de Storage. Ces
services utilisent un bus de communication pour communiquer entre eux. Ils
exposent publiquement leurs fonctionnalités via des API. Un dashboard permet de
se connecter aux services avec un portail présentant une IHM (interface homme-
machine).
Schéma d'architecture logique (source : http://www.openstack.org/software/)

4.2 Architecture conceptuelle :


D'un point de vue conceptuel, OpenStack est composé de services reliés les uns aux
autres autour de deux services qui communiquent avec tous les autres modules :
Horizon et Keystone.
Schéma d'architecture conceptuelle

4.3 Architecture technique :


D'un point de vue technique, OpenStack fonctionne soit en environnement virtuel,
soit en environnement Bare-Metal ou les deux en fonction des services installés.

Les serveurs d'OpenStack


5. Gestion de l’authentification et autorisation :
5.1 Introduction :
Keystone (la clé de voûte) est le service de gestion des identités et des autorisations
d'accès, c'est-à-dire qu'il fournit tout le mécanisme pour gérer les utilisateurs, les
tokens et le catalogue de droits pour tous les composants d'OpenStack.
Ce module est sollicité par exemple lorsqu'un utilisateur souhaite se connecter sur
le portail, lorsqu'un utilisateur souhaite provisionner une machine virtuelle... C'est
de loin le module le plus utilisé d'OpenStack.