M211 - Implémenter un environnement Cloud
avec une solution libre
Introduction à
Openstack
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
Mettre en service OpenStack
Explorer les services de base d’OpenStack
Explorer les services avancés d’OpenStack
Déployer des services d’OpenStack
2 ID Cloud Computing Introduction à
Openstack
Sommaire de module
Mettre en service OpenStack
Explorer les services de base d’OpenStack
Explorer les services avancés d’OpenStack
Déployer des services d’OpenStack
3 ID Cloud Computing Introduction à
Openstack
Plan
Introduction à Openstack
Définitions
L’écosystème OpenStack
L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
Premiers pas
4 ID Cloud Computing Introduction à
Openstack
Introduction
5 ID Cloud Computing Introduction à
Openstack
Les produits de cloud propriétaires
Introduction
à
ID Cloud Computing 9
Openstack
Les produits de cloud propriétaires
Introduction
à
ID Cloud Computing 9
Openstack
► Définitions
L’écosystème OpenStack
L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
Premiers pas
8 ID Cloud Computing 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 est un système d'exploitation cloud qui contrôle de
grands pools de ressources de calcul, de stockage et de mise en
réseau dans un centre de données, le tout géré via un tableau de
bord qui donne aux administrateurs le contrôle tout en
permettant à leurs utilisateurs de provisionner des ressources via
une interface Web.
9 ID Cloud Computing Introduction à
Openstack
Framework Iaas Modulaire
OpenStack est avant tout un "framework cloud modulaire"
permettant l’implémentation d’une infrastructure IT
scalable :
Framework
• Ensemble de composants logiciels
• Bases d'une infrastructure IT
Cloud (IaaS)
• Infrastructure libre service, à la demande
Modulaire
• un ensemble de modules, pas tous nécessaires
• chaque module peut être configuré en fonction de besoins
• chaque module peut-être étendu (drivers)
1 ID Cloud Computing Introduction à
0 Openstack
Définitions
► L’écosystème OpenStack
L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
Premiers pas
1 ID Cloud Computing Introduction à
1 Openstack
Définitions
L’écosystème OpenStack
► Historique
Gouvernance
Communauté
Packaging
Développemen
t
L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
Premiers pas
1 ID Cloud Computing Introduction à
2 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
à
ID Cloud Computing 9
Openstack
Cycle de vie des versions
2 releases annuelles,
1 version « stable, »
2 versions « supportées »
2018 2019 2020 2021 2022
18 fev. 10 Avr. 13 Mai. 14 Avr. 30 Mai.
Queens Stein Ussuri Wallaby Yoga
30 aout 30 aout 16 Oct. 14 Oct. 6 Oct. 5 Oct.
Pike Rocky Train Victoria Xena Zed
https://www.objectif-libre.com/fr/
14 ID Cloud Computing Introduction à
Openstack
Releases Timeline
https://releases.openstack.org/
15 ID Cloud Computing Introduction à
Openstack
Définitions
L’écosystème OpenStack
Historique
► Gouvernance
Communauté
Packaging
Développemen
t
L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
16 ID Cloud Computing Premiers pas 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
17 ID Cloud Computing Introduction à
Openstack
OpenStack Nation
“définir et superviser la “assure la supervision “représentent un large
direction technique stratégique et financière éventail d'utilisateurs
d'OpenStack” des ressources et du d'entreprises, d'universités
personnel de la Fondation”. et de fournisseurs de
services”
https://www.openstack.org/foundation/
18 ID Cloud Computing 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
19 ID Cloud Computing Introduction à
Openstack
Définitions
L’écosystème OpenStack
Historique
G ouvernance
► Communauté
Packaging
Développement
L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
Premiers pas
20 ID Cloud Computing 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/
21 ID Cloud Computing 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/
22 ID Cloud Computing Introduction à
Openstack
Définitions
L’écosystème OpenStack
Historique
G ouvernance
► C ommunaut
é
Packaging
Développem
ent
L’architecture
23 ID Cloud Computing
Les sous-Projets Introduction à
Les Grands Principes d’utilisation
Openstack
Premiers pas
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
24 ID Cloud Computing 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 : R HOS
• le cycle de release de Fedora est synchronisé
avec celui d’OpenStack
StackOps
Mirantis
HP, Nokia, Ericsson, …
https://www.openstack.org/marketplace/distros/
25 ID Cloud Computing Introduction à
Openstack
Définitions
L’écosystème OpenStack
Historique
G ouvernance
C ommunaut
► é Packaging
Développe
ment
L’architecture
Les sous-Projets
26 ID Cloud Computing Les Grands Principes d’utilisation
Introduction à
Openstack
Premiers pas
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) + G it (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
27 ID Cloud Computing 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
28 ID Cloud Computing Introduction à
Openstack
Statistiques company contributions
http://stackalytics.com/?release=train
29 ID Cloud Computing Introduction à
Openstack
Statistiques Modules contributions
http://stackalytics.com/?release=train
30 ID Cloud Computing Introduction à
Openstack
Stackforge
Un forum pour les projets relatifs à OpenStack
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
31 ID Cloud Computing Introduction à
Openstack
Définitions
L’écosystème OpenStack
► L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
Premiers pas
32 ID Cloud Computing Introduction à
Openstack
Principes de conception
1. L'évolutivité et l'élasticité sont nos principaux objectifsToute
fonctionnalité qui limite nos objectifs principaux doit être facultative
2. Tout doit être asynchrone (si vous ne pouvez pas faire quelque chose
de manière asynchrone, voir #2)
3. Tous les composants requis doivent être évolutifs horizontalement
4. Utilisez toujours "l'architecture sans partage (SN)" ou le "sharding" (si
vous ne pouvez rien partager/fragment, voir #2)
5. Distribuez tout (en particulier la logique. Déplacez la logique là où l'état
existe naturellement)
6. Acceptez la « cohérence éventuelle » et utilisez-la là où elle est
appropriée.
7. Testez tout. Nous avons besoin de tests avec le code soumis
33 ID Cloud Computing 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)
34 ID Cloud Computing 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
35 ID Cloud Computing Introduction à
Openstack
Composants principaux
Composants Individuels et autonomes
36 ID Cloud Computing Introduction à
Openstack
Aperçu : pour un utilisateur
37 ID Cloud Computing Introduction à
Openstack
Ce que ça cache …
http://docs.openstack.org/ops-guide/architecture.html
38 ID Cloud Computing Introduction à
Openstack
Zoom …
Introduction
à
ID Cloud Computing 35
Openstack
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
40 ID Cloud Computing Introduction à
Openstack
Définitions
L’écosystème OpenStack
L’architecture
► Les sous-Projets
Les Grands Principes
d’utilisation
Premiers pas
41 ID Cloud Computing 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
42 ID Cloud Computing Introduction à
Openstack
Les sous-projets « Core »
Indispensables :
• Gestion/execution des instances (Compute) :
Nova
• Authentification, Autorisations (Identity S ervice) :
Keystone
• C atalogue de services : Keystone
• Registre d’images (Image Service) : Glance
• R éseau (Networking) : Neutron
Stockage :
• S tockage block (Block S torage) : Cinder
• S tockage objet (Object S torage ) : Swift
43 ID Cloud Computing Introduction à
Openstack
Sous-projets « Big Tent »
Suivi / management
• C onsole 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
...
44 ID Cloud Computing Introduction à
Openstack
« Big Tent » et « Core
»
45 ID Cloud Computing Introduction à
Openstack
Panorama des composants d’OpenStack
https://www.openstack.org/software/
46 ID Cloud Computing Introduction à
Openstack
Evolution
https://fr.wikipedia.org/wiki/OpenStack
47 ID Cloud Computing Introduction à
Openstack
Evolution : accélération …
https://fr.wikipedia.org/wiki/OpenStack
48 ID Cloud Computing Introduction à
Openstack
Evolution : accélération …
https://fr.wikipedia.org/wiki/OpenStack
49 ID Cloud Computing Introduction à
Openstack
Maturité / Statistiques
https://www.openstack.org/software/project-navigator
50 ID Cloud Computing Introduction à
Openstack
CORRESPONDANCE OPENSTACK - AWS
51 ID Cloud Computing 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
…
52 ID Cloud Computing 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
53 ID Cloud Computing 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
54 ID Cloud Computing 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
55 ID Cloud Computing 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 S ervice Amazon)
• Ceph
56 ID Cloud Computing Introduction à
Openstack
Neutron (Network)
Virtualisation du réseau
API Unifiée, pour piloter plusieurs architectures
réseau :
• Linux Bridge,
• OpenVSwitch
• S DN (S oftware-Defined Network) : OpenC ontrail,
OpenDaylight, Cisco Nexus1000, VmWare NSX, …
57 ID Cloud Computing Introduction à
Openstack
Horizon (dashboard)
Interface web
Fournit une interface graphique pour gérer les
ressources
Permet de surveiller l’utilisation des
ressources
58 ID Cloud Computing 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
59 ID Cloud Computing Introduction à
Openstack
Définitions
L’écosystème OpenStack
L’architecture
Les sous-Projets
► Les Grands Principes
d’utilisation
Premiers pas
60 ID Cloud Computing 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
61 ID Cloud Computing 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.
62 ID Cloud Computing C loud 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
63 ID Cloud Computing C loud 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
64 ID Cloud Computing C loud 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é.
65 ID Cloud Computing C loud 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.
66 ID Cloud Computing C loud 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.
67 ID Cloud Computing C loud 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.
68 ID Cloud Computing C loud 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.
69 ID Cloud Computing C loud et Openstack -
Introduction
Définitions
L’écosystème OpenStack
L’architecture
Les sous-Projets
Les Grands Principes
d’utilisation
► Premiers pas
70 ID Cloud Computing Introduction à
Openstack
La console : Horizon
71 ID Cloud Computing 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)
72 ID Cloud Computing 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
73 ID Cloud Computing 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/
74 ID Cloud Computing 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, …)
75 ID Cloud Computing Introduction à
Openstack