Vous êtes sur la page 1sur 71

POUR DES COMPÉTENCES TOUJOURS À LA POINTE

Introduction à
Openstack
Emmanuel Braux
Institut Mines Telecom / IMT Atlantique
emmanuel.braux@imt-atlantique.fr

Institut Mines-Télécom
Objectifs

 Connaitre le fonctionnement du projet OpenStack


et ses possibilités
 Comprendre le fonctionnement de chacun des
composants d’OpenStack

2 Institut Mines-Télécom Introduction à Openstack


Plan

Introduction à Openstack

 Définitions
 L’écosystème OpenStack
 L’architecture
 Les sous-Projets
 Les Grands Principes d’utilisation
 Premiers pas

3 Institut Mines-Télécom Introduction à Openstack


► Définitions
L’écosystème OpenStack
L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
Premiers pas

4 Institut Mines-Télécom Introduction à Openstack


Définitions

 Wikipédia
OpenStack est un ensemble de logiciels open source
permettant de déployer des infrastructures de cloud Computing
(IaaS).

 Openstack.org
OpenStack is a cloud operating system that controls large
pools of compute, storage, and networking resources
throughout a datacenter, all managed through a dashboard that
gives administrators control while empowering their users to
provision resources through a web interface.

5 Institut Mines-Télécom Introduction à Openstack


Framework Iaas Modulaire

 Iaas
• Infrastructure libre service, à la demande

 Framework
• Ensemble de composants logiciels
• Bases d'une infrastructure IT

 Modulaire
• un ensemble de modules, pas tous nécessaires
• chaque module peut être configuré en fonction de besoins
• chaque module peut-être étendu (drivers)

6 Institut Mines-Télécom Introduction à Openstack


Définitions
► L’écosystème OpenStack
L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
Premiers pas

7 Institut Mines-Télécom Introduction à Openstack


Définitions
L’écosystème OpenStack
► Historique
Gouvernance
Communauté
Packaging
Développement
L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
Premiers pas
8 Institut Mines-Télécom Introduction à Openstack
Historique

2010 : Rackspace Hosting + NASA


lancent un projet communautaire et
Open source

Objectif : créer et offrir des


services de Cloud Computing
avec du matériel standard

Introduction à
Openstack
Institut Mines-Télécom 9
Cycle de vie des versions
 2 releases annuelles,
 1 version « stable, »
 2 versions « supportées »

https://www.objectif-libre.com/fr/
10 Institut Mines-Télécom Introduction à Openstack
Releases Timeline

https://releases.openstack.org/
11 Institut Mines-Télécom Introduction à Openstack
Définitions
L’écosystème OpenStack
Historique
► Gouvernance
Communauté
Packaging
Développement
L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
Premiers pas
12 Institut Mines-Télécom Introduction à Openstack
La fondation OpenStack

 Créé en 2012
 Entité indépendante de gouvernance principale du projet
 Les membres du « board of directors » sont issus des
entreprises sponsors et élus par les membres individuels
 Tout le monde peut devenir membre individuel
(gratuitement)
 Supporte le projet par différents moyens :
• Evénements : organisation (Summits) ou participation (OSCON,
etc.)
• Infrastructure de développement (serveurs)
• Ressources humaines : marketing, release manager, quelques
développeurs (principalement sur l’infrastructure)
 Plus de 850 organisations à travers le monde
 Plus de 9500 membres individuels dans 100 pays

13 Institut Mines-Télécom Introduction à Openstack


OpenStack Nation

“define and steward the “provides strategic and “represent a broad set
technical direction of financial oversight of of enterprise, academic
OpenStack” Foundation resources and service provider
and staff”. users”

https://www.openstack.org/foundation/
14 Institut Mines-Télécom Introduction à Openstack
OpenStack Summit

 Aux USA jusqu’en 2013


 Aujourd’hui : alternance USA et Asie/Europe
 Quelques centaines au début à 4500 de
participants aujourd’hui
 En parallèle : conférence (utilisateurs, décideurs)
et Design Summit (développeurs)
 Détermine le nom de la release : lieu/ville à
proximité du Summit

15 Institut Mines-Télécom Introduction à Openstack


Définitions
L’écosystème OpenStack
Historique
Gouvernance
► Communauté
Packaging
Développement
L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
Premiers pas
16 Institut Mines-Télécom Introduction à Openstack
Quelques soutiens/contributeurs

 Rackspace et la NASA
 Canonical, Red Hat, Suse, HP, IBM, Dell, Intel
 Huawei, Cisco, Juniper,
 NetApp, VMWare
 Yahoo, Bull
 Mirantis, StackOps, …
 …

