URL: https://linuxfr.org/news/presentation-d-openstack Title: Présentation d’OpenStack Authors: Jarvis Pierre Jarillon, Benoît Sibaud, palm123, Davy Defaud, BAud, ZeroHeure, reno, Anonyme, Katyucha, Xavier Teyssier, Emmanuel de Beauvoir, Nÿco, err404 et Nicolas Boulay Date: 2015年01月20日T20:43:43+01:00 License: CC By-SA Tags: openstack, cloud, mongodb, couchdb, linus_torvalds, libreoffice et postgresql Score: 31 OpenStack, vous connaissez ? Virtualisation et nuage/_cloud_, ça vous dit quelque chose ? Si vous n’êtes pas un expert, vous voulez sans doute en savoir un peu plus. Cet article est fait pour vous. Nous allons rappeler ce qu’est un _cloud_, les différents types de _clouds_, et où se situe OpenStack. Ensuite, nous ferons une présentation d’OpenStack et de ses différents services. La version d’OpenStack baptisée _Kilo_ est sortie le 30 avril 2015. Elle incluait à cette date un nouveau service : _Ironic_. Le 16 octobre 2015, ce fut le tour de la version _Liberty_. D’autres sont à venir, à commencer par _Mitaka_, annoncé pour le 7 avril 2016. Pour mémoire, la première lettre du nom de version suit l’alphabet latin. Cet article a pour but de faire une présentation assez rapide d’OpenStack et de servir de référence aux prochains articles, en particulier lors de la sortie de _Mitaka_ en avril. _NdM. : Cette dépêche est incomplète, elle a longtemps traîné en rédaction. Elle a cependant le mérite de proposer un rare tour d’horizon. Les modérateurs la publient en comptant sur l’excellence de vos commentaires pour nous raconter les évolutions depuis la version_ Kilo. ---- [Openstack le site officiel](http://www.openstack.org/) [La documentation officielle](http://docs.openstack.org/openstack-ops/content/) [OpenStack : Havana est sortie ](http://linuxfr.org/news/openstack-2013-2-havana-est-sortie) [OpenStack et le bazar des API](http://linuxfr.org/news/tempete-dans-les-nuages-openstack-et-le-bazar-des-api) [Release Notes de Kilo](https://wiki.openstack.org/wiki/ReleaseNotes/Kilo) ---- Les différents clouds =========== Qu’est‐ce que le Cloud computing ? ----------- Le _Cloud computing_ est un concept fourre‐tout. C’est le fait d’utiliser de la puissance de calcul ou de stockage de serveurs informatiques distants par l’intermédiaire d’un réseau, avec certaines caractéristiques comme la disponibilité, l’élasticité, la mutualisation et le paiement à l’usage. Le plus souvent il s'agit d'un service informatique extérieur à l'entreprise. Cela est donc une façon d'économiser des moyens humains en informaticiens et de les remplacer par un service externe qui peut gérer au besoin une demande importante. Prenons un exemple pour bien comprendre : le cas d'une suite bureautique. Pour l'entreprise, il y a 2 manières de gérer l'utilisation d'un traitement de texte : - Installer sur les postes clients un traitement de texte et payer éventuellement les licences qui vont avec (Microsoft Office 2013, LibreOffice). - Utiliser un traitement de texte via un navigateur web (exemple : Microsoft Office 365, Google Doc, Etherpad instancié sur le Framapad). La première méthode est moins souple, car l'entreprise paie les licences même si le logiciel n'est pas utilisé ; alors qu'avec la seconde, le paiement est à la demande. Par ailleurs, il n'y a pas la phase d'installation du logiciel qui permet d'économiser du temps. Par contre les données sont externalisées, ce qui peut poser des problèmes de sécurité et de confidentialité. L'exemple qui vient d'être évoqué est un SaaS : _Software as a Service_/logiciel en tant que service Mais il y a différents degrés d'informatique en nuage. On peut faire l'analogie pour manger une pizza : - La méthode "à la maison" : on achète les ingrédients, on les cuisine et on met la table. C'est la méthode traditionnelle. L'acheteur (entreprise ou particulier) contrôle tout et en a les compétences. - La méthode "à emporter puis cuisiner" : on te fournit les ingrédients. C'est à toi de les cuisiner à ta manière et de s'occuper du reste. L'entreprise en tant qu'utilisateur n'a pas à s'occuper des matières premières mais elle a le contrôle du reste. En cloud, c'est IaaS : _Infrastructure as a Service_/infrastructure en tant que service, avec les compétences afférentes - La méthode "pizza 30 minutes" : on appelle un vendeur de pizza. Il ne reste plus qu'à s'occuper de l'accompagnement et de la table. Dans le nuage, c'est PaaS : _Platform as a Service_/ plate-forme en tant que service - La méthode "pizzeria" : on entre dans une pizzeria et on n'a rien à prendre en charge (ou presque). En cloud, c'est SaaS : _Software as a Service_/logiciel en tant que service. OpenStack est un ensemble de logiciels libres permettant de déployer un cloud orienté IaaS, mais il est de plus en plus possible de faire un PaaS. Cloud privé vs public ----------- Le cloud public est un cloud qui permet à l'entreprise d'externaliser ses moyens. Il y a donc moins d'informaticiens à embaucher. L'entreprise doit par contre payer une autre entreprise et perd le contrôle de l'infrastructure et les données. Exemple IaaS public connu : Amazon EC2, Windows Azure, RackSpace et CloudWatt. Le cloud privé est un cloud qui permet de ne pas perdre le contrôle de l'infrastructure et des données tout en améliorant la qualité de service. Ce type de cloud est de plus en plus utilisé dans les grandes entreprises. Cela demande des compétences en interne. Exemple IaaS privé connu : OpenStack, OpenNebula. Il y a aussi le cloud hybride qui permet d'utiliser les avantages du cloud privé et du cloud public. Avec un cloud hybride, une possibilité est de mettre les données sensibles et importantes dans le cloud privé et le reste dans le cloud public. Une autre possibilité dans l'optique de réduire ses coûts d'exploitation est de dimensionner son cloud privé pour une charge moyenne et d'utiliser le cloud public afin d'absorber les surcharges ponctuelles. OpenStack =========== Présentation ----------- GNU/Linux est né entre deux projets : le noyau Linux créé par Linus Torvalds et des outils systèmes du projet GNU. De la même manière, l'entreprise Rackspace a créé un service de stockage (Swift) et a besoin d'un système pour la gestion de la virtualisation automatique. Des employés de la NASA créent une solution toute trouvée : Nova. Ainsi, en 2010, OpenStack est né de 2 services : Nova et Swift. OpenStack est sous licence Apache 2.0, licence de logiciel libre. Elle n'est pas [[Copyleft]]. Historique des versions ----------- Avec un rythme de quatre mois puis de six mois, les versions d'OpenStack sont sorties. En 2011, le service Nova s'est séparé du service de gestion d'image de machine virtuelle pour créer un nouveau service : Glance. En avril 2012, un nouveau service apparaît : Horizon. C'est l'interface web qui permet de visualiser les différents services d'OpenStack. Par ailleurs Nova se sépare du service d'identification pour créer un nouveau service : Keystone. En septembre 2012, la gestion réseau de Nova (nova network) commence à prendre beaucoup trop de place. Un nouveau service apparaît : Quantum. Il sera appelé par la suite Neutron. Par ailleurs, la gestion du stockage bloc de Nova explose et un nouveau service naît : Cinder. En 2013, deux nouveaux services apparaissent : Heat et Ceilometer. Heat est un service de gestion de l'orchestration. Ceilometer est un service de calcul de consommation de chaque client. En avril 2014, le service Trove apparaît. C'est un service de gestion d'instance de base de données. En octobre 2014, le service [Sahara](https://wiki.openstack.org/wiki/Sahara/Incubation) apparaît. C'est un service dédié au Big Data. Technologies communes ----------- Tous les services utilisent Python 2.7. Il y a un projet pour [porter vers Python 3](https://wiki.openstack.org/wiki/Python3). Chaque service utilise une base de données relationnelle. Par défaut, il utilise MySQL mais il est possible d'utiliser une autre base de données. OpenStack utilise comme ORM : [SQLAlchemy](http://fr.wikipedia.org/wiki/SQLAlchemy). Pour accéder, modifier une ressource, OpenStack utilise l'API REST qui est basée sur HTTP. Pour la communication entre les services et à l'intérieur des services, OpenStack utilise [AMQP](http://fr.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol). Par défaut, il utilise l'implémentation en [Erlang](http://fr.wikipedia.org/wiki/Erlang_%28langage%29) : [RabbitMQ](http://en.wikipedia.org/wiki/RabbitMQ). Les différents composants ----------- ### Nova Développé à l'origine par la NASA, c'est le cœur d'OpenStack. Il s'occupe principalement de la gestion des hyperviseurs (ordonnanceur et gestion des machines virtuelles) et du contrôle des ressources (CPU, RAM, réseaux et stockages). ### Glance Glance a été extrait rapidement de Nova pour en faire un composant à entière. Il permet la gestion des images de machine virtuelles (découverte, enregistrement, récupération et états des images). ### Keystone Keystone permet la gestion de l'identification. L'utilisation d'un autre composant dépend de Keystone (accréditation). ### Neutron À l'origine ce composant s'appelait Quantum, il permet la gestion du réseau dans OpenStack. Il a des fonctionnalités réseaux avancées (tunneling, QoS, Réseaux virtuels et équilibrage de charge, etc.). Avec Nova, Neutron est l'élément où le développement est le plus important (voir [les statistiques de stackalystics](http://stackalytics.com/?release=kilo&project_type=integrated) grâce notamment à l'arrivé de Cisco dans le projet. ### Swift Ce composant permet la gestion du stockage objet. Il a été développé avant OpenStack par Rackspace. Il est ainsi indépendant d'OpenStack et est considéré comme le composant le plus stable. Il peut s'utiliser comme frontend avec le composant Glance. Le stockage objet est une notion bien différente d'un stockage classique qu'on connaît sur les ordinateurs de bureau. Il n'y a pas de notion de montage de partition par exemple. Mais l'avantage principale de ce type de stockage est la disponibilité, la tolérance aux pannes et un agrandissement du stockage à l'infini. En contre-partie, il est considéré moins performant et beaucoup plus compliqué à paramétrer qu'un stockage classique. Un concurrent à Swift que vous connaissez certainement est Ceph. ### Cinder Ce composant permet la gestion du stockage de type bloc. ### Ironic Ironic est un nouveau composant du projet OpenStack. Il permet la gestion du Bare Metal c'est à dire des véritables ordinateurs et non des machines virtuelles. Il s'occupe ainsi le démarrage et l'extinction des ordinateurs. Il va utiliser des technologies comme [PXE](https://fr.wikipedia.org/wiki/Preboot_Execution_Environment), [TFTP](https://fr.wikipedia.org/wiki/Trivial_File_Transfer_Protocol) ou [IPMI](https://fr.wikipedia.org/wiki/Intelligent_Platform_Management_Interface) par exemple. ### Horizon Horizon est une interface web pour la gestion d'OpenStack. Il utilise comme framework Django. Il permet ainsi de visualiser les différents composants d'OpenStack et d'agir dessus. ### Heat Heat est le composant d'orchestration d'OpenStack. Il permet par exemple de demander à Nova de démarrer une machine virtuelle supplémentaire en cas de charge importante de façon automatique. ### Ceilometer Ceilometer est le composant de facturation d'OpenStack. Il permet de calculer la consommation (CPU, RAM, données, etc) de chaque client (utile pour créer un cloud public) ### Trove Trove est le composant de provisionnement de bases de données d'OpenStack. Il prend en charge MySQL, PostgreSQL, MongoDB. Depuis kilo, il prend par ailleurs en charge Vertica et Vertica Cluster, DB2 et CouchDB. ### Sahara Sahara est le composant pour le Big Data d'OpenStack. Il permet d'utiliser Hadoop avec OpenStack.

AltStyle によって変換されたページ (->オリジナル) /