OpenStack — Wikipédia

OpenStack
Description de l'image OpenStack® Logo 2016.svg.

Informations
Développé par Communauté OpenStack
Dernière version Antelope 2023.1[1] ()
Écrit en Python
Système d'exploitation GNU/LinuxVoir et modifier les données sur Wikidata
Environnement Multiplate-forme
Type Cloud computing
Licence Licence Apache 2.0
Site web openstack.org

OpenStack est un ensemble de logiciels open source permettant de déployer des infrastructures de cloud computing (infrastructure en tant que service). La technologie possède une architecture modulaire composée de plusieurs projets corrélés (Nova, Swift, Glance...) qui permettent de contrôler les différentes ressources des machines virtuelles telles que la puissance de calcul, le stockage ou encore le réseau inhérent au centre de données sollicité.

Le projet est porté par la Fondation OpenStack, une organisation non-commerciale qui a pour but de promouvoir le projet OpenStack ainsi que de protéger et d'aider les développeurs et toute la communauté OpenStack[2].
De nombreuses entreprises ont rejoint la fondation OpenStack[3],[4]. Parmi celles-ci on retrouve : Canonical, Red Hat, SUSE, eNovance, AT&T, Cisco, Dell, IBM, Yahoo!, Oracle[5], Orange, Cloudwatt, EMC, VMware, Intel, OVHcloud, NetApp.

OpenStack est un logiciel libre distribué selon les termes de la licence Apache.

Historique[modifier | modifier le code]

2010 : lancement[modifier | modifier le code]

  • En , Rackspace Hosting et la NASA ont lancé conjointement un nouveau projet open source dans le domaine du cloud computing sous le nom d'OpenStack[6].
  • L'objectif du projet OpenStack est de permettre à toute organisation de créer et d'offrir des services de cloud computing en utilisant du matériel standard.
  • La première version livrée par la communauté, dont le surnom est Austin, fut disponible dès .
  • Il est prévu de livrer régulièrement des mises à jour logicielles à quelques mois d'intervalle.

Versions[modifier | modifier le code]

Après la version "Zed", chaque nouvelle version aura un code d'identification: "année"."n° de la livraison pour cette année"[7] (par ex. 2023.1 ; 2024.5 etc). Précédemment, l'identification se basait sur l'incrémentation des lettres de l'alphabet et un processus pour trouver un nom associé avec cette lettre[8].

