Vous êtes sur la page 1sur 75

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

Vous aimerez peut-être aussi