Formation OpenStack 
July 7, 2014 
Formation OpenStack July 7, 2014 1 / 194
Concernant ces supports de cours 
Supports de cours OpenStack realises par Osones (https://osones.com/) 
Auteurs : 
Adrien...
Objectifs de la formation : Cloud 
Comprendre les principes du cloud et son inter^et 
Connaitre le vocabulaire inherent au...
Objectifs de la formation : OpenStack 
Connaitre le fonctionnement du projet OpenStack et ses possibilites 
Comprendre le ...
guration 
Savoir deployer manuellement un cloud OpenStack pour fournir de 
l'IaaS 
Connaitre les bonnes pratiques de deplo...
Pre-requis de la formation 
Competences d'administration systeme Linux tel qu'Ubuntu 
I Gestion des paquets 
I LVM et syst...
chiers 
Notions de virtualisation, KVM et libvirt 
Peut servir : 
I A 
l'aise dans un environnement Python 
Formation Open...
Plan 
1 Le Cloud : vue d'ensemble 
2 OpenStack : projet, logiciel et utilisation 
3 Deployer OpenStack 
4 Tirer partie de ...
Plan 
1 Le Cloud : vue d'ensemble 
Le Cloud : les concepts 
PaaS : Platform as a Service 
IaaS : Infrastructure as a Servi...
Plan 
1 Le Cloud : vue d'ensemble 
Le Cloud : les concepts 
PaaS : Platform as a Service 
IaaS : Infrastructure as a Servi...
Le cloud, c'est large ! 
Stockage/calcul distant (on oublie, cf. externalisation) 
Virtualisation++ 
Abstraction du materi...
WaaS : Whatever as a Service 
Principalement 
IaaS Infrastructure as a Service 
PaaS Platform as a Service 
SaaS Software ...
Cloud public ou cloud prive ? 
Public fourni par un hebergeur a des clients (AWS, Rackspace Cloud, 
etc.) 
Prive plateform...
Le cloud en un schema 
Formation OpenStack July 7, 2014 12 / 194
Pourquoi du cloud ? C^ote business 
Baisse des co^uts par la mutualisation des ressources 
Utilisation uniquement des ress...
Pourquoi du cloud ? C^ote technique 
Abstraction des couches plus basses 
On peut tout programmer a son gre 
Permet la mis...
Plan 
1 Le Cloud : vue d'ensemble 
Le Cloud : les concepts 
PaaS : Platform as a Service 
IaaS : Infrastructure as a Servi...
PaaS : les principes 
Fourniture d'une plateforme de developpement 
Fourniture d'une plateforme de deploiement 
Pour un la...
Exemples de PaaS publics 
Amazon OpsWork / Elastic Beanstalk 
Google App Engine 
Heroku 
Formation OpenStack July 7, 2014 ...
Solutions de PaaS prive 
Cloud Foundry 
OpenShift (Red Hat) 
Solum 
Formation OpenStack July 7, 2014 18 / 194
Plan 
1 Le Cloud : vue d'ensemble 
Le Cloud : les concepts 
PaaS : Platform as a Service 
IaaS : Infrastructure as a Servi...
Amazon Web Services (AWS) et les autres 
Service (cloud public) : AWS 
I Pionnier du genre (des 2002) 
I Elastic Compute C...
Les clouds publics concurrents d'AWS 
Google Compute Platform 
Rackspace 
HP Cloud 
En France 
I Cloudwatt 
I Numergy 
For...
Virtualisation dans le cloud 
Le cloud IaaS repose souvent sur la virtualisation 
Ressources compute   virtualisation 
Vir...
Notions et vocabulaire IaaS 
Images 
Instances 
Types d'instance (
avors) 
Volumes 
Stockage block 
Stockage objet 
IP 
ot...
Notions et vocabulaire IaaS 
L'instance est par de
nition ephemere 
Elle doit ^etre utilisee comme ressource de calcul 
Une image se personnalise lors de son instanciation g...
A 
retenir 
Virtualisation6= IaaS 
Formation OpenStack July 7, 2014 25 / 194
AWS 
Regardons l'interface web d'Amazon 
Formation OpenStack July 7, 2014 26 / 194
Plan 
1 Le Cloud : vue d'ensemble 
Le Cloud : les concepts 
PaaS : Platform as a Service 
IaaS : Infrastructure as a Servi...
Stockage block 
Acces a des raw devices type /dev/vdb 
Possibilite d'utiliser n'importe quel systeme de
chiers 
Compatible avec toutes les applications legacy 
Formation OpenStack July 7, 2014 28 / 194
Stockage objet 
Pousser et retirer des objets dans un container/bucket 
Pas de hierarchie des donnees, pas de systeme de
chiers 
Acces par les APIs 
L'application doit ^etre concue pour tirer partie du stockage objet 
Formation OpenStack July ...
Stockage objet : schema 
Formation OpenStack July 7, 2014 30 / 194
SDS : Software De
ned Storage 
Utilisation de commodity hardware 
Pas de RAID materiel 
Le logiciel est responsable de garantir les donnees ...
Deux solutions : OpenStack Swift et Ceph 
Swift fait partie du projet OpenStack et fournit du stockage objet 
Ceph fournit...
Theoreme CAP 
Formation OpenStack July 7, 2014 33 / 194
Swift 
Swift est un projet OpenStack 
Le projet est ne chez Rackspace avant la creation d'OpenStack 
Swift est en producti...
Ceph 
Projet totalement parallele a OpenStack 
Supporte par une entreprise (Inktank) recemment rachetee par Red Hat 
Fourn...
chiers POSIX 
Formation OpenStack July 7, 2014 35 / 194
Plan 
1 Le Cloud : vue d'ensemble 
Le Cloud : les concepts 
PaaS : Platform as a Service 
IaaS : Infrastructure as a Servi...
Pourquoi orchestrer 
De
nir tout une infrastructure dans un seul
chier texte 
^Etre en capacite d'instancier une infrastructure entiere en un appel API 
Adapter ses ressources en fonction...
Plan 
1 Le Cloud : vue d'ensemble 
Le Cloud : les concepts 
PaaS : Platform as a Service 
IaaS : Infrastructure as a Servi...
API ? 
Application Programming Interface 
Au sens logiciel : Interface permettant a un logiciel d'utiliser une 
bibliotheq...
Exemple concret 
GET /v2.0/networks/network_id 
{ 
network:{ 
status:ACTIVE, 
subnets:[ 
54d6f61d-db07-451c-9ab3-b9609b6b6...
Plan 
1 Le Cloud : vue d'ensemble 
2 OpenStack : projet, logiciel et utilisation 
Presentation du projet et du logiciel 
D...
Plan 
1 Le Cloud : vue d'ensemble 
2 OpenStack : projet, logiciel et utilisation 
Presentation du projet et du logiciel 
D...
Vue haut niveau 
Your Applications 
APIs 
Networking 
OPENSTACK 
CLOUD OPERATING SYSTEM 
Compute Storage 
Standard Hardwar...
Historique 
Demarrage en 2010 
Objectif : le Cloud Operating System libre 
Fusion de deux projets de Rackspace (Storage) e...
Quelques soutiens/contributeurs ... 
Rackspace et la NASA 
Canonical 
Red Hat 
Suse 
HP 
IBM 
Dell, Intel 
Cisco, Juniper ...
... et utilisateurs 
Tous les contributeurs precedemment cites 
En France : CloudWatt et Numergy 
Wikimedia 
CERN 
Paypal ...
dentielles 
http://www.openstack.org/user-stories/ 
Formation OpenStack July 7, 2014 46 / 194
Les dierents sous-projets 
OpenStack Compute - Nova 
OpenStack (Object) Storage - Swift 
OpenStack Block Storage - Cinder ...
Les dierents sous-projets (2) 
Incubating (a jour Icehouse) 
I Bare metal (Ironic) 
I Queue service (Marconi) 
I Data proc...
Cycle de vie des projets au sein d'OpenStack 
Greater OpenStack Ecosystem 
16 
Integrated Release 
Incubated Projects 
Gra...
Les projets dans Icehouse 
Greater OpenStack Ecosystem : Icehouse Release (April 2014) 
Integrated Release 
Incubated Proj...
Nouveautes de Icehouse 
Nova : rolling upgrades 
Nouvelles fonctionnalites disponibles dans Horizon 
Nouveaux drivers dans...
Traduction 
La question de la traduction est dorenavant prise en compte 
Seules certaines parties sont traduites, comme Ho...
Developpement du projet 
Open Source 
Open Design 
Open Development 
Open Community 
Formation OpenStack July 7, 2014 53 /...
Developpement du projet : en details 
Ouvert a tous (individuels et entreprises) 
Cycle de developpement de 6 mois debute ...
La fondation OpenStack 
Entite de gouvernance principale du projet 
Les membres du board sont issus des entreprises sponso...
La fondation OpenStack 
Formation OpenStack July 7, 2014 56 / 194
Cycle de developpement : 6 mois 
Le planning est publie, exemple : https: 
//wiki.openstack.org/wiki/Icehouse_Release_Sche...
Ou trouver des informations sur le developpement 
d'OpenStack 
Principalement sur le wiki : https://wiki.openstack.org 
Le...
Stackforge 
Forge pour les nouveaux projets en lien avec OpenStack 
Ils bene
cient de l'infrastructure du projet OpenStack, mais la 
separation reste claire 
Les projets demarrent dans Stackforge et ...
OpenStack Summit 
Aux USA jusqu'en 2013 
Aujourd'hui : alternance USA et Asie/Europe 
Quelques centaines au debut a 4500 d...
Exemple du Summit d'avril 2013 a Portland 
Formation OpenStack July 7, 2014 61 / 194
Exemple du Summit de mai 2014 a Atlanta 
Formation OpenStack July 7, 2014 62 / 194
Exemple du Summit de mai 2014 a Atlanta 
Formation OpenStack July 7, 2014 63 / 194
Design Tenets 
1 Scalability and elasticity are our main goals 
2 Any feature that limits our main goals must be optional ...
Implementation 
Chaque sous-projet est decoupe en plusieurs services 
Communication entre les services : AMQP (RabbitMQ) 
...
Multi-tenant 
Notion generale : un deploiement du logiciel permet de multiples 
utilisations 
Un cloud OpenStack permet au...
Architecture 
Formation OpenStack July 7, 2014 67 / 194
Interface web / Dashboard : Horizon 
Formation OpenStack July 7, 2014 68 / 194
Ressources 
http://docs.openstack.org/ 
https://ask.openstack.org 
openstack@lists.openstack.org 
#openstack@Freenode 
htt...
Plan 
1 Le Cloud : vue d'ensemble 
2 OpenStack : projet, logiciel et utilisation 
Presentation du projet et du logiciel 
D...
Utilite de DevStack 
Deployer rapidement un OpenStack 
Utilise par les developpeurs pour tester leurs changements 
Utilise...
Fonctionnement de DevStack 
Un script shell qui fait tout le travail : stack.sh 
Un
chier de con
guration : local.conf 
Installe toute les dependances necessaires (paquets) 
Clone les dep^ots git (branche master par def...
Con
guration : local.conf 
Exemple 
[[local|localrc]] 
ADMIN_PASSWORD=secrete 
DATABASE_PASSWORD=$ADMIN_PASSWORD 
RABBIT_PASSW...
Conseils d'utilisation 
DevStack installe beaucoup de choses sur la machine 
Il est recommande de travailler dans une VM 
...
Plan 
1 Le Cloud : vue d'ensemble 
2 OpenStack : projet, logiciel et utilisation 
Presentation du projet et du logiciel 
D...
Le principe 
Toutes les fonctionnalites sont accessibles par l'API 
Les clients (y compris Horizon) utilisent l'API 
Des c...
Acces aux APIs 
Direct, en HTTP, via des outils comme curl 
Avec une bibliotheque 
I Les implementations ocielles en Pytho...
Clients ociels 
Le projet fournit des clients ociels : python-PROJETclient 
Bibliotheques Python 
Outils CLI 
I L'authenti
cation se fait en passant les credentials par parametres ou 
variables d'environnement 
I L'option {debug ache la communic...
Plan 
1 Le Cloud : vue d'ensemble 
2 OpenStack : projet, logiciel et utilisation 
3 Deployer OpenStack 
Les briques necess...
cation, autorisation et catalogue de services 
Nova : Compute 
Glance : Registre d'images 
Neutron : Reseau en tant que se...
Ce qu'on va voir 
Installer OpenStack a la main http://docs.openstack.org/ 
icehouse/install-guide/install/apt/content/ 
D...
Architecture detaillee 
Formation OpenStack July 7, 2014 81 / 194
Quelques elements de con
guration generaux 
Tous les composants doivent ^etre con
gures pour communiquer avec 
Keystone 
La plupart doivent ^etre con
gures pour communiquer avec MySQL et 
RabbitMQ 
Les composants decoupes en plusieurs services ont souvent un
chier 
de con
guration par service 
api-paste.ini contient des parametres concernant le service API 
Formation OpenStack July 7, 2014 82...
Plan 
1 Le Cloud : vue d'ensemble 
2 OpenStack : projet, logiciel et utilisation 
3 Deployer OpenStack 
Les briques necess...
cation, autorisation et catalogue de services 
Nova : Compute 
Glance : Registre d'images 
Neutron : Reseau en tant que se...
Systeme d'exploitation 
OS Linux avec Python 
Historiquement : Ubuntu 
Red Hat s'est largement rattrape 
SUSE, etc. 
Forma...
Python 
OpenStack est aujourd'hui compatible Python 2.7 
A
n de ne pas reinventer la roue, beaucoup de dependances sont 
necessaires 
Un travail de portage vers Python 3 est en cour...
Base de donnees 
Permet de stocker la majorite des donnees gerees par OpenStack 
Chaque composant a sa propre base 
OpenSt...
Pourquoi l'utilisation de SQLAlchemy 
Support de multiples BDD 
Gestion des migrations 
Formation OpenStack July 7, 2014 8...
Passage de messages 
AMQP : Advanced Message Queuing Protocol 
Messages,
le d'attente, routage 
Les processus OpenStack communiquent via AMQP 
Plusieurs implementations possibles : Qpid, 0MQ, etc...
RabbitMQ 
RabbitMQ est implemente en Erlang 
Une machine virtuelle Erlang est donc necessaire 
Formation OpenStack July 7,...
Hello world RabbitMQ 
Formation OpenStack July 7, 2014 90 / 194
Plan 
1 Le Cloud : vue d'ensemble 
2 OpenStack : projet, logiciel et utilisation 
3 Deployer OpenStack 
Les briques necess...
cation, autorisation et catalogue de services 
Nova : Compute 
Glance : Registre d'images 
Neutron : Reseau en tant que se...
Principes 
Annuaire des utilisateurs et des groupes 
Catalogue de services 
Gere l'authenti
cation et l'autorisation 
Support des domaines dans l'API v3 
Fournit un token a l'utilisateur 
Formation OpenStack July 7...
API 
API admin : port 35357 
API utilisateur : port 5000 
Deux versions : v2 (actuelle) et v3 (future) 
Gere utilisateurs,...
Scenario d'utilisation typique 
Formation OpenStack July 7, 2014 94 / 194
Installation et con
guration 
Paquet : keystone 
Con
guration d'un token ADMIN pour la con
guration initiale 
Backends : choix de SQL ou LDAP (ou AD) 
Con
gurer les dierents services 
Policy.json 
Services et endpoints 
Utilisateurs, groupes, domaines 
Formation OpenStack July...
Enregistrer un service et son endpoint 
Il faut renseigner l'existence des dierents services (catalogue) dans 
Keystone : ...
Tester 
$ keystone service-list 
... 
$ keystone user-list 
... 
$ keystone token-get 
... 
Formation OpenStack July 7, 20...
Plan 
1 Le Cloud : vue d'ensemble 
2 OpenStack : projet, logiciel et utilisation 
3 Deployer OpenStack 
Les briques necess...
cation, autorisation et catalogue de services 
Nova : Compute 
Glance : Registre d'images 
Neutron : Reseau en tant que se...
Principes 
Gere les instances 
IP 
ottantes, groupes de securite 
Les instances sont creees a partir des images fournies p...
Interactions avec les autres composants 
Formation OpenStack July 7, 2014 100 / 194
API 
Gere : 
Instances 
Flavors (types d'instance) 
Security Groups (groupes de securite) 
Floating IPs (IPs 
ottantes) 
L...
Les groupes de securite 
Equivalent a un
rewall devant chaque instance 
Une instance peut ^etre associee a un ou plusieurs groupes de securite 
Gestion des acces e...
R^ole des 
avors 
Equivalent des instance types d'AWS 
De
nit un modele d'instance en termes de CPU, RAM, disque 
Formation OpenStack July 7, 2014 103 / 194
Nova api 
Double r^ole 
API de manipulation des instances par l'utilisateur 
API a destination des instances : API de meta...
guration 
personnalisees a chacune des instances 
Formation OpenStack July 7, 2014 104 / 194
Nova compute 
Execute les machines virtuelles 
Tire partie de libvirt ou d'autres APIs comme XenAPI 
Drivers : libvirt, Xe...
Nova scheduler 
Service qui distribue les demandes d'instances sur les noeuds compute 
Filter, Chance, Multi Scheduler 
Fi...
Le scheduler Nova en action 
Formation OpenStack July 7, 2014 107 / 194
Nova conductor 
Service facultatif qui ameliore la securite 
Fait oce de proxy entre les noeuds compute et la BDD 
Les noe...
Tester 
$ nova list 
... 
$ nova create 
... 
Formation OpenStack July 7, 2014 109 / 194
Plan 
1 Le Cloud : vue d'ensemble 
2 OpenStack : projet, logiciel et utilisation 
3 Deployer OpenStack 
Les briques necess...
cation, autorisation et catalogue de services 
Nova : Compute 
Glance : Registre d'images 
Neutron : Reseau en tant que se...
Principes 
Registre d'images (et des snapshots) 
Proprietes sur les images 
Est utilise par Nova pour demarrer des instanc...
Proprietes des images dans Glance 
L'utilisateur peut de
nir un certain nombre de proprietes dont certaines 
seront utilisees lors de l'instanciation 
Type d'image 
Architecture 
...
Types d'images 
Glance supporte un large eventail de types d'images, limite par le support de 
l'hyperviseur sous-jacent a...
Backends 
Swift ou S3 
Ceph 
HTTP 
Repertoire local 
Formation OpenStack July 7, 2014 114 / 194
Installation 
Paquet glance-api : fournit l'API 
Paquet glance-registry : demon du registre d'images en tant que tel 
Form...
Tester 
$ glance image-list 
... 
$ glance image-create 
... 
Formation OpenStack July 7, 2014 116 / 194
Plan 
1 Le Cloud : vue d'ensemble 
2 OpenStack : projet, logiciel et utilisation 
3 Deployer OpenStack 
Les briques necess...
cation, autorisation et catalogue de services 
Nova : Compute 
Glance : Registre d'images 
Neutron : Reseau en tant que se...
Principes 
SDN 
Auparavant Quantum et nova-network 
neutron-server : fournit l'API 
Agent DHCP : fournit le service de DHC...
Fonctionnalites supplementaires 
Outre les fonctions reseau de base niveaux 2 et 3, Neutron peut fournir 
d'autres service...
API 
L'API permet notamment de manipuler ces ressources 
Reseau : niveau 2 
Subnet : niveau 3 
Port 
Les ports peuvent cor...
Plugins ML2 
Modular Layer 2 
OpenVSwitch 
OpenDaylight 
Contrail, OpenContrail 
Nuage Networks 
cf. OpenFlow 
Formation O...
Implementation 
Neutron tire partie des namespaces reseaux du noyau Linux pour 
permettre l'IP overlapping 
Le proxy de me...
Schema 
Formation OpenStack July 7, 2014 123 / 194
Plan 
1 Le Cloud : vue d'ensemble 
2 OpenStack : projet, logiciel et utilisation 
3 Deployer OpenStack 
Les briques necess...
cation, autorisation et catalogue de services 
Nova : Compute 
Glance : Registre d'images 
Neutron : Reseau en tant que se...
Principes 
Auparavant nova-volume 
Fournit des volumes (stockage block) attachables aux instances 
Gere dierents types de ...
Du stockage partage ? 
Cinder n'est pas une solution de stockage partage comme NFS 
OpenStack (tout comme AWS) ne fournit ...
Utilisation 
Volume supplementaire (et stockage persistant) sur une instance 
Boot from volume : l'OS est sur le volume 
F...
Installation 
Paquet cinder-api : fournit l'API 
Paquet cinder-volume : creation et gestion des volumes 
Paquet cinder-sch...
Backends 
Utilisation de plusieurs backends en parallele possible 
LVM (par defaut) 
GlusterFS 
Ceph 
Systemes de stockage...
Plan 
1 Le Cloud : vue d'ensemble 
2 OpenStack : projet, logiciel et utilisation 
3 Deployer OpenStack 
Les briques necess...
cation, autorisation et catalogue de services 
Nova : Compute 
Glance : Registre d'images 
Neutron : Reseau en tant que se...
Principes 
Utilise les APIs existantes pour fournir une interface 
Horizon est un module Django 
OpenStack Dashboard est l...
Con
guration 
local settings.py 
Les services apparaissent dans Horizon s'ils sont repertories dans le 
catalogue de services ...
Utilisation 
Une zone admin restreinte 
Une interface par tenant 
Formation OpenStack July 7, 2014 133 / 194
Plan 
1 Le Cloud : vue d'ensemble 
2 OpenStack : projet, logiciel et utilisation 
3 Deployer OpenStack 
Les briques necess...
cation, autorisation et catalogue de services 
Nova : Compute 
Glance : Registre d'images 
Neutron : Reseau en tant que se...
Principes 
SDS : Software De
ned Storage 
Utilisation de commodity hardware 
Theoreme CAP : on en choisit deux 
Acces par les APIs 
Architecture totale...
Implementation 
Proxy : serveur API par lequel passent toutes les requ^etes 
Object server : serveur de stockage 
Containe...
Le ring 
Probleme : comment decider quelle donnee va sur quel object server 
Le ring est decoupe en partitions 
On situe c...
n de determiner sa partition 
Une partition est associee a plusieurs serveurs 
Formation OpenStack July 7, 2014 137 / 194
Schema 
Formation OpenStack July 7, 2014 138 / 194
Plan 
1 Le Cloud : vue d'ensemble 
2 OpenStack : projet, logiciel et utilisation 
3 Deployer OpenStack 
Les briques necess...
cation, autorisation et catalogue de services 
Nova : Compute 
Glance : Registre d'images 
Neutron : Reseau en tant que se...
Surveiller l'utilisation de son infrastructure avec Ceilometer 
Indexe dierentes metriques concernant l'utilisation des di...
Plan 
1 Le Cloud : vue d'ensemble 
2 OpenStack : projet, logiciel et utilisation 
3 Deployer OpenStack 
Les briques necess...
cation, autorisation et catalogue de services 
Nova : Compute 
Glance : Registre d'images 
Neutron : Reseau en tant que se...
Orchestrer son infrastructure avec Heat 
Equivalent d'Amazon Cloud Formation 
Orchestrer les ressources compute, storage, ...
chier template, format 
JSON (CFN) ou YAML (HOT) 
Formation OpenStack July 7, 2014 142 / 194
Autoscaling avec Heat 
Heat implemente la fonctionnalite d'autoscaling 
Se declenche en fonction des alarmes produites par...
Un template HOT 
heat_template_version: 2013-05-23 
description: Simple template to deploy a single compute instance 
reso...
Fonctionnalites avancees de Heat 
Nested stacks 
Environments 
Providers 
Formation OpenStack July 7, 2014 145 / 194
Plan 
1 Le Cloud : vue d'ensemble 
2 OpenStack : projet, logiciel et utilisation 
3 Deployer OpenStack 
Les briques necess...
cation, autorisation et catalogue de services 
Nova : Compute 
Glance : Registre d'images 
Neutron : Reseau en tant que se...
Principe 
Fournit des bases de donnees relationnelles, a la AWS RDS 
A vocation a supporter des bases NoSQL aussi 
Gere no...
Prochain SlideShare
Chargement dans…5
×

Formation libre OpenStack en Français

17 562 vues

Publié le

C'est avec un plaisir non dissimulé que nous libérons nos supports de formation OpenStack en Français. Ceux-ci, présentés sous forme de slides, ont été réalisés dans le cadre de nos activités de formation délivrées à nos clients.

Ils vous permettront de comprendre les enjeux liés au cloud IaaS (Infrastructure as a Service) puis d'installer et de piloter une infrastructure OpenStack, solution leader du marché.

Participants actifs à la communauté OpenStack francophone depuis sa création, nous espérons que cette dernière pourra réutiliser ces supports de formation.

> Des projets OpenStack ? Besoin de formations OpenStack intra- / inter- entreprise ?
Contactez-nous sur http://www.osones.com

Publié dans : Technologie

Formation libre OpenStack en Français

  1. 1. Formation OpenStack July 7, 2014 Formation OpenStack July 7, 2014 1 / 194
  2. 2. Concernant ces supports de cours Supports de cours OpenStack realises par Osones (https://osones.com/) Auteurs : Adrien Cunin adrien.cunin@osones.com Pierre Freund pierre.freund@osones.com Copyright c 2014 Osones Licence : Creative Commons BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/deed.fr Sources : https://github.com/Osones/OpenStack-Formations/ Formation OpenStack July 7, 2014 2 / 194
  3. 3. Objectifs de la formation : Cloud Comprendre les principes du cloud et son inter^et Connaitre le vocabulaire inherent au cloud Avoir une vue d'ensemble sur les solutions existantes en cloud public et prive Posseder les cles pour tirer partie au mieux de l'IaaS Pouvoir determiner ce qui est compatible avec la philosophie cloud ou pas Adapter ses methodes d'administration systeme a un environnement cloud Formation OpenStack July 7, 2014 3 / 194
  4. 4. Objectifs de la formation : OpenStack Connaitre le fonctionnement du projet OpenStack et ses possibilites Comprendre le fonctionnement de chacun des composants d'OpenStack Pouvoir faire les bons choix de con
  5. 5. guration Savoir deployer manuellement un cloud OpenStack pour fournir de l'IaaS Connaitre les bonnes pratiques de deploiement d'OpenStack ^Etre capable de determiner l'origine d'une erreur dans OpenStack Savoir reagir face a un bug Formation OpenStack July 7, 2014 4 / 194
  6. 6. Pre-requis de la formation Competences d'administration systeme Linux tel qu'Ubuntu I Gestion des paquets I LVM et systemes de
  7. 7. chiers Notions de virtualisation, KVM et libvirt Peut servir : I A l'aise dans un environnement Python Formation OpenStack July 7, 2014 5 / 194
  8. 8. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 6 / 194
  9. 9. Plan 1 Le Cloud : vue d'ensemble Le Cloud : les concepts PaaS : Platform as a Service IaaS : Infrastructure as a Service Stockage : block, objet, SDS Orchestrer les ressources de son IaaS APIs : quel r^ole ? 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 7 / 194
  10. 10. Plan 1 Le Cloud : vue d'ensemble Le Cloud : les concepts PaaS : Platform as a Service IaaS : Infrastructure as a Service Stockage : block, objet, SDS Orchestrer les ressources de son IaaS APIs : quel r^ole ? 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 8 / 194
  11. 11. Le cloud, c'est large ! Stockage/calcul distant (on oublie, cf. externalisation) Virtualisation++ Abstraction du materiel (voire plus) Acces normalise par des APIs Service et facturation a la demande Flexibilite, elasticite Formation OpenStack July 7, 2014 9 / 194
  12. 12. WaaS : Whatever as a Service Principalement IaaS Infrastructure as a Service PaaS Platform as a Service SaaS Software as a Service Mais aussi : I Database as a Service I Network as a Service I Load balancing as a Service I $APPLICATION as a Service Formation OpenStack July 7, 2014 10 / 194
  13. 13. Cloud public ou cloud prive ? Public fourni par un hebergeur a des clients (AWS, Rackspace Cloud, etc.) Prive plateforme et ressources internes Hybride utilisation de ressources publiques au sein d'un cloud prive Formation OpenStack July 7, 2014 11 / 194
  14. 14. Le cloud en un schema Formation OpenStack July 7, 2014 12 / 194
  15. 15. Pourquoi du cloud ? C^ote business Baisse des co^uts par la mutualisation des ressources Utilisation uniquement des ressources qui sont necessaires A grande echelle, garantie de service Formation OpenStack July 7, 2014 13 / 194
  16. 16. Pourquoi du cloud ? C^ote technique Abstraction des couches plus basses On peut tout programmer a son gre Permet la mise en place d'architectures scalables Formation OpenStack July 7, 2014 14 / 194
  17. 17. Plan 1 Le Cloud : vue d'ensemble Le Cloud : les concepts PaaS : Platform as a Service IaaS : Infrastructure as a Service Stockage : block, objet, SDS Orchestrer les ressources de son IaaS APIs : quel r^ole ? 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 15 / 194
  18. 18. PaaS : les principes Fourniture d'une plateforme de developpement Fourniture d'une plateforme de deploiement Pour un langage / un framework Principalement utilise par des developpeurs Formation OpenStack July 7, 2014 16 / 194
  19. 19. Exemples de PaaS publics Amazon OpsWork / Elastic Beanstalk Google App Engine Heroku Formation OpenStack July 7, 2014 17 / 194
  20. 20. Solutions de PaaS prive Cloud Foundry OpenShift (Red Hat) Solum Formation OpenStack July 7, 2014 18 / 194
  21. 21. Plan 1 Le Cloud : vue d'ensemble Le Cloud : les concepts PaaS : Platform as a Service IaaS : Infrastructure as a Service Stockage : block, objet, SDS Orchestrer les ressources de son IaaS APIs : quel r^ole ? 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 19 / 194
  22. 22. Amazon Web Services (AWS) et les autres Service (cloud public) : AWS I Pionnier du genre (des 2002) I Elastic Compute Cloud (EC2) I Elastic Block Storage (EBS) I Simple Storage Service (S3) Logiciels libres permettant le deploiement d'un cloud prive : I Eucalyptus I CloudStack I OpenNebula I OpenStack Formation OpenStack July 7, 2014 20 / 194
  23. 23. Les clouds publics concurrents d'AWS Google Compute Platform Rackspace HP Cloud En France I Cloudwatt I Numergy Formation OpenStack July 7, 2014 21 / 194
  24. 24. Virtualisation dans le cloud Le cloud IaaS repose souvent sur la virtualisation Ressources compute virtualisation Virtualisation complete : KVM, Xen Virtualisation containers : OpenVZ, LXC, Docker Formation OpenStack July 7, 2014 22 / 194
  25. 25. Notions et vocabulaire IaaS Images Instances Types d'instance ( avors) Volumes Stockage block Stockage objet IP ottantes/elastiques Groupes de securite Paires de cles API REST API de metadata et user data Cloud-init Formation OpenStack July 7, 2014 23 / 194
  26. 26. Notions et vocabulaire IaaS L'instance est par de
  27. 27. nition ephemere Elle doit ^etre utilisee comme ressource de calcul Une image se personnalise lors de son instanciation gr^ace a l'API de metadata Separer les donnees des instances Choix du type de stockage : ephemere, volume, objet Formation OpenStack July 7, 2014 24 / 194
  28. 28. A retenir Virtualisation6= IaaS Formation OpenStack July 7, 2014 25 / 194
  29. 29. AWS Regardons l'interface web d'Amazon Formation OpenStack July 7, 2014 26 / 194
  30. 30. Plan 1 Le Cloud : vue d'ensemble Le Cloud : les concepts PaaS : Platform as a Service IaaS : Infrastructure as a Service Stockage : block, objet, SDS Orchestrer les ressources de son IaaS APIs : quel r^ole ? 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 27 / 194
  31. 31. Stockage block Acces a des raw devices type /dev/vdb Possibilite d'utiliser n'importe quel systeme de
  32. 32. chiers Compatible avec toutes les applications legacy Formation OpenStack July 7, 2014 28 / 194
  33. 33. Stockage objet Pousser et retirer des objets dans un container/bucket Pas de hierarchie des donnees, pas de systeme de
  34. 34. chiers Acces par les APIs L'application doit ^etre concue pour tirer partie du stockage objet Formation OpenStack July 7, 2014 29 / 194
  35. 35. Stockage objet : schema Formation OpenStack July 7, 2014 30 / 194
  36. 36. SDS : Software De
  37. 37. ned Storage Utilisation de commodity hardware Pas de RAID materiel Le logiciel est responsable de garantir les donnees Formation OpenStack July 7, 2014 31 / 194
  38. 38. Deux solutions : OpenStack Swift et Ceph Swift fait partie du projet OpenStack et fournit du stockage objet Ceph fournit du stockage objet, block et FS Les deux sont du SDS Theoreme CAP : on en choisit deux Formation OpenStack July 7, 2014 32 / 194
  39. 39. Theoreme CAP Formation OpenStack July 7, 2014 33 / 194
  40. 40. Swift Swift est un projet OpenStack Le projet est ne chez Rackspace avant la creation d'OpenStack Swift est en production chez Rackspace depuis lors C'est le composant le plus mature d'OpenStack Formation OpenStack July 7, 2014 34 / 194
  41. 41. Ceph Projet totalement parallele a OpenStack Supporte par une entreprise (Inktank) recemment rachetee par Red Hat Fournit d'abord du stockage objet L'acces aux donnees se fait via RADOS : I Acces direct depuis une application avec librados I Acces via une API REST gr^ace a radosgw La couche RBD permet d'acceder aux donnees en mode block (volumes) CephFS permet un acces par un systeme de
  42. 42. chiers POSIX Formation OpenStack July 7, 2014 35 / 194
  43. 43. Plan 1 Le Cloud : vue d'ensemble Le Cloud : les concepts PaaS : Platform as a Service IaaS : Infrastructure as a Service Stockage : block, objet, SDS Orchestrer les ressources de son IaaS APIs : quel r^ole ? 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 36 / 194
  44. 44. Pourquoi orchestrer De
  45. 45. nir tout une infrastructure dans un seul
  46. 46. chier texte ^Etre en capacite d'instancier une infrastructure entiere en un appel API Adapter ses ressources en fonction de ses besoins en temps reel (autoscaling) Formation OpenStack July 7, 2014 37 / 194
  47. 47. Plan 1 Le Cloud : vue d'ensemble Le Cloud : les concepts PaaS : Platform as a Service IaaS : Infrastructure as a Service Stockage : block, objet, SDS Orchestrer les ressources de son IaaS APIs : quel r^ole ? 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 38 / 194
  48. 48. API ? Application Programming Interface Au sens logiciel : Interface permettant a un logiciel d'utiliser une bibliotheque Au sens cloud : Interface permettant a un logiciel d'utiliser un service (XaaS) Il s'agit le plus souvent d'API HTTP REST Formation OpenStack July 7, 2014 39 / 194
  49. 49. Exemple concret GET /v2.0/networks/network_id { network:{ status:ACTIVE, subnets:[ 54d6f61d-db07-451c-9ab3-b9609b6b6f0b ], name:private-network, provider:physical_network:null, admin_state_up:true, tenant_id:4fd44f30292945e481c7b8a0c8908869, provider:network_type:local, router:external:true, shared:true, id:d32019d3-bc6e-4319-9c1d-6722fc136a22, provider:segmentation_id:null } } Formation OpenStack July 7, 2014 40 / 194
  50. 50. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation Presentation du projet et du logiciel DevStack : faire tourner rapidement un OpenStack Utiliser OpenStack 3 Deployer OpenStack 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 41 / 194
  51. 51. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation Presentation du projet et du logiciel DevStack : faire tourner rapidement un OpenStack Utiliser OpenStack 3 Deployer OpenStack 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 42 / 194
  52. 52. Vue haut niveau Your Applications APIs Networking OPENSTACK CLOUD OPERATING SYSTEM Compute Storage Standard Hardware OpenStack Dashboard OpenStack Shared Services Formation OpenStack July 7, 2014 43 / 194
  53. 53. Historique Demarrage en 2010 Objectif : le Cloud Operating System libre Fusion de deux projets de Rackspace (Storage) et de la NASA (Compute) Developpe en Python et distribue sous licence Apache 2.0 Les releases jusqu'a aujourd'hui : I Austin (2010.1) I Bexar (2011.1) I Cactus (2011.2) I Diablo (2011.3) I Essex (2012.1) I Folsom (2012.2) I Grizzly (2013.1) I Havana (2013.2) I Icehouse (2014.1) I Novembre 2014 : Juno Formation OpenStack July 7, 2014 44 / 194
  54. 54. Quelques soutiens/contributeurs ... Rackspace et la NASA Canonical Red Hat Suse HP IBM Dell, Intel Cisco, Juniper NetApp, VMWare Yahoo, Bull Mais aussi : Mirantis, StackOps, eNovance http://www.openstack.org/foundation/companies/ Formation OpenStack July 7, 2014 45 / 194
  55. 55. ... et utilisateurs Tous les contributeurs precedemment cites En France : CloudWatt et Numergy Wikimedia CERN Paypal Comcast Etc. Sans compter les implementations con
  56. 56. dentielles http://www.openstack.org/user-stories/ Formation OpenStack July 7, 2014 46 / 194
  57. 57. Les dierents sous-projets OpenStack Compute - Nova OpenStack (Object) Storage - Swift OpenStack Block Storage - Cinder OpenStack Networking - Neutron OpenStack Image Service - Glance OpenStack Identity Service - Keystone OpenStack Dashboard - Horizon OpenStack Metering - Ceilometer OpenStack Orchestration - Heat OpenStack Database Service - Trove Formation OpenStack July 7, 2014 47 / 194
  58. 58. Les dierents sous-projets (2) Incubating (a jour Icehouse) I Bare metal (Ironic) I Queue service (Marconi) I Data processing (Sahara) Interessants I DNS service (Designate) Autres I Oslo I rootwrap : wrapper pour les commandes root utilise par les projets I TripleO I Tempest, Grenade I Les clients (python-*client) Formation OpenStack July 7, 2014 48 / 194
  59. 59. Cycle de vie des projets au sein d'OpenStack Greater OpenStack Ecosystem 16 Integrated Release Incubated Projects Graduation • The software is released every 6 months • Technical Committee managed + Release Manager PTLs • On the road to the integrated release • Typically takes 18­24 months before being approved for graduation • Approved for Incubation by the Technical Committee • More stringent requirements for incubation approved by TC Applied Accepted by TC • Wide range of related open source projects • Some may apply for incubation • Many will never apply. Supporting Programs Works with projects in greater Ecosystem Shared infrastructure and resources for OpenStack projects Formation OpenStack July 7, 2014 49 / 194
  60. 60. Les projets dans Icehouse Greater OpenStack Ecosystem : Icehouse Release (April 2014) Integrated Release Incubated Projects Bare Metal Messaging Data Processing New New Supporting Programs Compute Object Storage Block Storage Networking Dashboard Image Service Identity Service Telemetry Orchestration Database Service New Infrastructure | Docs | Common Libraries | QA | Release Mgmt Formation OpenStack July 7, 2014 50 / 194
  61. 61. Nouveautes de Icehouse Nova : rolling upgrades Nouvelles fonctionnalites disponibles dans Horizon Nouveaux drivers dans Neutron Nouveaux drivers dans Cinder Le nouveau format HOT est recommande pour les templates Heat etc. En details : https://wiki.openstack.org/wiki/ReleaseNotes/Icehouse Formation OpenStack July 7, 2014 51 / 194
  62. 62. Traduction La question de la traduction est dorenavant prise en compte Seules certaines parties sont traduites, comme Horizon La traduction francaise est aujourd'hui une des plus avancees Utilisation de la plateforme Transifex Formation OpenStack July 7, 2014 52 / 194
  63. 63. Developpement du projet Open Source Open Design Open Development Open Community Formation OpenStack July 7, 2014 53 / 194
  64. 64. Developpement du projet : en details Ouvert a tous (individuels et entreprises) Cycle de developpement de 6 mois debute par un (design) summit Outils : Launchpad (blueprints, bugs) + Git + GitHub (code) Sur chaque commit : peer review (Gerrit) + integration continue (execution de dierents tests par Jenkins) Plateforme de reference et modele de developpement : Ubuntu Developpement hyper actif : 17000 commits dans Icehouse (+25%) Fin 2012, creation d'une entite independante de gouvernance : la fondation OpenStack Formation OpenStack July 7, 2014 54 / 194
  65. 65. La fondation OpenStack Entite de gouvernance principale du projet Les membres du board sont issus des entreprises sponsors et elus par les membres individuels Tout le monde peut devenir membre individuel (gratuitement) La fondation supporte le projet par dierents moyens : I Evenements : organisation (Summits) ou participation (OSCON, etc.) I Infrastructure de developpement (serveurs) I Ressources humaines : marketing, release manager, quelques developpeurs (principalement sur l'infrastructure) 850 organisations a travers le monde 9500 membres individuels dans 100 pays Formation OpenStack July 7, 2014 55 / 194
  66. 66. La fondation OpenStack Formation OpenStack July 7, 2014 56 / 194
  67. 67. Cycle de developpement : 6 mois Le planning est publie, exemple : https: //wiki.openstack.org/wiki/Icehouse_Release_Schedule Milestone releases Freezes : FeatureProposal, Feature, String RC releases Stable releases Ce modele de cycle de developpement a evolue depuis le debut du projet Cas particulier de Swift Formation OpenStack July 7, 2014 57 / 194
  68. 68. Ou trouver des informations sur le developpement d'OpenStack Principalement sur le wiki : https://wiki.openstack.org Les blueprints et bugs sur Launchpad : https://launchpad.net/openstack Les patchs proposes et leurs reviews sont sur Gerrit : https://review.openstack.org Le code est disponible dans Git : https://git.openstack.org Les sources (tarballs) sont disponibles : http://tarballs.openstack.org/ Formation OpenStack July 7, 2014 58 / 194
  69. 69. Stackforge Forge pour les nouveaux projets en lien avec OpenStack Ils bene
  70. 70. cient de l'infrastructure du projet OpenStack, mais la separation reste claire Les projets demarrent dans Stackforge et peuvent ensuite rejoindre le projet OpenStack Formation OpenStack July 7, 2014 59 / 194
  71. 71. OpenStack Summit Aux USA jusqu'en 2013 Aujourd'hui : alternance USA et Asie/Europe Quelques centaines au debut a 4500 de participants aujourd'hui En parallele : conference (utilisateurs, decideurs) et Design Summit (developpeurs) Determine le nom de la release : lieu/ville a proximite du Summit Formation OpenStack July 7, 2014 60 / 194
  72. 72. Exemple du Summit d'avril 2013 a Portland Formation OpenStack July 7, 2014 61 / 194
  73. 73. Exemple du Summit de mai 2014 a Atlanta Formation OpenStack July 7, 2014 62 / 194
  74. 74. Exemple du Summit de mai 2014 a Atlanta Formation OpenStack July 7, 2014 63 / 194
  75. 75. 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. (We will help you if you need it) Formation OpenStack July 7, 2014 64 / 194
  76. 76. Implementation Chaque sous-projet est decoupe en plusieurs services Communication entre les services : AMQP (RabbitMQ) Base de donnees : MySQL Reutilisation de nombreux composants existants OpenVSwitch Tout est developpe en Python (Django pour Horizon) APIs supportees : OpenStack et equivalent Amazon Multi tenancy Formation OpenStack July 7, 2014 65 / 194
  77. 77. Multi-tenant Notion generale : un deploiement du logiciel permet de multiples utilisations Un cloud OpenStack permet aux utilisateurs de travailler dans des environnements isoles Les instances, reseaux, images, etc. sont associes a un tenant Certaines ressources peuvent ^etre partagees entre tenants (exemple : image publique) On peut aussi parler de projet Formation OpenStack July 7, 2014 66 / 194
  78. 78. Architecture Formation OpenStack July 7, 2014 67 / 194
  79. 79. Interface web / Dashboard : Horizon Formation OpenStack July 7, 2014 68 / 194
  80. 80. Ressources http://docs.openstack.org/ https://ask.openstack.org openstack@lists.openstack.org #openstack@Freenode http://api.openstack.org/ Communaute francaise : I http//openstack.fr/ I openstack-fr@lists.openstack.org I #openstack-fr@Freenode I Association Formation OpenStack July 7, 2014 69 / 194
  81. 81. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation Presentation du projet et du logiciel DevStack : faire tourner rapidement un OpenStack Utiliser OpenStack 3 Deployer OpenStack 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 70 / 194
  82. 82. Utilite de DevStack Deployer rapidement un OpenStack Utilise par les developpeurs pour tester leurs changements Utilise pour faire des demonstrations Utilise pour tester les APIs sans se preoccuper du deploiement Ne doit PAS ^etre utilise pour de la production Formation OpenStack July 7, 2014 71 / 194
  83. 83. Fonctionnement de DevStack Un script shell qui fait tout le travail : stack.sh Un
  84. 84. chier de con
  85. 85. guration : local.conf Installe toute les dependances necessaires (paquets) Clone les dep^ots git (branche master par defaut) Lance tous les composants dans un screen Formation OpenStack July 7, 2014 72 / 194
  86. 86. Con
  87. 87. guration : local.conf Exemple [[local|localrc]] ADMIN_PASSWORD=secrete DATABASE_PASSWORD=$ADMIN_PASSWORD RABBIT_PASSWORD=$ADMIN_PASSWORD SERVICE_PASSWORD=$ADMIN_PASSWORD SERVICE_TOKEN=a682f596-76f3-11e3-b3b2-e716f9080d50 #FIXED_RANGE=172.31.1.0/24 #FLOATING_RANGE=192.168.20.0/25 #HOST_IP=10.3.4.5 Formation OpenStack July 7, 2014 73 / 194
  88. 88. Conseils d'utilisation DevStack installe beaucoup de choses sur la machine Il est recommande de travailler dans une VM Pour tester tous les composants OpenStack dans de bonnes conditions, plusieurs Go de RAM sont necessaires L'utilisation de Vagrant est conseillee Formation OpenStack July 7, 2014 74 / 194
  89. 89. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation Presentation du projet et du logiciel DevStack : faire tourner rapidement un OpenStack Utiliser OpenStack 3 Deployer OpenStack 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 75 / 194
  90. 90. Le principe Toutes les fonctionnalites sont accessibles par l'API Les clients (y compris Horizon) utilisent l'API Des credentials sont necessaires I API OpenStack : utilisateur + mot de passe + tenant I API AWS : access key ID + secret access key Formation OpenStack July 7, 2014 76 / 194
  91. 91. Acces aux APIs Direct, en HTTP, via des outils comme curl Avec une bibliotheque I Les implementations ocielles en Python I D'autres implementations pour d'autres langages (exemple : jclouds) Avec les outils ociels en ligne de commande Avec Horizon Formation OpenStack July 7, 2014 77 / 194
  92. 92. Clients ociels Le projet fournit des clients ociels : python-PROJETclient Bibliotheques Python Outils CLI I L'authenti
  93. 93. cation se fait en passant les credentials par parametres ou variables d'environnement I L'option {debug ache la communication HTTP Formation OpenStack July 7, 2014 78 / 194
  94. 94. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack Les briques necessaires Keystone : Authenti
  95. 95. cation, autorisation et catalogue de services Nova : Compute Glance : Registre d'images Neutron : Reseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de metriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants interessants Bonnes pratiques pour un deploiement en production Faire face aux problemes 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 79 / 194
  96. 96. Ce qu'on va voir Installer OpenStack a la main http://docs.openstack.org/ icehouse/install-guide/install/apt/content/ Donc comprendre son fonctionnement Tour d'horizon des solutions de deploiement Formation OpenStack July 7, 2014 80 / 194
  97. 97. Architecture detaillee Formation OpenStack July 7, 2014 81 / 194
  98. 98. Quelques elements de con
  99. 99. guration generaux Tous les composants doivent ^etre con
  100. 100. gures pour communiquer avec Keystone La plupart doivent ^etre con
  101. 101. gures pour communiquer avec MySQL et RabbitMQ Les composants decoupes en plusieurs services ont souvent un
  102. 102. chier de con
  103. 103. guration par service api-paste.ini contient des parametres concernant le service API Formation OpenStack July 7, 2014 82 / 194
  104. 104. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack Les briques necessaires Keystone : Authenti
  105. 105. cation, autorisation et catalogue de services Nova : Compute Glance : Registre d'images Neutron : Reseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de metriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants interessants Bonnes pratiques pour un deploiement en production Faire face aux problemes 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 83 / 194
  106. 106. Systeme d'exploitation OS Linux avec Python Historiquement : Ubuntu Red Hat s'est largement rattrape SUSE, etc. Formation OpenStack July 7, 2014 84 / 194
  107. 107. Python OpenStack est aujourd'hui compatible Python 2.7 A
  108. 108. n de ne pas reinventer la roue, beaucoup de dependances sont necessaires Un travail de portage vers Python 3 est en cours Formation OpenStack July 7, 2014 85 / 194
  109. 109. Base de donnees Permet de stocker la majorite des donnees gerees par OpenStack Chaque composant a sa propre base OpenStack utilise l'ORM Python SQLAlchemy Support theorique equivalent a celui de SQLAlchemy MySQL est l'implementation la plus largement testee et utilisee SQLite est principalement utilise dans le cadre de tests et demo Certains deploiements fonctionnent avec PostgreSQL Formation OpenStack July 7, 2014 86 / 194
  110. 110. Pourquoi l'utilisation de SQLAlchemy Support de multiples BDD Gestion des migrations Formation OpenStack July 7, 2014 87 / 194
  111. 111. Passage de messages AMQP : Advanced Message Queuing Protocol Messages,
  112. 112. le d'attente, routage Les processus OpenStack communiquent via AMQP Plusieurs implementations possibles : Qpid, 0MQ, etc. RabbitMQ par defaut Formation OpenStack July 7, 2014 88 / 194
  113. 113. RabbitMQ RabbitMQ est implemente en Erlang Une machine virtuelle Erlang est donc necessaire Formation OpenStack July 7, 2014 89 / 194
  114. 114. Hello world RabbitMQ Formation OpenStack July 7, 2014 90 / 194
  115. 115. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack Les briques necessaires Keystone : Authenti
  116. 116. cation, autorisation et catalogue de services Nova : Compute Glance : Registre d'images Neutron : Reseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de metriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants interessants Bonnes pratiques pour un deploiement en production Faire face aux problemes 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 91 / 194
  117. 117. Principes Annuaire des utilisateurs et des groupes Catalogue de services Gere l'authenti
  118. 118. cation et l'autorisation Support des domaines dans l'API v3 Fournit un token a l'utilisateur Formation OpenStack July 7, 2014 92 / 194
  119. 119. API API admin : port 35357 API utilisateur : port 5000 Deux versions : v2 (actuelle) et v3 (future) Gere utilisateurs, groupes, domaines (APIv3) Les utilisateurs ont des r^oles sur des tenants (projets) Formation OpenStack July 7, 2014 93 / 194
  120. 120. Scenario d'utilisation typique Formation OpenStack July 7, 2014 94 / 194
  121. 121. Installation et con
  122. 122. guration Paquet : keystone Con
  123. 123. guration d'un token ADMIN pour la con
  124. 124. guration initiale Backends : choix de SQL ou LDAP (ou AD) Con
  125. 125. gurer les dierents services Policy.json Services et endpoints Utilisateurs, groupes, domaines Formation OpenStack July 7, 2014 95 / 194
  126. 126. Enregistrer un service et son endpoint Il faut renseigner l'existence des dierents services (catalogue) dans Keystone : $ keystone service-create --name=cinderv2 --type=volumev2 --description=Cinder Volume Service V2 $ keystone endpoint-create --region=myRegion --service-id=... --publicurl=http://controller:8776/v2/%(tenant_id)s --internalurl=http://controller:8776/v2/%(tenant_id)s --adminurl=http://controller:8776/v2/%(tenant_id)s Formation OpenStack July 7, 2014 96 / 194
  127. 127. Tester $ keystone service-list ... $ keystone user-list ... $ keystone token-get ... Formation OpenStack July 7, 2014 97 / 194
  128. 128. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack Les briques necessaires Keystone : Authenti
  129. 129. cation, autorisation et catalogue de services Nova : Compute Glance : Registre d'images Neutron : Reseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de metriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants interessants Bonnes pratiques pour un deploiement en production Faire face aux problemes 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 98 / 194
  130. 130. Principes Gere les instances IP ottantes, groupes de securite Les instances sont creees a partir des images fournies par Glance Les interfaces reseaux des instances sont associees a des ports Neutron Formation OpenStack July 7, 2014 99 / 194
  131. 131. Interactions avec les autres composants Formation OpenStack July 7, 2014 100 / 194
  132. 132. API Gere : Instances Flavors (types d'instance) Security Groups (groupes de securite) Floating IPs (IPs ottantes) Les instances sont redimensionnables et migrables d'un h^ote physique a un autre. Formation OpenStack July 7, 2014 101 / 194
  133. 133. Les groupes de securite Equivalent a un
  134. 134. rewall devant chaque instance Une instance peut ^etre associee a un ou plusieurs groupes de securite Gestion des acces en entree et sortie Regles par protocole (TCP/UDP/ICMP) et par port Formation OpenStack July 7, 2014 102 / 194
  135. 135. R^ole des avors Equivalent des instance types d'AWS De
  136. 136. nit un modele d'instance en termes de CPU, RAM, disque Formation OpenStack July 7, 2014 103 / 194
  137. 137. Nova api Double r^ole API de manipulation des instances par l'utilisateur API a destination des instances : API de metadata L'API de metadata doit ^etre accessible a l'adresse http://169.254.169.254/ L'API de metadata fournit des informations de con
  138. 138. guration personnalisees a chacune des instances Formation OpenStack July 7, 2014 104 / 194
  139. 139. Nova compute Execute les machines virtuelles Tire partie de libvirt ou d'autres APIs comme XenAPI Drivers : libvirt, XenAPI, VMWare ESX, Docker Permet de recuperer les logs de la console et une console VNC Formation OpenStack July 7, 2014 105 / 194
  140. 140. Nova scheduler Service qui distribue les demandes d'instances sur les noeuds compute Filter, Chance, Multi Scheduler Filtres, par defaut : AvailabilityZoneFilter,RamFilter,ComputeFilter Tri par poids, par defaut : RawWeigher Formation OpenStack July 7, 2014 106 / 194
  141. 141. Le scheduler Nova en action Formation OpenStack July 7, 2014 107 / 194
  142. 142. Nova conductor Service facultatif qui ameliore la securite Fait oce de proxy entre les noeuds compute et la BDD Les noeuds compute, vulnerables, n'ont donc plus d'acces a la BDD Formation OpenStack July 7, 2014 108 / 194
  143. 143. Tester $ nova list ... $ nova create ... Formation OpenStack July 7, 2014 109 / 194
  144. 144. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack Les briques necessaires Keystone : Authenti
  145. 145. cation, autorisation et catalogue de services Nova : Compute Glance : Registre d'images Neutron : Reseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de metriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants interessants Bonnes pratiques pour un deploiement en production Faire face aux problemes 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 110 / 194
  146. 146. Principes Registre d'images (et des snapshots) Proprietes sur les images Est utilise par Nova pour demarrer des instances Peut utiliser Swift comme back-end de stockage Formation OpenStack July 7, 2014 111 / 194
  147. 147. Proprietes des images dans Glance L'utilisateur peut de
  148. 148. nir un certain nombre de proprietes dont certaines seront utilisees lors de l'instanciation Type d'image Architecture Distribution Version de la distribution Espace disque minimum RAM minimum Publique ou non Formation OpenStack July 7, 2014 112 / 194
  149. 149. Types d'images Glance supporte un large eventail de types d'images, limite par le support de l'hyperviseur sous-jacent a Nova raw qcow2 ami vmdk iso Formation OpenStack July 7, 2014 113 / 194
  150. 150. Backends Swift ou S3 Ceph HTTP Repertoire local Formation OpenStack July 7, 2014 114 / 194
  151. 151. Installation Paquet glance-api : fournit l'API Paquet glance-registry : demon du registre d'images en tant que tel Formation OpenStack July 7, 2014 115 / 194
  152. 152. Tester $ glance image-list ... $ glance image-create ... Formation OpenStack July 7, 2014 116 / 194
  153. 153. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack Les briques necessaires Keystone : Authenti
  154. 154. cation, autorisation et catalogue de services Nova : Compute Glance : Registre d'images Neutron : Reseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de metriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants interessants Bonnes pratiques pour un deploiement en production Faire face aux problemes 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 117 / 194
  155. 155. Principes SDN Auparavant Quantum et nova-network neutron-server : fournit l'API Agent DHCP : fournit le service de DHCP pour les instances Agent L3 : gere la couche 3 du reseau, le routage Plugin : OpenVSwitch par defaut, d'autres implementations libres/proprietaires, logicielles/materielles existent Formation OpenStack July 7, 2014 118 / 194
  156. 156. Fonctionnalites supplementaires Outre les fonctions reseau de base niveaux 2 et 3, Neutron peut fournir d'autres services : Load Balancing (HAProxy, ...) Firewall (vArmour, ...) : diere des groupes de securite VPN (Openswan, ...) : permet d'acceder a un reseau prive sans IP ottantes Ces fonctionnalites se basent egalement sur des plugins Formation OpenStack July 7, 2014 119 / 194
  157. 157. API L'API permet notamment de manipuler ces ressources Reseau : niveau 2 Subnet : niveau 3 Port Les ports peuvent correspondre a des interfaces d'instance Formation OpenStack July 7, 2014 120 / 194
  158. 158. Plugins ML2 Modular Layer 2 OpenVSwitch OpenDaylight Contrail, OpenContrail Nuage Networks cf. OpenFlow Formation OpenStack July 7, 2014 121 / 194
  159. 159. Implementation Neutron tire partie des namespaces reseaux du noyau Linux pour permettre l'IP overlapping Le proxy de metadata est un composant qui permet aux instances isolees dans leur reseau de joindre l'API de metadata fournie par Nova Formation OpenStack July 7, 2014 122 / 194
  160. 160. Schema Formation OpenStack July 7, 2014 123 / 194
  161. 161. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack Les briques necessaires Keystone : Authenti
  162. 162. cation, autorisation et catalogue de services Nova : Compute Glance : Registre d'images Neutron : Reseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de metriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants interessants Bonnes pratiques pour un deploiement en production Faire face aux problemes 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 124 / 194
  163. 163. Principes Auparavant nova-volume Fournit des volumes (stockage block) attachables aux instances Gere dierents types de volume Gere snapshots et backups de volumes Attachement via iSCSI par defaut Formation OpenStack July 7, 2014 125 / 194
  164. 164. Du stockage partage ? Cinder n'est pas une solution de stockage partage comme NFS OpenStack (tout comme AWS) ne fournit pas de solution NFS as a Service Cf. le projet Manila Formation OpenStack July 7, 2014 126 / 194
  165. 165. Utilisation Volume supplementaire (et stockage persistant) sur une instance Boot from volume : l'OS est sur le volume Fonctionnalite de backup vers un object store (Swift ou Ceph) Formation OpenStack July 7, 2014 127 / 194
  166. 166. Installation Paquet cinder-api : fournit l'API Paquet cinder-volume : creation et gestion des volumes Paquet cinder-scheduler : distribue les demandes de creation de volume Paquet cinder-backup : backup vers un object store Formation OpenStack July 7, 2014 128 / 194
  167. 167. Backends Utilisation de plusieurs backends en parallele possible LVM (par defaut) GlusterFS Ceph Systemes de stockage proprietaires type NetApp Formation OpenStack July 7, 2014 129 / 194
  168. 168. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack Les briques necessaires Keystone : Authenti
  169. 169. cation, autorisation et catalogue de services Nova : Compute Glance : Registre d'images Neutron : Reseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de metriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants interessants Bonnes pratiques pour un deploiement en production Faire face aux problemes 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 130 / 194
  170. 170. Principes Utilise les APIs existantes pour fournir une interface Horizon est un module Django OpenStack Dashboard est l'implementation ocielle de ce module Formation OpenStack July 7, 2014 131 / 194
  171. 171. Con
  172. 172. guration local settings.py Les services apparaissent dans Horizon s'ils sont repertories dans le catalogue de services de Keystone Formation OpenStack July 7, 2014 132 / 194
  173. 173. Utilisation Une zone admin restreinte Une interface par tenant Formation OpenStack July 7, 2014 133 / 194
  174. 174. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack Les briques necessaires Keystone : Authenti
  175. 175. cation, autorisation et catalogue de services Nova : Compute Glance : Registre d'images Neutron : Reseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de metriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants interessants Bonnes pratiques pour un deploiement en production Faire face aux problemes 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 134 / 194
  176. 176. Principes SDS : Software De
  177. 177. ned Storage Utilisation de commodity hardware Theoreme CAP : on en choisit deux Acces par les APIs Architecture totalement acentree Pas de base de donnees centrale Formation OpenStack July 7, 2014 135 / 194
  178. 178. Implementation Proxy : serveur API par lequel passent toutes les requ^etes Object server : serveur de stockage Container server : maintient des listes d'objects dans des containers Account server : maintient des listes de containers dans des accounts Chaque objet est replique n fois (3 par defaut) Formation OpenStack July 7, 2014 136 / 194
  179. 179. Le ring Probleme : comment decider quelle donnee va sur quel object server Le ring est decoupe en partitions On situe chaque donnee dans le ring a
  180. 180. n de determiner sa partition Une partition est associee a plusieurs serveurs Formation OpenStack July 7, 2014 137 / 194
  181. 181. Schema Formation OpenStack July 7, 2014 138 / 194
  182. 182. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack Les briques necessaires Keystone : Authenti
  183. 183. cation, autorisation et catalogue de services Nova : Compute Glance : Registre d'images Neutron : Reseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de metriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants interessants Bonnes pratiques pour un deploiement en production Faire face aux problemes 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 139 / 194
  184. 184. Surveiller l'utilisation de son infrastructure avec Ceilometer Indexe dierentes metriques concernant l'utilisation des dierents services du cloud Fournit des APIs permettant de recuperer ces donnees Base pour construire des outils de facturation Utilise MongoDB (par defaut) pour le stockage Formation OpenStack July 7, 2014 140 / 194
  185. 185. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack Les briques necessaires Keystone : Authenti
  186. 186. cation, autorisation et catalogue de services Nova : Compute Glance : Registre d'images Neutron : Reseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de metriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants interessants Bonnes pratiques pour un deploiement en production Faire face aux problemes 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 141 / 194
  187. 187. Orchestrer son infrastructure avec Heat Equivalent d'Amazon Cloud Formation Orchestrer les ressources compute, storage, network, etc. Doit se coupler avec cloud-init Description de son infrastructure dans un
  188. 188. chier template, format JSON (CFN) ou YAML (HOT) Formation OpenStack July 7, 2014 142 / 194
  189. 189. Autoscaling avec Heat Heat implemente la fonctionnalite d'autoscaling Se declenche en fonction des alarmes produites par Ceilometer Entraine la creation de nouvelles instances Formation OpenStack July 7, 2014 143 / 194
  190. 190. Un template HOT heat_template_version: 2013-05-23 description: Simple template to deploy a single compute instance resources: my_instance: type: OS::Nova::Server properties: key_name: my_key image: F18-x86_64-cfntools flavor: m1.small Formation OpenStack July 7, 2014 144 / 194
  191. 191. Fonctionnalites avancees de Heat Nested stacks Environments Providers Formation OpenStack July 7, 2014 145 / 194
  192. 192. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack Les briques necessaires Keystone : Authenti
  193. 193. cation, autorisation et catalogue de services Nova : Compute Glance : Registre d'images Neutron : Reseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de metriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants interessants Bonnes pratiques pour un deploiement en production Faire face aux problemes 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 146 / 194
  194. 194. Principe Fournit des bases de donnees relationnelles, a la AWS RDS A vocation a supporter des bases NoSQL aussi Gere notamment MySQL comme back-end Se repose sur Nova pour les instances dans lesquelles se fait l'installation d'une BDD Formation OpenStack July 7, 2014 147 / 194
  195. 195. Services trove-api : API trove-taskmanager : gere les instances BDD trove-guestagent : agent interne a l'instance Formation OpenStack July 7, 2014 148 / 194
  196. 196. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack Les briques necessaires Keystone : Authenti
  197. 197. cation, autorisation et catalogue de services Nova : Compute Glance : Registre d'images Neutron : Reseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de metriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants interessants Bonnes pratiques pour un deploiement en production Faire face aux problemes 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 149 / 194
  198. 198. Principe Equivalent d'AWS Route 53 Gere dierents backends : BIND, etc. Formation OpenStack July 7, 2014 150 / 194
  199. 199. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack Les briques necessaires Keystone : Authenti
  200. 200. cation, autorisation et catalogue de services Nova : Compute Glance : Registre d'images Neutron : Reseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de metriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants interessants Bonnes pratiques pour un deploiement en production Faire face aux problemes 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 151 / 194
  201. 201. Ironic Anciennement Nova bare-metal Permet le deploiement d'instance sur des machines physiques (plut^ot que VMs) Repose sur des technologies telles que PXE, TFTP Formation OpenStack July 7, 2014 152 / 194
  202. 202. Oslo, ou OpenStack common Oslo contient le code commun a plusieurs composants d'OpenStack Son utilisation est transparente pour le deployeur Formation OpenStack July 7, 2014 153 / 194
  203. 203. rootwrap Wrapper pour l'utilisation de commandes en root Con
  204. 204. guration au niveau de chaque composant qui l'utilise Permet d'ecrire des
  205. 205. ltres sur les commandes Formation OpenStack July 7, 2014 154 / 194
  206. 206. TripleO OpenStack On OpenStack Objectif : pouvoir deployer un cloud OpenStack (overcloud) a partir d'un cloud OpenStack (undercloud) Autoscaling du cloud lui-m^eme : deploiement de nouveaux noeuds compute lorsque cela est necessaire Fonctionne conjointement avec Ironic pour le deploiement bare-metal Formation OpenStack July 7, 2014 155 / 194
  207. 207. Tempest Suite de tests d'un cloud OpenStack Eectue des appels a l'API et veri
  208. 208. e le resultat Est tres utilise par les developpeurs via l'integration continue Le deployeur peut utiliser Tempest pour veri
  209. 209. er la bonne conformite de son cloud Formation OpenStack July 7, 2014 156 / 194
  210. 210. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack Les briques necessaires Keystone : Authenti
  211. 211. cation, autorisation et catalogue de services Nova : Compute Glance : Registre d'images Neutron : Reseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de metriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants interessants Bonnes pratiques pour un deploiement en production Faire face aux problemes 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 157 / 194
  212. 212. Quels composants dois-je installer ? Keystone est indispensable L'utilisation de Nova va de paire avec Glance et Neutron Cinder s'averera souvent utile Ceilometer et Heat vont souvent ensemble Swift est independant des autres composants Formation OpenStack July 7, 2014 158 / 194
  213. 213. Penser des le debut aux choix structurants Distribution et methode de deploiement Hyperviseur Reseau : quelle architecture et quels drivers Politique de mise a jour Formation OpenStack July 7, 2014 159 / 194
  214. 214. Les dierentes methodes d'installation DevStack est a oublier pour la production TripleO est encore trop jeune Le deploiement a la main comme vu precedemment n'est pas recommande car peu maintenable Distributions OpenStack packagees et pr^etes a l'emploi Distributions classiques et gestion de con
  215. 215. guration Formation OpenStack July 7, 2014 160 / 194
  216. 216. Assigner des r^oles aux machines Beaucoup de documentations font reference a ces r^oles : Controller node : APIs, BDD, AMQP Network node : Routeur Compute node : Hyperviseur Ce modele simpli
  217. 217. e n'est pas HA. Formation OpenStack July 7, 2014 161 / 194
  218. 218. Haute disponbilite Haut disponibilite de l'IaaS MySQL, RabbitMQ : HA classique (Galera, Clustering) Les services APIs sont stateless et HTTP : scale out et load balancers La plupart des autres services OpenStack sont capables de scale out egalement Guide HA : http://docs.openstack.org/high-availability-guide/content/ Formation OpenStack July 7, 2014 162 / 194
  219. 219. Haute disponibilite de l'agent L3 de Neutron Plusieurs solutions possibles Formation OpenStack July 7, 2014 163 / 194
  220. 220. Considerations pour une environnement de production Des URLs uniformes pour toutes les APIs : utiliser un reverse proxy Utilisation des quotas Prevoir les bonnes volumetries, notamment pour les donnees Ceilometer Monitoring Guide Operations : http://docs.openstack.org/trunk/openstack-ops/content/ Formation OpenStack July 7, 2014 164 / 194
  221. 221. Decoupage reseau Management network : reseau d'administration Data network : reseau pour la communication inter instances External network : reseau externe, dans l'infrastructure reseau existante API network : reseau contenant les endpoints API Formation OpenStack July 7, 2014 165 / 194
  222. 222. Considerations liees a la securite Indispensable : HTTPS sur l'acces des APIs a l'exterieur Securisation des communications MySQL et RabbitMQ Un acces MySQL par base et par service Un utilisateur Keystone par service Limiter l'acces en lecture des
  223. 223. chiers de con
  224. 224. guration (mots de passe, token) Formation OpenStack July 7, 2014 166 / 194
  225. 225. Segmenter son cloud Host aggregates : machines physiques avec des caracteristiques similaires Availability zones : machines dependantes d'une m^eme source electrique, d'un m^eme switch, d'un m^eme DC, etc. Regions : chaque region a son API Cells : permet de regrouper plusieurs cloud dierents sous une m^eme API Formation OpenStack July 7, 2014 167 / 194
  226. 226. Host aggregates / agregats d'h^otes L'administrateur de
  227. 227. nit des agregats via l'API 1 agregat 1 point commun, ex : GPU L'utilisateur peut choisir un agregat a la creation d'instance Formation OpenStack July 7, 2014 168 / 194
  228. 228. Availability zones / zones de disponibilite Groupe d'h^otes Decoupage en termes de disponibilite : Rack, Datacenter, etc. L'utiliser peut choisir une zone de disponibilite L'utilisateur peut demander a ce que des instances soient demarrees dans une m^eme zone, ou au contraire dans des zones dierentes Formation OpenStack July 7, 2014 169 / 194
  229. 229. Regions Equivalent des regions d'AWS Un service peut avoir dierents endpoints dans dierentes regions Chaque region est autonome Cas d'usage : cloud de grande ampleur (comme certains clouds publics) Formation OpenStack July 7, 2014 170 / 194
  230. 230. Cellules / Cells Fonctionnalite de Nova uniquement Un seul nova-api devant plusieurs cellules Chaque cellule a sa propre BDD et
  231. 231. le de messages Ajoute un niveau de scheduling (choix de la cellule) Formation OpenStack July 7, 2014 171 / 194
  232. 232. Packaging d'OpenStack - Ubuntu Le packaging est fait dans de multiples distributions, RPM, DEB et autres Ubuntu est historiquement la plateforme de reference pour le developpement d'OpenStack Le packaging dans Ubuntu suit de pres le developpement d'OpenStack, et des tests automatises sont realises Canonical fournit la Ubuntu Cloud Archive, qui met a disposition la derniere version d'OpenStack pour la derniere Ubuntu LTS Formation OpenStack July 7, 2014 172 / 194
  233. 233. Ubuntu Cloud Archive Formation OpenStack July 7, 2014 173 / 194
  234. 234. Packaging d'OpenStack dans les autres distributions OpenStack est integre dans les dep^ots ociels de Debian Red Hat propose RHOS Comme Ubuntu, le cycle de release de Fedora est synchronise avec celui d'OpenStack Formation OpenStack July 7, 2014 174 / 194
  235. 235. Les distributions OpenStack StackOps Mirantis HP etc. Formation OpenStack July 7, 2014 175 / 194
  236. 236. Deploiement bare metal Le deploiement des h^otes physiques OpenStack peut se faire a l'aide d'outils dedies Canonical/Ubuntu propose MaaS : Metal as a Service Dell propose Crowbar eDeploy (eNovance) Formation OpenStack July 7, 2014 176 / 194
  237. 237. Gestion de con
  238. 238. guration Puppet, Chef, CFEngine, Saltstack, Ansible, etc. Ces outils peuvent aider a deployer le cloud OpenStack ... mais aussi a gerer les instances (section suivante) Formation OpenStack July 7, 2014 177 / 194
  239. 239. Modules Puppet PuppetLabs maintient (avec d'autres) des modules pour deployer OpenStack https://forge.puppetlabs.com/puppetlabs/openstack Formation OpenStack July 7, 2014 178 / 194
  240. 240. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack Les briques necessaires Keystone : Authenti
  241. 241. cation, autorisation et catalogue de services Nova : Compute Glance : Registre d'images Neutron : Reseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de metriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants interessants Bonnes pratiques pour un deploiement en production Faire face aux problemes 4 Tirer partie de l'IaaS Formation OpenStack July 7, 2014 179 / 194
  242. 242. Les re exes en cas d'erreur ou de comportement errone Travaille-t-on sur le bon tenant ? Est-ce que l'API renvoie une erreur ? (le dashboard peut cacher certaines informations) Si necessaire d'aller plus loin : I Regarder les logs sur le cloud controller (/var/log/composant/*.log) I Regarder les logs sur le compute node et le network node si le probleme est speci
  243. 243. que reseau/instance I Eventuellement modi
  244. 244. er la verbosite des logs dans la con
  245. 245. guration Formation OpenStack July 7, 2014 180 / 194
  246. 246. Est-ce un bug ? Si le client CLI crash, c'est un bug Si le dashboard web ache une erreur 500, c'est peut-^etre un bug Si les logs montrent une stacktrace Python, c'est un bug Sinon, a vous d'en juger Formation OpenStack July 7, 2014 181 / 194
  247. 247. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack 4 Tirer partie de l'IaaS C^ote applications C^ote systeme Formation OpenStack July 7, 2014 182 / 194
  248. 248. Deux visions Une fois un cloud IaaS en place, deux optiques possibles : Garder les m^emes pratiques tout en pro
  249. 249. tant du self service et de l'agilite de la solution Faire evoluer ses pratiquer, tant c^ote applicatif que systeme Pets vs Cattle Formation OpenStack July 7, 2014 183 / 194
  250. 250. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack 4 Tirer partie de l'IaaS C^ote applications C^ote systeme Formation OpenStack July 7, 2014 184 / 194
  251. 251. Adapter ou faire ses applications cloud ready Stateless : permet de multiplier les routes d'acces a l'application Ne pas stocker les donnees en local, mais plut^ot : I Base de donnees I Stockage objet Utiliser des outils standards de journalisation Formation OpenStack July 7, 2014 185 / 194
  252. 252. Plan 1 Le Cloud : vue d'ensemble 2 OpenStack : projet, logiciel et utilisation 3 Deployer OpenStack 4 Tirer partie de l'IaaS C^ote applications C^ote systeme Formation OpenStack July 7, 2014 186 / 194
  253. 253. Adopter une philosophie DevOps Infrastructure as Code Scale out au lieu de scale up HA niveau application plut^ot qu'infrastructure Formation OpenStack July 7, 2014 187 / 194
  254. 254. Utiliser des images cloud Une image cloud c'est : Une image disque contenant un OS deja installe Une image qui peut ^etre instanciee en n machines sans erreur Un OS sachant parler a l'API de metadata du cloud (cloud-init) La plupart des distributions fournissent aujourd'hui des images cloud. Formation OpenStack July 7, 2014 188 / 194
  255. 255. Cirros Cirros est l'image cloud par excellence OS minimaliste Contient cloud-init https://launchpad.net/cirros Formation OpenStack July 7, 2014 189 / 194
  256. 256. Faire ou modi
  257. 257. er une image cloud Utilisation de libguestfs Formation OpenStack July 7, 2014 190 / 194
  258. 258. Cloud-init Cloud-init est un moyen de tirer partie de l'API de metadata, et notamment des user data L'outil est integre par defaut dans la plupart des images cloud A partir des user data, cloud-init eectue les operations de personnalisation de l'instance cloud-con
  259. 259. g est un format possible de user data Formation OpenStack July 7, 2014 191 / 194
  260. 260. Exemple cloud-con
  261. 261. g #cloud-config mounts: - [ xvdc, /var/www ] packages: - apache2 - htop Formation OpenStack July 7, 2014 192 / 194
  262. 262. Con
  263. 263. gurer et orchestrer ses instances Outils de gestion de con
  264. 264. guration (les m^emes qui permettent de deployer OpenStack) Juju Formation OpenStack July 7, 2014 193 / 194
  265. 265. Conclusion Le cloud revolutionne l'IT OpenStack est le projet libre phare sur la partie IaaS Deployer OpenStack n'est pas une mince aaire L'utilisation d'un cloud IaaS implique des changements de pratique Formation OpenStack July 7, 2014 194 / 194

×