Nom Date Composants inclus Notes de version
Austin [9] Nova, Swift (en)Note de version Austin
Bexar [10] Nova, Glance, Swift (en)Note de version Bexar
Cactus [11] Nova, Glance, Swift (en)Note de version Cactus
Diablo [12] Nova, Glance, Swift (en)Note de version Diablo
Essex [13] Nova, Glance, Swift, Horizon, Keystone (en)Note de version Essex
Folsom [14] Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder (en)Note de version Folsom
Grizzly [15] Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder (en)Note de version Grizzly
Havana [16] Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer (en)Note de version Havana
Icehouse [17] Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove (en)Note de version IceHouse
Juno [18] Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara (en)Note de version Juno
Kilo [19] Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic (en)Note de version Kilo
Liberty [20] Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, SearchLight, Designate, Zaqar, Barbican, Manila (en)Note de version Liberty
Mitaka [21] Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, SearchLight, Designate, Zaqar, Barbican, Manila (en)Note de version Mitaka
Newton [22] Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, SearchLight, Designate, Zaqar, Barbican, Manila (en)Note de version Newton
Ocata [23] Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, SearchLight, Designate, Zaqar, Barbican, Manila (en)Note de version Ocata
Pike Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, SearchLight, Designate, Zaqar, Barbican, Manila (en)Note de version Pike
Queens Aodh, Barbican, Blazar, Ceilometer, Ceilometer-powervm, Cinder, Cloudkitty, Congress, Designate, Freezer, Glance, Heat, Horizon, Ironic, Karbor, Keystone, Magnum, Manila, Mistral, Monasca-api, Monasca-log-api, Murano, Neutron, Nova, Octavia, Panko, Sahara, Searchlight, Senlin, Solum, Storlets, Swift, Tacker, Tricircle, Trove, Vitrage, Watcher, Zaqar, Zun (en)Note de version Queens
Rocky Aodh, Barbican, Blazar, Ceilometer, Cinder, Cloudkitty, Congress, Cyborg, Designate, EC2, Glance, Heat, Horizon, Ironic, Karbor, Keystone, Magnum, Manila, Mistral, Masakari, Monasca-api, Monasca-log-api, Murano, Neutron, Nova, Octavia, Panko, Qinling, Sahara, Senlin, Solum, Storlets, Swift, Tacker, Tricircle, Trove, Vitrage, Watcher, Zaqar, Zun (en)Note de version Rocky
Stein Aodh, Barbican, Blazar, Ceilometer, Cinder, Cloudkitty, Congress, Cyborg, Designate, Ec2-api, Freezer, Glance, Heat, Horizon, Ironic, Karbor, Keystone, Magnum, Manila, Masakari, Mistral, Monasca-api, Monasca-events-api, Monasca-log-api, Murano, Neutron, Nova, Octavia, Panko, Placement, Qinling, Sahara, Searchlight, Senlin, Solum, Storlets, Swift, Tacker, Tricircle, Trove, Vitrage, Watcher, Zaqar, Zun (en)Note de version Stein
Train 16 octobre 2019 Aodh, Barbican, Blazar, Ceilometer, Cinder, Cloudkitty, Congress, Cyborg, Designate, Ec2-api, Freezer, Glance, Heat, Horizon, Ironic, Karbor, Keystone, Magnum, Manila, Masakari, Mistral, Monasca-api, Monasca-events-api, Monasca-log-api, Murano, Neutron, Nova, Octavia, Panko, Placement, Qinling, Sahara, Searchlight, Senlin, Solum, Storlets, Swift, Tacker, Tricircle, Trove, Vitrage, Watcher, Zaqarm, Zun (en)Note de version Train
Ussuri 13 mai 2020 Adjutant, Aodh, Barbican, Blazar, Ceilometer, Cinder, Cloudkitty, Congress, Cyborg, Designate, Ec2-api, Freezer, Glance, Heat, Horizon, Ironic, Karbor, Keystone, Magnum, Manila, Masakari, Mistral, Monasca-api, Monasca-events-api, Murano, Neutron, Nova, Octavia, Panko, Placement, Qinling, Sahara, Searchlight, Senlin, Solum, Storlets, Swift, Tacker, Tricircle, Trove, Vitrage, Watcher, Zaqar, Zun (en)Note de version Ussuri
Victoria 14 octobre 2020 Adjutant, Aodh, Barbican, Blazar, Ceilometer, Cinder, Cloudkitty, Cyborg, Designate, Ec2-api, Freezer, Glance, Heat, Horizon, Ironic, Karbor, Keystone, Magnum, Manila, Masakari, Mistral, Monasca-api, Monasca-events-api, Murano, Neutron, Nova, Octavia, Panko, Placement, Qinling, Sahara, Searchlight, Senlin, Solum, Storlets, Swift, Tacker, Trove, Vitrage, Watcher, Zaqar, Zun (en)Note de version Victoria
Wallaby 14 avril 2021 Adjutant, Aodh, Barbican, Blazar, Ceilometer, Cinder, Cloudkitty, Cyborg, Designate, Ec2-api, Freezer, Glance, Heat, Horizon, Ironic, Keystone, Magnum, Manila, Masakari, Mistral, Monasca-api, Monasca-events-api, Murano, Neutron, Nova, Octavia, Panko, Placement, Sahara, Senlin, Solum, Storlets, Swift, Tacker, Trove, Vitrage, Watcher, Zaqar, Zun (en)Note de version Wallaby
Xena 6 octobre 2021 Adjutant, Aodh, Barbican, Blazar, Ceilometer, Cinder, Cloudkitty, Cyborg, Designate, Ec2-api, Freezer, Glance, Heat, Horizon, Ironic, Keystone, Magnum, Manila, Masakari, Mistral, Monasca-api, Monasca-events-api, Murano, Neutron, Nova, Octavia, Placement, Sahara, Senlin, Solum, Storlets, Swift, Tacker, Trove, Vitrage, Watcher, Zaqar, Zun (en)Note de version Xena
Yoga 30 mars 2022 Adjutant, Aodh, Barbican, Blazar, Ceilometer, Cinder, Cloudkitty, Cyborg, Designate, Ec2-api, Freezer, Glance, Heat, Horizon, Ironic, Keystone, Magnum, Manila, Masakari, Mistral, Monasca-api, Monasca-events-api, Murano, Neutron, Nova, Octavia, Placement, Sahara, Senlin, Solum, Storlets, Swift, Tacker, Trove, Vitrage, Watcher, Zaqar, Zun (en)Note de version Yoga
Zed 5 octobre 2022 Adjutant, Aodh, Barbican, Blazar, Ceilometer, Cinder, Cloudkitty, Cyborg, Designate, Ec2-api, Freezer, Glance, Heat, Horizon, Ironic, Keystone, Magnum, Manila, Masakari, Mistral, Monasca-api, Monasca-events-api, Murano, Neutron, Nova, Octavia, Placement, Sahara, Senlin, Skyline-apiserver, Skyline-console, Solum, Storlets, Swift, Tacker, Trove, Venus, Vitrage, Watcher, Zaqar, Zun (en)Note de version Zed
Antelope 2023.1 22 mars 2023 Adjutant, Aodh, Barbican, Blazar, Ceilometer, Cinder, Cloudkitty, Cyborg, Designate, Ec2-api, Freezer, Glance, Heat, Horizon, Ironic, Keystone, Magnum, Manila, Masakari, Mistral, Monasca-api, Monasca-events-api, Murano, Neutron, Nova, Octavia, Placement, Sahara, Senlin, Skyline-apiserver, Skyline-console, Solum, Storlets, Swift, Tacker, Trove, Venus, Vitrage, Watcher, Zaqar, Zun (en)Note de version Antelope

