OpenStack dans la pratique
-
Upload
osones -
Category
Technology
-
view
1.138 -
download
3
description
Transcript of OpenStack dans la pratique
OpenStack dans la pratique
Adrien [email protected]
Meetup #10 OpenStack Paris
Mercredi 17 septembre 2014
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 1 / 41
Introduction
Alors vous avez besoin d’un cloud et vous voulez monter un cloud priveOpenStack ?
OpenStack est un projet vaste et complexe
Cela le rend difficile a apprehender au premier abord
Comprendre les concepts cloud est indispensable :Instances, types d’instance, stockage objet, SDN, APIs, etc.
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 2 / 41
Qui suis-je ?
Adrien CuninI 24 ans et passionne de logiciels libresI Contributeur depuis 2006 (notamment Ubuntu et Debian)I Ingenieur cloud computing / OpenStack
OsonesI Services et formations cloud computing (OpenStack, AWS)
Association OpenStack-frI Membre du CA et co-fondateur
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 3 / 41
Plan
1 OpenStack et ses composants
2 Deployer un cloud OpenStackArchitecture : choses a savoir et questions a se poserLes differentes methodes de deploiementMais ca ne marche pas...
3 Demonstration : interagir avec un cloud OpenStack
4 On fait quoi ensuite ?
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 4 / 41
Plan
1 OpenStack et ses composants
2 Deployer un cloud OpenStackArchitecture : choses a savoir et questions a se poserLes differentes methodes de deploiementMais ca ne marche pas...
3 Demonstration : interagir avec un cloud OpenStack
4 On fait quoi ensuite ?
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 5 / 41
Resume
Networking
OPENSTACK CLOUD OPERATING SYSTEM
Standard Hardware
Compute Storage
Your Applications
OpenStack Dashboard
OpenStack Shared Services
APIs
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 6 / 41
Evolution
En 2010, OpenStack c’est :
Nova : ressources de calcul
Swift : stockage (objet)
Aujourd’hui c’est :
10+ programmes integres
Des dizaines d’autres a differents stades de maturite
IaaS → PaaS
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 7 / 41
Implementation
Python Python Python
Chaque composant est decoupe en plusieurs services
La communication entre services se fait via AMQP
Les donnees sont stockees dans une BDD relationnelle
OpenStack ne reinvente pas la roue
Drivers drivers drivers
Multi tenants
Deux APIs possibles pour communiquer avec le cloud :I OpenStackI AWS
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 8 / 41
Extraits des ”Design Tenets”
Scalability and elasticity are our main goals
Everything should be asynchronous
All required components must be horizontally scalable
Always use shared nothing architecture (SN) or sharding
Distribute everything. Especially logic. Move logic to where statenaturally exists
Accept eventual consistency and use it where it is appropriate
https://wiki.openstack.org/wiki/BasicDesignTenets
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 9 / 41
Les differents composants
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 Telemetry - Ceilometer
OpenStack Orchestration - Heat
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 10 / 41
Les differents composants (2)
Database service (Trove)
Data processing (Sahara)
OpenStack deployment (TripleO)
IncubatingI Bare metal (Ironic)I Queue service (Zaqar)I Key management (Barbican)I DNS service (Designate)
Beaucoup d’autres en developpement
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 11 / 41
Architecture conceptuelle
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 12 / 41
Architecture conceptuelle : vue alternative en couches
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 13 / 41
Architecture logique detaillee
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 14 / 41
Plan
1 OpenStack et ses composants
2 Deployer un cloud OpenStackArchitecture : choses a savoir et questions a se poserLes differentes methodes de deploiementMais ca ne marche pas...
3 Demonstration : interagir avec un cloud OpenStack
4 On fait quoi ensuite ?
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 15 / 41
Plan
1 OpenStack et ses composants
2 Deployer un cloud OpenStackArchitecture : choses a savoir et questions a se poserLes differentes methodes de deploiementMais ca ne marche pas...
3 Demonstration : interagir avec un cloud OpenStack
4 On fait quoi ensuite ?
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 16 / 41
Penser des le debut aux choix structurants
Distribution
Methode de deploiement
Choix des technologies pour virtualisation, reseau, stockage bloc, etc.
De quels composants OpenStack ai-je besoin ?
Combien machines physiques, pour quel role, quel decoupage reseau ?
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 17 / 41
Quels composants OpenStack dois-je installer ?
Pre-requis :
Python
Base de donnees : MySQL
AMQP : RabbitMQ
(Tres) nombreuses combinaisons possibles. A savoir :
Keystone est indispensable
L’utilisation de Nova va de paire avec Glance et Neutron (saufutilisation de nova-network)
Cinder s’averera utile pour fournir une fonctionnalite de stockage”classique”
Swift est independant des autres composants
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 18 / 41
Quelle version d’OpenStack ?
OpenStack a un cycle de release stable
Tous les 6 mois (tous les 3 mois auparavant)
Alignement avec le cycle de release de certaines distributions
Support securite + corrections de bug jusqu’a 15 mois apres la release
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 19 / 41
Machine physiques et reseau
Le nombre et le type de machines physiques depend de :
Composants deployes
Volumetrie attendu
Niveau de haute disponibilite souhaite
Decoupage possible du reseau :
Management network : reseau d’administration
Data network : reseau pour la communication inter instances
External network : reseau externe, dans l’infrastructure reseauexistante
API network : reseau contenant les endpoints API
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 20 / 41
Quelques considerations pour une environnement deproduction
Des URLs uniformes pour toutes les APIs : utiliser un reverse proxy
HTTPS sur l’acces des APIs a l’exterieur
Securisation des communications MySQL et RabbitMQ
Monitoring
Guide Operations :http://docs.openstack.org/trunk/openstack-ops/content/
Guide Security :http://docs.openstack.org/security-guide/content/
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 21 / 41
Haute disponibilite et repartition de charge
On parle ici d’OpenStack en tant qu’IaaS (pas des instances)
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 outegalement
Guide HA :http://docs.openstack.org/high-availability-guide/content/
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 22 / 41
Plan
1 OpenStack et ses composants
2 Deployer un cloud OpenStackArchitecture : choses a savoir et questions a se poserLes differentes methodes de deploiementMais ca ne marche pas...
3 Demonstration : interagir avec un cloud OpenStack
4 On fait quoi ensuite ?
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 23 / 41
Avec de la motivation
Depuis les sources
http://tarballs.openstack.org/
Pas recommande car complexe et tres peu maintenable
Avec OpenStack lui meme
TripleO : OpenStack on OpenStack
Concepts interessants mais projet encore jeune
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 24 / 41
DevStack
Deployer rapidement un OpenStack
Utilise par les developpeurs, pour du test ou de la demonstration
Un script shell qui fait tout le travail : stack.sh
Code issu de git (branch master par defaut)
Ne doit PAS etre utilise pour de la production
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 25 / 41
Les paquets des distributions
Red Hat, Ubuntu, Fedora, Debian, SUSE, etc.
On delegue le travail d’integration a la distribution
Acces aux mises a jour aux conditions de la ditribution
Certaines distributions fournissent une version pre-packagee avecOpenStack
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 26 / 41
Outils de gestion de configuration
Puppet, Chef, CFEngine, Saltstack, Ansible, etc.
Ces outils peuvent aider a deployer le cloud OpenStack
... mais aussi a gerer les instances (section suivante)
Deploie les paquets et la configuration souhaitee
Modules Puppet :https://forge.puppetlabs.com/puppetlabs/openstack
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 27 / 41
Les distributions tout en un
StackOps, Mirantis, etc.
Facilite de deploiement et d’utilisation
Attention a l’evolutivite de ces solutions
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 28 / 41
Deploiement continu
OpenStack maintient un master (trunk) toujours stable
Possibilite de deployer au jour le jour le master (CD: ContinousDelivery)
Necessite la mise en place d’une infrastructure importante
Facilite les mises a jour entre versions majeures
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 29 / 41
Plan
1 OpenStack et ses composants
2 Deployer un cloud OpenStackArchitecture : choses a savoir et questions a se poserLes differentes methodes de deploiementMais ca ne marche pas...
3 Demonstration : interagir avec un cloud OpenStack
4 On fait quoi ensuite ?
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 30 / 41
Identifier le probleme
Mauvaise utilisation ? L’erreur retournee devrait expliquer
A quel niveau est le probleme : dashboard, bibliotheque d’acces al’API, API, etc.
Erreur de configuration
Bug
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 31 / 41
Bugs
OpenStack a des bugs
Le resultat n’est pas celui attendu
Le programme crash
Les messages d’erreur ou de log ne sont pas assez explicites
La documentation est erronee ou incomplete
Il faut les signaler s’ils ne sont pas encore connus ! Voire aider a lescorriger.
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 32 / 41
Ressources
http://docs.openstack.org/
https://ask.openstack.org
#openstack@Freenode
Communaute francophone :I http//openstack.fr/I [email protected] #openstack-fr@FreenodeI Association
Support commercial : http://www.openstack.org/marketplace/
et ailleurs
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 33 / 41
Plan
1 OpenStack et ses composants
2 Deployer un cloud OpenStackArchitecture : choses a savoir et questions a se poserLes differentes methodes de deploiementMais ca ne marche pas...
3 Demonstration : interagir avec un cloud OpenStack
4 On fait quoi ensuite ?
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 34 / 41
Demonstration
Demonstration
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 35 / 41
Plan
1 OpenStack et ses composants
2 Deployer un cloud OpenStackArchitecture : choses a savoir et questions a se poserLes differentes methodes de deploiementMais ca ne marche pas...
3 Demonstration : interagir avec un cloud OpenStack
4 On fait quoi ensuite ?
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 36 / 41
Adapter ou developper ses applications ”cloud ready”
Stateless : permet de multiplier les routes d’acces a l’application
Ne pas stocker les donnees en local, mais plutot :I Base de donneesI Stockage objet
Gerer les cas de panne (reseau, systeme) au niveau applicatif
API, SDK : http://developer.openstack.org/
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 37 / 41
Adopter une philosophie DevOps
Infrastructure as Code
Scale out plutot que scale up (horizontalement plutot queverticalement)
HA niveau application plutot qu’infrastructure
Outils de configuration des instances : les memes qui permettent dedeployer OpenStack (Puppet, etc.)
Outil d’orchestration des instances : Heat
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 38 / 41
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.Cirros est une distribution cloud minimaliste qui fournit des imagesadaptees.
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 39 / 41
Conclusion
Un deploiement d’OpenStack se prepare bien en amont
Les choix a faire en amont sont determinant pour la reussite d’undeploiement
L’etape suivante est fondamentale : quel workload va-t-on fairetourner et est-il compatible avec la philosophie cloud d’OpenStack ?
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 40 / 41
Merci !
Questions ?Email : [email protected] : Adri2000@Freenode
Twitter : @Adri2000 OS
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 41 / 41