https://www.openstack.org/foundation/companies/

17 Institut Mines-Télécom Introduction à Openstack


... et utilisateurs

 Tous les contributeurs précédemment cités


 CloudWatt (Orange) et Numergy (SFR)
 CERN,
 Wikimedia
 Paypal, Comcast, Etc.
 Sans compter les implémentations confidentielles
 …

https://www.openstack.org/user-stories/

18 Institut Mines-Télécom Introduction à Openstack


Définitions
L’écosystème OpenStack
Historique
Gouvernance
Communauté
► Packaging
Développement
L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
Premiers pas
19 Institut Mines-Télécom Introduction à Openstack
Packaging : Ubuntu

 Le packaging est fait dans de multiples


distributions, RPM, DEB et autres
 Ubuntu est historiquement la plateforme de
référence pour le développement d’OpenStack
 Le packaging dans Ubuntu suit de près le
développement d’OpenStack, et des tests
automatisés sont réalisés
 Canonical fournit la Ubuntu Cloud Archive, qui
met à disposition la dernière version d’OpenStack
pour la dernière Ubuntu LTS

20 Institut Mines-Télécom Introduction à Openstack


Les autres distributions

 OpenStack est intégré dans les dépôts officiels


de Debian
 Red Hat est très actif dans la communauté, et
propose :
• Une distribution avec support : RHOS
• le cycle de release de Fedora est synchronisé avec
celui d’OpenStack
 StackOps
 Mirantis
 HP, Nokia, Ericsson, …

https://www.openstack.org/marketplace/distros/

21 Institut Mines-Télécom Introduction à Openstack


Définitions
L’écosystème OpenStack
Historique
Gouvernance
Communauté
Packaging
► Développement
L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
Premiers pas
22 Institut Mines-Télécom Introduction à Openstack
Développement
 Python
 Ouvert à tous (individuels et entreprises)
 Cycle de développement de 6 mois débuté par un
(design) summit, et Planning public
 Outils :
• Launchpad (blueprints, bugs) + Git (développement) +
GitHub (diffusion des sources)
• Sur chaque commit : peer review (Gerrit) + intégration
continue
• Exécution de différents tests par Jenkins
• Plateforme de référence et modèle de développement :
Ubuntu

23 Institut Mines-Télécom Introduction à Openstack


Informations

 Principalement sur le wiki : https://wiki.openstack.org


 Le planning : https://releases.openstack.org/
 Les blueprints et bugs : https://launchpad.net/openstack
 Les patchs et leurs reviews : https://review.openstack.org
 Le code : https://git.openstack.org
 Les sources (tarballs) : http://tarballs.openstack.org/
 Les statistiques :
http://stackalytics.com/?release=queens

24 Institut Mines-Télécom Introduction à Openstack


Statistiques company contributions

http://stackalytics.com/?release=train
25 Institut Mines-Télécom Introduction à Openstack
Statistiques Modules contributions

http://stackalytics.com/?release=train
26 Institut Mines-Télécom Introduction à Openstack
Stackforge

 Forge pour les nouveaux projets en lien avec


OpenStack
 Bénéficient de l’infrastructure du projet
OpenStack, mais la séparation reste claire
 Les projets démarrent dans Stackforge et peuvent
ensuite rejoindre le projet OpenStack

https://github.com/stackforge

27 Institut Mines-Télécom Introduction à Openstack


Définitions
L’écosystème OpenStack
► L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
Premiers pas

28 Institut Mines-Télécom Introduction à Openstack


Design Tenets

1. Scalability and elasticity are our main goals