Composants[modifier | modifier le code]

Architecture conceptuelle des services OpenStack

OpenStack possède une architecture modulaire qui comprend de nombreux composants[24] :

Voici la liste des composants dits intégrés à OpenStack.

Calcul : Nova[modifier | modifier le code]

Nova est une des briques principales d'Openstack. Son but est de gérer les ressources de calcul des infrastructures. Pour cela, Nova contrôle les hyperviseurs par l'intermédiaire de la libvirt ou directement par les API de certains hyperviseurs. Aujourd'hui l'hyperviseur le mieux supporté reste KVM, mais Nova fonctionne aussi avec Xen, ESX, et Hyper-V voire avec des gestionnaires de conteneur comme Docker et plus récemment l'hyperviseur LXD de Canonical[25].

L'architecture de la brique de Nova est conçue pour évoluer horizontalement en rajoutant du matériel. D'ailleurs Nova fonctionne avec du matériel non spécialisé ce qui permet de réutiliser des serveurs existants par exemple.

Stockage objet : Swift[modifier | modifier le code]

Le stockage objet (en) d'OpenStack s'appelle Swift. C'est un système de stockage de données redondant et évolutif. Les fichiers sont écrits sur de multiples disques durs répartis sur plusieurs serveurs dans un Datacenter. Il s'assure de la réplication et de l'intégrité des données au sein du cluster. Le cluster Swift évolue horizontalement en rajoutant simplement de nouveaux serveurs. Si un serveur ou un disque dur tombe en panne, Swift réplique son contenu depuis des nœuds actifs du cluster dans des emplacements nouveaux. Puisque toute la logique de Swift est applicative, elle permet l'utilisation de matériel peu coûteux et non spécialisé.

En , c'est Rackspace qui a commencé le développement de Swift, en remplacement de leur ancien produit nommé Cloud Files. Aujourd'hui c'est la société SwiftStack qui mène le développement de Swift avec la communauté.

