OpenStack dans la pratique: comment ça marche ?
Démonstration par Adrien CUNIN
Vous êtes administrateur système, développeur, décideur, et vous vous posez des questions sur le rôle et le fonctionnement d'OpenStack ?
• Quels besoins couvrent OpenStack ?
• Quels sont les différents composants ? Comment fonctionnent-ils ?
• Comment tirer partie d'une technologie cloud ?
Ces slides sont issues du meetup du mercredi 17 septembre dans les locaux de Mozilla à Paris.
> Des projets OpenStack ? Besoin de formations OpenStack intra- / inter- entreprise ?
Contactez-nous sur http://www.osones.com
1. OpenStack dans la pratique
Adrien Cunin
adrien.cunin@osones.com
Meetup #10 OpenStack Paris
Mercredi 17 septembre 2014
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 1 / 41
2. Introduction
Alors vous avez besoin d'un cloud et vous voulez monter un cloud prive
OpenStack ?
OpenStack est un projet vaste et complexe
Cela le rend dicile 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
3. Qui suis-je ?
Adrien Cunin
I 24 ans et passionne de logiciels libres
I Contributeur depuis 2006 (notamment Ubuntu et Debian)
I Ingenieur cloud computing / OpenStack
Osones
I Services et formations cloud computing (OpenStack, AWS)
Association OpenStack-fr
I Membre du CA et co-fondateur
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 3 / 41
4. Plan
1 OpenStack et ses composants
2 Deployer un cloud OpenStack
Architecture : choses a savoir et questions a se poser
Les dierentes methodes de deploiement
Mais 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
5. Plan
1 OpenStack et ses composants
2 Deployer un cloud OpenStack
Architecture : choses a savoir et questions a se poser
Les dierentes methodes de deploiement
Mais 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
6. Resume
Your Applications
APIs
Networking
OPENSTACK
CLOUD OPERATING SYSTEM
Compute Storage
Standard Hardware
OpenStack Dashboard
OpenStack Shared Services
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 6 / 41
7. 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 dierents stades de maturite
IaaS ! PaaS
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 7 / 41
8. 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 OpenStack
I AWS
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 8 / 41
9. 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 state
naturally 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
10. Les dierents 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
11. Les dierents composants (2)
Database service (Trove)
Data processing (Sahara)
OpenStack deployment (TripleO)
Incubating
I 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
15. Plan
1 OpenStack et ses composants
2 Deployer un cloud OpenStack
Architecture : choses a savoir et questions a se poser
Les dierentes methodes de deploiement
Mais 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
16. Plan
1 OpenStack et ses composants
2 Deployer un cloud OpenStack
Architecture : choses a savoir et questions a se poser
Les dierentes methodes de deploiement
Mais 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
17. 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 r^ole, quel decoupage reseau ?
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 17 / 41
18. 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 (sauf
utilisation 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
19. 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
20. 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 reseau
existante
API network : reseau contenant les endpoints API
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 20 / 41
21. Quelques considerations pour une environnement de
production
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
22. 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 out
egalement
Guide HA :
http://docs.openstack.org/high-availability-guide/content/
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 22 / 41
23. Plan
1 OpenStack et ses composants
2 Deployer un cloud OpenStack
Architecture : choses a savoir et questions a se poser
Les dierentes methodes de deploiement
Mais 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
24. Avec de la motivation
Depuis les sources
http://tarballs.openstack.org/
Pas recommande car complexe et tres peu maintenable
Avec OpenStack lui m^eme
TripleO : OpenStack on OpenStack
Concepts interessants mais projet encore jeune
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 24 / 41
25. 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
26. 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 avec
OpenStack
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 26 / 41
28. guration
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 con
29. guration souhaitee
Modules Puppet :
https://forge.puppetlabs.com/puppetlabs/openstack
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 27 / 41
30. 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
31. Deploiement continu
OpenStack maintient un master (trunk) toujours stable
Possibilite de deployer au jour le jour le master (CD: Continous
Delivery )
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
32. Plan
1 OpenStack et ses composants
2 Deployer un cloud OpenStack
Architecture : choses a savoir et questions a se poser
Les dierentes methodes de deploiement
Mais 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
34. er le probleme
Mauvaise utilisation ? L'erreur retournee devrait expliquer
A
quel niveau est le probleme : dashboard, bibliotheque d'acces a
l'API, API, etc.
Erreur de con
35. guration
Bug
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 31 / 41
36. 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 les
corriger.
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 32 / 41
37. Ressources
http://docs.openstack.org/
https://ask.openstack.org
openstack@lists.openstack.org
#openstack@Freenode
Communaute francophone :
I http//openstack.fr/
I openstack-fr@lists.openstack.org
I #openstack-fr@Freenode
I Association
Support commercial : http://www.openstack.org/marketplace/
et ailleurs
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 33 / 41
38. Plan
1 OpenStack et ses composants
2 Deployer un cloud OpenStack
Architecture : choses a savoir et questions a se poser
Les dierentes methodes de deploiement
Mais 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
40. Plan
1 OpenStack et ses composants
2 Deployer un cloud OpenStack
Architecture : choses a savoir et questions a se poser
Les dierentes methodes de deploiement
Mais 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
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 plut^ot :
I Base de donnees
I 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
42. Adopter une philosophie DevOps
Infrastructure as Code
Scale out plut^ot que scale up (horizontalement plut^ot que
verticalement)
HA niveau application plut^ot qu'infrastructure
Outils de con
43. guration des instances : les m^emes qui permettent de
deployer OpenStack (Puppet, etc.)
Outil d'orchestration des instances : Heat
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 38 / 41
44. 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 images
adaptees.
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 39 / 41
45. Conclusion
Un deploiement d'OpenStack se prepare bien en amont
Les choix a faire en amont sont determinant pour la reussite d'un
deploiement
L'etape suivante est fondamentale : quel workload va-t-on faire
tourner et est-il compatible avec la philosophie cloud d'OpenStack ?
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 40 / 41
46. Merci !
Questions ?
Email : adrien.cunin@osones.com
IRC : Adri2000@Freenode
Twitter : @Adri2000 OS
Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 41 / 41