2. Any feature that limits our main goals must be optional
3. Everything should be asynchronous (If you can’t do
something asynchronously, see #2)
4. All required components must be horizontally scalable
5. Always use “shared nothing architecture (SN)” or
“sharding” (If you can’t Share nothing/shard, see #2)
6. Distribute everything (Especially logic. Move logic to
where state naturally exists)
7. Accept “eventual consistency” and use it where it is
appropriate.
8. Test everything. We require tests with submitted code

29 Institut Mines-Télécom Introduction à Openstack


Technologies mises en œuvre

 Approche « micro-services »
 Communications inter-services via API
(synchrone) limitées
 Utilisation massive de commandes par messages
(AMPQ)
 Une base de donnée par services
 Majorité de services sans états (state-less)

30 Institut Mines-Télécom Introduction à Openstack


Pour résumer

 Des composants indépendants


 Qui dialoguent entre eux via une file d'attente
(RabitMQ, protocole AMQP)
 Et qui peuvent échanger des informations via les
API qu'ils exposent

31 Institut Mines-Télécom Introduction à Openstack


Composants principaux

 Composants Individuels et autonomes

32 Institut Mines-Télécom Introduction à Openstack


Aperçu : pour un utilisateur

33 Institut Mines-Télécom Introduction à Openstack


Ce que ça cache …

http://docs.openstack.org/ops-guide/architecture.html
34 Institut Mines-Télécom Introduction à Openstack
Zoom …

Introduction à
Openstack
Institut Mines-Télécom 35
Grands principes d’ implémentation

 Développement en Python (Django pour Horizon)


 Réutilisation de composants existants
 Tous les composants doivent être configurés pour
communiquer avec le référentiel central (keystone)
 La plupart doivent être configurés pour communiquer
avec le gestionnaire message (RabbitMQ)
 Chaque sous-projet est découpé en plusieurs services
 Un fichier de configuration par service
 Toutes les fonctionnalités doivent être accessibles par
l’API

36 Institut Mines-Télécom Introduction à Openstack


Définitions
L’écosystème OpenStack
L’architecture
► Les sous-Projets
Les Grands Principes
d’utilisation
Premiers pas

37 Institut Mines-Télécom Introduction à Openstack


Définitions
L’écosystème OpenStack
L’architecture
Les sous-Projets
► "Core", "Big tent" et "Tools"
Détail des principaux projets
Les Grands Principes d’utilisation
Premiers pas

38 Institut Mines-Télécom Introduction à Openstack


Les sous-projets « Core »
 Indispensables :
• Gestion/execution des instances (Compute) : Nova
• Authentification, Autorisations (Identity Service) :
Keystone
• Catalogue de services : Keystone
• Registre d’images (Image Service) : Glance
• Réseau (Networking) : Neutron

 Stockage :
• Stockage block (Block Storage) : Cinder
• Stockage objet (Object Storage ) : Swift

39 Institut Mines-Télécom Introduction à Openstack


Sous-projets « Big Tent »

 Suivi / management
• Console web (Dashboard) : Horizon
• Orchestration des ressources (Orchestration) : Heat
• Collecte de métriques (Metering) : Ceilometer
 Données
• Bases de données : Trove
• Traitement de masse : Sahara

...

40 Institut Mines-Télécom Introduction à Openstack


« Big Tent » et « Core »

41 Institut Mines-Télécom Introduction à Openstack


Panorama des composants d’OpenStack

https://www.openstack.org/software/

42 Institut Mines-Télécom Introduction à Openstack


Evolution

https://fr.wikipedia.org/wiki/OpenStack
43 Institut Mines-Télécom Introduction à Openstack
Evolution : accélération …

https://fr.wikipedia.org/wiki/OpenStack
44 Institut Mines-Télécom Introduction à Openstack
Maturité / Statistiques

https://www.openstack.org/software/project-navigator

45 Institut Mines-Télécom Introduction à Openstack


CORRESPONDANCE OPENSTACK -
AWS

 Compute : EC2 → Nova


 Block storage : EBS → Cinder
 Object storage : S3 → Swift
 Orchestration : CFN → Heat
 DNS : Route53 → Designate
 …

46 Institut Mines-Télécom Introduction à Openstack


Sous-projets « Tools »

 Oslo (ou OpenStack common) :


• contient le code commun à plusieurs composants d’OpenStack
• Son utilisation est transparente pour le déployeur
 rootwrap
• wrapper pour les commandes root utilisée par les projets
 TripleO
• OpenStack On OpenStack
• Objectif : pouvoir d´eployer un cloud OpenStack (overcloud) à
partir d’un cloud OpenStack (undercloud)
 Tempest,
• Suite de tests d’un cloud OpenStack
• Effectue des appels à l’API et vérifie le résultat
• Est très utilisé par les développeurs via l’intégration continue
 …

47 Institut Mines-Télécom Introduction à Openstack


Définitions
L’écosystème OpenStack
L’architecture
Les sous-Projets
"Core", "Big tent" et "Tools"
► Détail des principaux projets
Les Grands Principes d’utilisation
Premiers pas

48 Institut Mines-Télécom Introduction à Openstack


Keystone (identity)

 Service de renseignements (utilisateurs, groupes,


projets. . . )
 Authentifie les utilisateurs en leur donnant des
jetons
 Valide l’authenticité d’un jeton
 Dépositaire du catalogue de service

49 Institut Mines-Télécom Introduction à Openstack


Nova (compute)
 Gère le catalogue des instances
 Traite les demandes de création d’instance (en relation
avec l’hyperviseur)
 Gère le placement des instances sur les noeuds compute
 Fournit les métadonnées (systèmes et utilisateurs) aux
instances
 Assure des fonctions réseaux (limitées : création de
bridge, DHCP, firewall. . . ), bientôt abandonnées.
 Fournit un accès aux instances (console, VNC, Spice. . . )
 KVM, Xen, ESX, Hyper-V, Docker et LXC

50 Institut Mines-Télécom Introduction à Openstack


Glance (images)

 Service « images» de l’infrastructure virtualisée


 Stocke et distribue les images d’instance
 Appelé par Compute (Nova) lors de l’instanciation
d’une nouvelle Instance.
 Format des images : raw, vmdk, qcow , iso, …
 Gère les métadonnées des images (type, OS,
architecture. . . )
 Plusieurs backend de stockage :
• Système de fichier local ou NFS (NAS/SAN)
• Swift (OpenStack Object Service)
• S3 (Object Service Amazon)
• Ceph

51 Institut Mines-Télécom Introduction à Openstack


Neutron (Network)

 Virtualisation du réseau
 API Unifiée, pour piloter plusieurs architectures
réseau :
• Linux Bridge,
• OpenVSwitch
• SDN (Software-Defined Network) : OpenContrail,
OpenDaylight, Cisco Nexus1000, VmWare NSX, …

52 Institut Mines-Télécom Introduction à Openstack


Horizon (dashboard)

 Interface web
 Fournit une interface graphique pour gérer les
ressources
 Permet de surveiller l’utilisation des ressources

53 Institut Mines-Télécom Introduction à Openstack


Choix et contraintes sur les composants

 Keystone est indispensable


 L’utilisation de Nova va de paire avec Glance
 Nova propose une couche réseau simpliste, mais
souvent suffisante
 Neutron est puissant, mais complexe
 Cinder s’avèrera souvent utile
 Ceilometer et Heat vont souvent ensemble
 Swift est indépendant des autres composants

54 Institut Mines-Télécom Introduction à Openstack


Définitions
L’écosystème OpenStack
L’architecture
Les sous-Projets
► Les Grands Principes d’utilisation
Premiers pas

55 Institut Mines-Télécom Introduction à Openstack


Grands principes d’utilisation

 Les instances sont éphémères, les données sont


persistantes
 On est prêt à perdre l'instance, mais pas le
service.
 Les données doivent être stockée sur un
stockage persistant.
 Il faut séparer les données des instances
 Une instance doit être utilisée comme ressource
de calcul
 Une image se personnalise lors de son
instanciation grâce à l’API de metadata

56 Institut Mines-Télécom Introduction à Openstack


Les instances

 Image : le master, généralement un OS bootable et


“cloud ready”.
 Instance : forme dynamique d’une image (la VM).
 Gabarit (flavor) : Type d’instance, mensurations (cpu,
ram, capacité disque,...).

On lance une instance à partir d’une image, en lui


affectant des ressources via un gabarit.

57 Institut Mines-Télécom Cloud et Openstack - Introduction


Configuration des instances

 Des métadonnées sont associées aux différents objets


• Metadata : définie par le système
• Userdata : définie par l’utilisateur
 Cloud-init : mécanisme de personnalisation des
instances lors de la création

Une image se configure/personnalise lors de son


instanciation grâce à l’API de metadata, et le
mécanisme Cloud-Init

58 Institut Mines-Télécom Cloud et Openstack - Introduction


Les volumes

 Volume : espace de stockage persistant. Peut être de


type bloc ou objet.

 Une instance est éphémère. C’est une ressource de


calcul.
 Les données sont persistantes.

Il faut séparer les données des instances, et les


stocker sur un stockage persistant : un volume

59 Institut Mines-Télécom Cloud et Openstack - Introduction


Le réseau

 IP Fixe : adresse IP « interne » associée à chaque instance »


 IP flottantes (Floating IP) : adresse IP allouée à la demande
et utilisée pour communiquer avec le réseau “externe”.
 Groupe de sécurité (Security groups) : ensemble de règles
de filtrage de flux appliqué à l’entrée des instances.

Pour pouvoir accéder à une instance, il faut lui


affecter une IP flottante, et définir des règles de
sécurité.

60 Institut Mines-Télécom Cloud et Openstack - Introduction


Connection aux instances

 Paire de clés (Keypairs) : clé privée + clé publique


permettant les connexions aux instances via SSH.

On n’utilise plus de mot de passe pour se connecter


aux instances, mais des paires de clés.

61 Institut Mines-Télécom Cloud et Openstack - Introduction


Gestion des utilisateurs

 Projet (Project/Tenant) : unité d’appartenance de base


= propriétaire des ressources.
 Utilisateur (User) : compte autorisé à utiliser les API
 Quota : contrôle l’utilisation des ressources (vcpu,
ram, fip, security groups,...) dans un projet

On associe les ressources à un projet, via des


quotas.
Les utilisateurs deviennent membre des projets.

62 Institut Mines-Télécom Cloud et Openstack - Introduction


Cycle de vie des instances et continuité
de service

 Stack : ensemble des ressources IaaS utilisées par une


application.
 Infrastructure « as code » : les stacks sont décrits
dans des fichiers (yaml, python, …), et sont de
préférence placé en gestion de version Infrastructure
« jetable » : tout ce qui est déployé doit pouvoir être
redéployé, dupliqué, …

On est prêt à perdre une instance mais pas le


service. C’est l’application doit assurer la continuité
du service, pas (plus) l’infrastructure.

63 Institut Mines-Télécom Cloud et Openstack - Introduction


Accès aux services

 APIs REST : Interface permettant à un logiciel


d’utiliser un service ou une bibliothèque, via des
requêtes HTTP
 Endpoint : URL permettant l’accès à une API. Un
endpoint par service.
 Catalogue de services : services disponibles et
accessibles via les API.

Toutes les opérations peuvent être réalisées par des


appels via les API REST.

64 Institut Mines-Télécom Cloud et Openstack - Introduction


Définitions
L’écosystème OpenStack
L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
► Premiers pas

65 Institut Mines-Télécom Introduction à Openstack


La console : Horizon

66 Institut Mines-Télécom Introduction à Openstack


Les APIs

 Les clients (y compris Horizon) utilisent l’API


 Des crédentials sont nécessaires
• utilisateur + mot de passe + projet
 Direct, en HTTP, via des outils comme curl
 Avec une bibliothèque
• Les implémentations officielles en Python
• D’autres implémentations pour d’autres langages
(exemple : jclouds)

67 Institut Mines-Télécom Introduction à Openstack


Les clients

 Des clients en ligne de commande :


• python-<service>client
 Bibliothèques Python
 L’authentification se fait en passant les
« credentials » par paramètres ou variables
d’environnement
 S’appuie sur les API
• L’option « --debug » affiche la communication HTTP

68 Institut Mines-Télécom Introduction à Openstack


Démarrer avec Openstack
 Devstack
• http://docs.openstack.org/developer/devstack/
• “a series of extensible scripts used to quickly bring up a
complete OpenStack environment”
• Ubuntu, RedHat

 Packstack
• https://www.rdoproject.org/install/packstack/
• “installation utility that lets you spin up a proof of concept cloud
on one node”
• RedHat

 Offres providers :
• https://www.citycloud.com/get-free-trials-on-openstack-clouds-
across-the-world/ http://trystack.org/ : 100$ / 1 mois
• …

https://www.openstack.org/software/start/

69 Institut Mines-Télécom Introduction à Openstack


En conclusion

 projet Opensource, viable, géré par une large


communauté
 Rythme Évolution rapide
 Ensemble de briques
 Architecture complexe
 Compétences variées (système, réseau,
développement, …)

70 Institut Mines-Télécom Introduction à Openstack


Auteur : emmanuel.braux@imt-atlantique.fr

Cette présentation est sous License Créative Commons


3.0 France (CC BY-NC-SA 3.0 FR)
Selon les options : Attribution - Pas d’Utilisation
Commerciale - Partage dans les Mêmes Conditions.

http://creativecommons.fr/licences

71 Institut Mines-Télécom Openstack -Installation

Vous aimerez peut-être aussi