Stockage bloc : Cinder[modifier | modifier le code]

Le service de stockage en mode bloc d'OpenStack s'appelle Cinder. Il fournit des périphériques persistants de type bloc aux instances OpenStack. Il gère les opérations de création, d'attachement et de détachement de ces périphériques sur les serveurs. En plus du stockage local sur le serveur, Cinder peut utiliser de multiples plateformes de stockage tel que Ceph, EMC (ScaleIO, VMAX et VNX), GlusterFS, Hitachi Data Systems, IBM Storage (Storwize family, SAN Volume Controller, XIV Storage System, et GPFS), NetApp, HP (StoreVirtual et 3PAR) et bien d'autres.

Le stockage en mode bloc est utilisé pour des scénarios performants comme celui du stockage de base de données, mais aussi pour fournir au serveur un accès bas niveau au périphérique de stockage. Cinder gère aussi la création d'instantanés (snapshots), très utile pour sauvegarder des données contenues dans les périphériques de type bloc. Les instantanés peuvent être restaurés ou utilisés pour créer de nouveaux volumes.

Le réseau : Neutron[modifier | modifier le code]

Le service Neutron d'Openstack (anciennement Quantum) permet de gérer et manipuler les réseaux et l'adressage IP au sein d'OpenStack. Grâce à Neutron, les utilisateurs peuvent créer leurs propres réseaux, contrôler le trafic à travers des groupes de sécurité (security groups) et connecter leurs instances à un ou plusieurs réseaux. Neutron gère aussi l'adressage IP des instances en leur assignant des adresses IP statiques ou par l'intermédiaire du service DHCP. Il fournit aussi un service d'adresse IP flottante que l'on peut assigner aux instances afin d'assurer une connectivité depuis Internet. Ces adresses IP flottantes peuvent être réassignées à d'autres instances en cas de maintenance ou de défaillance de l'instance originelle.

Neutron fournit différents types de déploiement réseau en fonction de l'infrastructure cible. Les types de réseaux les plus déployés sont les réseaux plats (flat network), les réseaux à VLAN, VXLAN ou à tunnel GRE. Neutron gère ses déploiements grâce à des modules complémentaires qui lui permettent de communiquer avec des équipements ou logiciels de gestions réseau. Les plug-ins les plus utilisés sont OpenVswitch, ML2, LinuxBridge, mais aussi Cisco Nexus, Juniper OpenContrail et d'autres.

Dans son architecture, Neutron a été construit en suivant la philosophie des réseaux de nouvelle génération dite SDN. Bien qu'il ne le gère pas lui-même, certains modules tirent parti des fonctionnalités SDN des équipements qu'ils contrôlent. Lors de son utilisation avec OpenVswitch par exemple, Neutron utilise une combinaison de règles Iptables et OpenFlow pour gérer le trafic vers les instances.

Tableau de bord : Horizon[modifier | modifier le code]

OpenStack fournit un tableau de bord qui s'appelle Horizon. Il s'agit d'une application web qui permet aux utilisateurs et aux administrateurs de gérer leurs clouds à travers une interface graphique. Comme toutes les briques d'OpenStack cette application est libre et il n'est donc pas rare de voir des versions modifiées par les fournisseurs de cloud computing ou par d'autres sociétés commerciales ne serait-ce que pour y faire apparaître leur nom et logo, mais aussi pour y intégrer leurs systèmes de métrologie ou de facturation par exemple. Cette application est écrite en python et notamment grâce aux frameworks de développement web tels que Django et elle tire parti des API REST fournies par les autres composants d'OpenStack comme Nova, Cinder ou Neutron.

Service d'identité : Keystone[modifier | modifier le code]

Le service d'identité d'OpenStack s'appelle Keystone. Il fournit un annuaire central contenant la liste des services et la liste des utilisateurs d'Openstack ainsi que leurs rôles et autorisations. Au sein d'Openstack tous les services et tous les utilisateurs utilisent Keystone afin de s'authentifier les uns avec les autres. Keystone peut s'interfacer avec d'autres services d'annuaire comme LDAP. Il supporte plusieurs formats d'authentification comme les mots de passe et autres.

