Dans cette première partie, nous présentons synthétiquement OpenStack. Dans une deuxième partie, nous expliquons l'intérêt d'OpenStack sur le Cloud Public OVH.
OpenStack, un outil pour construire un cloud privé
OpenStack est un projet open source issu des travaux de la NASA et destiné à construire un cloud privé.
Qu'est-ce qu'un cloud privé ?
- des interfaces standardisés d'accès aux ressources
Imaginons que votre entreprise ait son propre datacenter, composé des éléments et middleware habituels, serveurs, stockage, réseau, hyperviseurs. Si vos équipements et vos middleware exposent une interface standardisée, dans le cas présent l'interface OpenStack, vous pouvez envisager de déployer un contrôleur ou un ensemble de serveurs constituant le plan de contrôle de ces systèmes. - un serveur (ou des services) central inventoriant l'ensemble des ressources
Vous déployez ce service de pilotage central qui se connecte et répertorie l'ensemble des ressources disponibles, dans un inventaire sécurisé. - des scénarios d'orchestration des ressources
Le contrôleur vous permet de réserver et de configurer les ressources de manière orchestrée, c'est-à-dire avec une cohérence logique entre les actions réalisées sur les différentes. Par exemple, si vous souhaitez mettre en place un serveur web Nginx sous Linux accessible depuis Internet, il est nécessaire de réserver et de configurer du compute (RAM, CPU), du réseau, à la fois au niveau des cartes réseau du serveur et au niveau des équipements réseau du data center, du stockage pour les données persistantes, de la sécurité au niveau des pare-feu. La configuration doit de plus être réalisée dans les différentes couches d'abstraction de l'infrastructure, matériel et couches virtuelles (VM, SD-N, containers)
Dans un datacenter traditionnel, ces opérations sont réalisées manuellement ou de manière spécifique sur chaque équipement. OpenStack vous permet de réaliser l'ensemble de ces opérations de manière cohérente, la cohérence étant garantie à la création de la configuration mais également au cours de sa vie, augmentation de capacité, incident, mise à jour ou décomissionnement.
Quels sont les constituants d'OpenStack ?
Les principaux constituants d'OpenStack sont :
- des API standards qui doivent être implémentés par les matériels et logiciels compatibles (il peut également y avoir des adaptateurs vers des API constructeurs)
- des modules logiciels pouvant remplacer certains composants matériels pour réaliser des configurations software-defined (notamment sur la partie réseau)
- des services logiciels à installer pour piloter l'ensemble
- des configurations type utilisables (template)
- de la documentation, documents de conception, guide architecte, utilisateur et administrateur
La liste détaillée de modules constituant la stack OpenStack est accessible ici. Nous la reprenons de manière simplifiée dans le tableau ci-dessous :
Nom du module | Rôle |
---|---|
Keystone | Authentification et autorisation |
Swift | Stockage objet |
Cinder | Stockage bloc |
Manila | Stockage fichier |
Nova | Compute |
Neutron | Réseau |
Glance | Registre des images |
Heat | Orchestration |
Ceilometer, Aodh, and Gnocchi | Télémétrie |
Horizon | Tableaux de bord |
Comment se familiariser à Openstack ?
Des configurations spécifiques pour réaliser des développements ou des tests existent (devstack). Nous en présentons quelques unes dans un module de formation introductif ouvert. Enfin, certains éditeurs supportent ou ont supporté OpenStack, notamment RedHat. Il peut y avoir un intérêt, pour des tests, à utiliser une distribution dans la famille RHEL, bien que ce ne soit pas forcément la garantie d'aboutir à une configuration fonctionnelle.
Un vrai projet nécessite un travail d'ingéniérie et d'intégration significatif, choix des composants, mise en place, ...
Quel est le niveau d'adoption d'OpenStack ?
Il semble relativement faible. Mais en pratique, certains clouds publics utilisent des briques ou des architectures voisines de celle d'OpenStack.
Il nous semble que cette faible adoption peut s'expliquer :
- la concurrence du cloud public
- des alternatives propriétaires plus simples à mettre en oeuvre
En résumé, pour implémenter openstack, il faut avoir un datacenter suffisamment grand pour justifier la montée en compétence nécessaire pour sortir des solutions propriétaires, et une volonté de s'aligner sur un standard, et donc une stratégie de cloud public standardisé et non propriétaire (qui n'est pas forcément commercialement justifiable). OVH a mise en place une infrastructure de ce type, sans doute parce qu'OVH est dans une taille intermédiaire entre un datacenter d'entreprise et un très gros cloud provider comme AWS ou GCP. Il y a nécessairement d'autres organisations utilisatrices, même en France, mais elles ne font pas de publicité sur le sujet et nous n'avons pas non plus fait de recherche pour les trouver.
Quelles sont les alternatives ?
Plusieurs alternatives sont disponibles :
- une stratégie cloud privée qui s'appuie d'autres solutions opensource notamment la solution Apache Cloudstack
- une stratégie plus focalisée, qui s'éloigne du cloud privé mainstream en s'appuyant sur des containers ou des solutions pour bare metal
- des solutions propriétaires comme :
Le choix entre ces solutions dépend de votre contexte, culture technique de l'entreprise, stratégie d'achat, besoin.
Et OVH dans tout cela ?
Si vous connaissez la CLI AWS ou GCP ou Azure, vous remplacez AWS, GCP ou Azure par OpenStack et vous comprenez à quoi sert OpenStack chez OVH. Vous trouverez également un exemple d'utilisation d'OpenStack avec OVH dans le post suivant.