OpenStack dans la pratique

41
OpenStack dans la pratique Adrien Cunin [email protected] Meetup #10 OpenStack Paris Mercredi 17 septembre 2014 Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 1 / 41

description

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

Transcript of OpenStack dans la pratique

Page 1: 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

Page 2: OpenStack dans la pratique

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

Page 3: OpenStack dans la pratique

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

Page 4: OpenStack dans la pratique

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

Page 5: OpenStack dans la pratique

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

Page 6: OpenStack dans la pratique

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

Page 7: OpenStack dans la pratique

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

Page 8: OpenStack dans la pratique

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

Page 9: OpenStack dans la pratique

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

Page 10: OpenStack dans la pratique

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

Page 11: OpenStack dans la pratique

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

Page 12: OpenStack dans la pratique

Architecture conceptuelle

Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 12 / 41

Page 13: OpenStack dans la pratique

Architecture conceptuelle : vue alternative en couches

Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 13 / 41

Page 14: OpenStack dans la pratique

Architecture logique detaillee

Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 14 / 41

Page 15: OpenStack dans la pratique

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

Page 16: OpenStack dans la pratique

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

Page 17: OpenStack dans la pratique

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

Page 18: OpenStack dans la pratique

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

Page 19: OpenStack dans la pratique

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

Page 20: OpenStack dans la pratique

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

Page 21: OpenStack dans la pratique

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

Page 22: OpenStack dans la pratique

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

Page 23: OpenStack dans la pratique

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

Page 24: OpenStack dans la pratique

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

Page 25: OpenStack dans la pratique

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

Page 26: OpenStack dans la pratique

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

Page 27: OpenStack dans la pratique

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

Page 28: OpenStack dans la pratique

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

Page 29: OpenStack dans la pratique

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

Page 30: OpenStack dans la pratique

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

Page 31: OpenStack dans la pratique

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

Page 32: OpenStack dans la pratique

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

Page 33: OpenStack dans la pratique

Ressources

http://docs.openstack.org/

https://ask.openstack.org

[email protected]

#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

Page 34: OpenStack dans la pratique

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

Page 35: OpenStack dans la pratique

Demonstration

Demonstration

Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 35 / 41

Page 36: OpenStack dans la pratique

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

Page 37: OpenStack dans la pratique

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

Page 38: OpenStack dans la pratique

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

Page 39: OpenStack dans la pratique

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

Page 40: OpenStack dans la pratique

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

Page 41: OpenStack dans la pratique

Merci !

Questions ?Email : [email protected] : Adri2000@Freenode

Twitter : @Adri2000 OS

Adrien Cunin (Meetup #10) OpenStack dans la pratique Mercredi 17 septembre 2014 41 / 41