Service d'image : Glance[modifier | modifier le code]

Le service d'image d'OpenStack s'appelle Glance. Il permet la découverte, l'envoi et la distribution d'image disque vers les instances. Les images stockées font office de modèle de disque. Le service glance permet aussi de stocker des sauvegardes de ces disques. Glance peut stocker ces images disques de plusieurs façons : dans un dossier sur serveur, mais aussi à travers le service de stockage objet d'OpenStack ou dans des stockages décentralisés comme Ceph. Glance ne stocke pas seulement des images, mais aussi des informations sur celles-ci, les métadonnées. Ces métadonnées sont par exemple le format du disque (comme QCOW2 ou RAW) ou les conteneurs de celles-ci (OVF par exemple).

Télémétrie : Ceilometer[modifier | modifier le code]

Le service de télémétrie d'OpenStack s'appelle Ceilometer. Il permet de collecter différentes métriques sur l'utilisation du cloud. Par exemple il permet de récolter le nombre d'instances lancé dans un projet et depuis combien de temps. Ces métriques peuvent être utilisées pour fournir des informations nécessaires à un système de facturation par exemple. Ces métriques sont aussi utilisées dans les applications ou par d'autres composants d'Openstack pour définir des actions en fonction de certains seuils comme avec le composant d'orchestration.

Orchestration : Heat[modifier | modifier le code]

Heat est le composant d'orchestration d'Openstack. Il permet de décrire une infrastructure sous forme de modèles. Dans Heat, ces modèles sont appelés des stack. Heat consomme ensuite ces modèles pour aller déployer l'infrastructure décrite sur Openstack. Il peut aussi utiliser les métriques fournies par Ceilometer pour décider de créer des instances supplémentaires en fonction de la charge d'une application par exemple.

Service de base de données : Trove[modifier | modifier le code]

Trove est le service qui permet d'installer et de gérer facilement des instances de base de données relationnelle et NoSQL au sein d'OpenStack. À ce jour les services de base de données supportés sont les suivants : MySQL, Redis, PostgreSQL, Mongodb, Cassandra, Couchbase et Percona.

Traitement des données : Sahara[modifier | modifier le code]

Sahara a pour but de fournir aux utilisateurs les moyens simples de provisionner des clusters de Hadoop en spécifiant plusieurs paramètres comme la version, la topologie du cluster ou d'autres. Après avoir rempli ces paramètres, Sahara déploie le cluster en quelques minutes. Sahara fournit aussi les moyens d'évolution du cluster en rajoutant des nœuds à la demande.

Autres services[modifier | modifier le code]

  • Ironic : service de Bare Metal provisioning[26]
  • Manila : service de gestion des systèmes de fichier partagés[27]
  • Zaqar : service de middleware à la demande[28]
  • Designate : service de gestion des DNS[29]
  • Barbican : service de gestion des clés et secrets [30]
  • Magnum : déploiement de clusters Kubernetes, Docker Swarm en tant que service[31]
  • Zun : service de gestion des conteneurs[32]

Il existe aussi des composants qui ne sont pas encore[Quand ?] suffisamment stables pour être intégrés.

  • TripleO : OpenStack on OpenStack. Service de déploiement de cloud OpenStack grâce à OpenStack [33]

Communauté[modifier | modifier le code]

En 2016, la communauté OpenStack revendique plus de 150 sociétés participant au projet[34].

Depuis 2017, HPE et Mirantis ont fait le choix de ne plus soutenir le projet OpenStack, afin de se concentrer sur leurs propres solutions de cloud.

Utilisateurs[modifier | modifier le code]

On compte parmi les utilisateurs :

Articles connexes[modifier | modifier le code]

Références[modifier | modifier le code]

  1. « OpenStack Releases: Antelope », sur releases.openstack.org (consulté le )
  2. (en)[1]
  3. (en)http://www.openstack.org/foundation/companies/
  4. (en)[2]
  5. http://www.oracle.com/us/corporate/press/2079843
  6. Thierry Noisette, « La Nasa se met au cloud computing open source avec OpenStack », sur ZDNet.fr, (consulté le )
  7. (en) « Release Identification/Name », sur governance.openstack.org,
  8. (en) « OpenStack release identification process », sur governance.openstack.org,
  9. « openstack.org/projects/ »(Archive.orgWikiwixArchive.isGoogleQue faire ?).
  10. « wiki.openstack.org/BexarReleas… »(Archive.orgWikiwixArchive.isGoogleQue faire ?).
  11. « Obsolete:CactusReleaseSchedule - OpenStack », sur wiki.openstack.org
  12. « DiabloReleaseSchedule - OpenStack », sur wiki.openstack.org
  13. « EssexReleaseSchedule - OpenStack », sur wiki.openstack.org
  14. « FolsomReleaseSchedule - OpenStack », sur wiki.openstack.org
  15. « GrizzlyReleaseSchedule - OpenStack », sur wiki.openstack.org
  16. « OpenStack 2013.2 ("Havana") est sortie ! - LinuxFr.org », sur linuxfr.org
  17. « Icehouse Release Schedule - OpenStack », sur wiki.openstack.org
  18. « Juno Release Schedule - OpenStack », sur wiki.openstack.org
  19. (en)http://www.openstack.org/software/kilo/press-release/
  20. (en)http://www.openstack.org/software/liberty/press-release/
  21. (en)https://www.openstack.org/news/view/181/newest-openstack%C2%AE-release-reflects-project-maturity,-elevates-user-experience
  22. (en)https://www.openstack.org/news/view/259/openstack%C2%AE-newton-release-advances-one-cloud-platform-for-virtualization,-bare-metal-and-containers
  23. (en)https://www.openstack.org/news/view/302/openstack-ocata-strengthens-core-infrastructure-services-and-container-integration-with-15th-release-of-cloud-computing-software
  24. Ken Pepple, Deploying OpenStack, O'Reilly Media, , 69 p. (ISBN 978-1-4493-1105-6 et 1-4493-1105-9, lire en ligne)
  25. (en) Canonical, « The LXD pure-container hypervisor | Cloud | Ubuntu », sur www.ubuntu.com (consulté le )
  26. « Ironic - OpenStack », sur wiki.openstack.org
  27. « Manila - OpenStack », sur wiki.openstack.org
  28. « Zaqar - OpenStack », sur wiki.openstack.org
  29. « Designate - OpenStack », sur wiki.openstack.org
  30. « Barbican - OpenStack », sur wiki.openstack.org
  31. « Magnum — OpenStack », sur wiki.openstack.org (consulté le )
  32. « Zun — OpenStack », sur wiki.openstack.org (consulté le )
  33. « TripleO - OpenStack », sur wiki.openstack.org
  34. https://www.openstack.org/projects/openstack-faq/
  35. (en)http://www.openstack.org/user-stories/cern/
  36. « OpenStack Compute enters testing stage at Rackspace »
  37. (en) « HP is giving up on competing with Amazon's cloud »,
  38. (en) [vidéo] OpenStack: Enabling the Open Cloud Era sur YouTube
  39. « Is AT&T Building the Ultimate Walled Garden? - Slashdot », sur news.slashdot.org
  40. « New Korean Cloud Kicks Amazon's Butt »
  41. Marketplace Business: Telecom opens new cloud marketplace (german)
  42. « RunAbove, les développeurs parlent aux développeurs » (consulté le )
  43. [3]
  44. « Le Cloud pour les administrations »
  45. « Cloudwatt mise sur l'Open Source pour son Cloud », sur Le Journal du Net, (consulté le )
  46. (en) « China Telecom Allies with OpenStack as Government Announces Support for the Open-source Software Platform », sur nuagenetworks.net, (consulté le )