Transcript
Page 1: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

OPENSTACK-OPS

1

Page 2: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

CONCERNANT CES SUPPORTS DE COURS

2 . 1

Page 3: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

SUPPORTS DE COURS RÉALISÉS PAR ALTER WAY CLOUDCONSULTING

ex Osones -

Copyright © 2014 - 2019 alter way CloudConsultingLicence : Sources : HTML/PDF :

Licence Creative Commons BY-SA 4.0

https://cloud-consulting.alterway.fr

Creative Commons BY-SA 4.0https://github.com/Alterway/formations/

https://osones.com/formations/

2 . 2

Page 4: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

INTRODUCTION

3 . 1

Page 5: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

OBJECTIFS DE LA FORMATION : OPENSTACKConnaitre le fonctionnement du projet OpenStack et sespossibilitésComprendre le fonctionnement de chacun des composantsd’OpenStackPouvoir faire les bons choix de configurationSavoir déployer manuellement un cloud OpenStack pourfournir du IaaSConnaitre les bonnes pratiques de déploiement d’OpenStackÊtre capable de déterminer l’origine d’une erreur dansOpenStackSavoir réagir face à un bug

3 . 2

Page 6: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

PRÉ-REQUIS DE LA FORMATIONCompétences d’administration système Linux tel qu’Ubuntu

Gestion des paquetsManipulation de fichiers de configuration et de servicesLVM (Logical Volume Management) et systèmes defichiers

Notions :Virtualisation : KVM (Kernel-Based Virtual Machine), libvirtRéseau : iptables, namespacesSQL

Optionnel :À l’aise dans un environnement Python

3 . 3

Page 7: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

OPENSTACK : LE PROJET

4 . 1

Page 8: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

TOUR D'HORIZON

4 . 2

Page 9: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

VUE HAUT NIVEAU

Version simple

4 . 3

Page 10: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

HISTORIQUEDémarrage en 2010Objectif : le Cloud Operating System libreFusion de deux projets de Rackspace (Storage) et de la NASA(Compute)Logiciel libre distribué sous licence Apache 2.0Naissance de la Fondation en 2012

4 . 4

Page 11: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

MISSION STATEMENTTo produce a ubiquitous Open Source Cloud Computing platform that is easy to use, simple to implement, interoperable between deployments, works well at all scales, and meets the needs of users and operators of both public and private clouds.

4 . 5

Page 12: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

LES RELEASESAustin (2010.1)Bexar (2011.1), Cactus (2011.2), Diablo (2011.3)Essex (2012.1), Folsom (2012.2)Grizzly (2013.1), Havana (2013.2)Icehouse (2014.1), Juno (2014.2)Kilo (2015.1), Liberty (2015.2)Mitaka (2016.1), Newton (2016.2)Ocata (2017.1), Pike (2017.2)Queens (2018.1), RockyRocky (2018.2)Stein (2019.1), Train (2019.2)Premier semestre 2020 : Ussuri

4 . 6

Page 13: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

QUELQUES SOUTIENS/CONTRIBUTEURS ...Editeurs : Red Hat, Suse, Canonical, Vmware, ...Constructeurs : IBM, HP, Dell, ...Constructeurs/réseau : Juniper, Cisco, ...Constructeurs/stockage : NetApp, Hitachi, ...En vrac : NASA, Rackspace, Yahoo, OVH, Citrix, SAP, ...GoogleGoogle ! (depuis juillet 2015)

https://www.openstack.org/foundation/companies/

4 . 7

Page 14: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

... ET UTILISATEURSTous les contributeurs précédemment citésEn France : CloudwattCloudwatt et NumergyNumergyWikimediaCERNPaypalComcastBMWEtc. Sans compter les implémentations confidentielles

https://www.openstack.org/user-stories/

4 . 8

Page 15: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

LES DIFFÉRENTS SOUS-PROJETS

OpenStack Compute - NovaOpenStack (Object) Storage - SwiftOpenStack Block Storage - CinderOpenStack Networking - NeutronOpenStack Image Service - GlanceOpenStack Identity Service -KeystoneOpenStack Dashboard - HorizonOpenStack Telemetry - CeilometerOpenStack Orchestration - Heat

https://www.openstack.org/software/project-navigator/

4 . 9

Page 16: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

LES DIFFÉRENTS SOUS-PROJETS (2)

Page 17: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

Mais aussi :Bare metal (Ironic)Queue service (Zaqar)Database Service (Trove)Data processing (Sahara)DNS service (Designate)Shared File Systems (Manila)Key management (Barbican)Container (Magnum)

AutresLes clients CLI et bibliothèquesLes outils de déploiement d'OpenStackLes bibliothèques utilisées par OpenStackLes outils utilisés pour développerOpenStack 4 . 10

Page 18: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

APISChaque projet supporte son API OpenStackCertains projets supportent l'API AWS équivalente (Nova/EC2,Swift/S3)

4 . 11

Page 19: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

LES 4 OPENSOpen SourceOpen DesignOpen DevelopmentOpen Community

https://governance.openstack.org/tc/reference/opens.html

https://www.openstack.org/four-opens/

4 . 12

Page 20: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

LA FONDATION OPENSTACKEntité de gouvernance principale et représentation juridiquedu projetLes membres du board sont issus des entreprises sponsors etélus par les membres individuelsTout le monde peut devenir membre individuel(gratuitement)Ressources humaines : marketing, événementiel, releasemanagement, quelques développeurs (principalement surl’infrastructure)600 organisations à travers le monde80000 membres individuels dans 170 pays

4 . 13

Page 21: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

LA FONDATION OPENSTACK

Les principales entités de la Fondation

4 . 14

Page 22: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

OPEN INFRASTRUCTURERécemment, la Fondation OpenStack s'élargit à l'OpenOpenInfrastructureInfrastructureAu-delà d'OpenStack, nouveaux projets chapeautés :

Kata ContainersZuulAirshipStarlingX

4 . 15

Page 23: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

RESSOURCESAnnonces (nouvelles versions, avis de sécurité) :

Portail documentation : API/SDK : Gouvernance du projet : Versions : Support :

[email protected]#openstack@Freenode

[email protected]

https://docs.openstack.org/https://developer.openstack.org/

https://governance.openstack.org/https://releases.openstack.org/

https://ask.openstack.org/

4 . 16

Page 24: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

RESSOURCESActualités :

Blog officiel : Planet : Superuser :

Ressources commerciales : entre autres

Job board :

https://www.openstack.org/blog/http://planet.openstack.org/

http://superuser.openstack.org/

https://www.openstack.org/marketplace/https://www.openstack.org/community/jobs/

4 . 17

Page 25: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

USER SURVEYSondage réalisé régulièrement par la Fondation (tous les 6mois)Auprès des déployeurs et utilisateursDonnées exploitables : https://www.openstack.org/analytics

4 . 18

Page 26: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

CERTIFICATION CERTIFIED OPENSTACK ADMINISTRATOR (COA)

Page 27: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

La seule certification :Validée par la Fondation OpenStackNon liée à une entreprise particulière

Contenu :Essentiellement orientée utilisateur de cloud OpenStack

Aspects pratiques :Examen pratique, passage à distance, durée : 2,5 heuresCoût : $300 (deux passages possibles)

Ressources

Tips : Handbook : Exercices (non-officiels) :

https://www.openstack.org/coa/requirements/

https://www.openstack.org/coa/https://www.openstack.org/coa/tips/

http://www.openstack.org/coa/handbook

https://github.com/AJNOURI/COA 4 . 19

Page 28: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

RESSOURCES - COMMUNAUTÉ FRANCOPHONE ET ASSOCIATION

Logo OpenStack-fr -

Meetups : Paris, Lyon, Toulouse, Montréal, etc.OpenStack Days France (Paris) :

Présence à des événements tels que Paris Open SourceSummitCanaux de communication :

[email protected]#openstack-fr@Freenode

https://openstack.fr/ https://asso.openstack.fr/

https://openstackdayfrance.fr/

4 . 20

Page 29: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

FONCTIONNEMENT INTERNE

4 . 21

Page 30: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

ARCHITECTURE

Vue détaillée des services

Page 31: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

4 . 22

Page 32: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

IMPLÉMENTATIONTout est développé en Python (Django pour la partie web)Chaque projet est découpé en plusieurs services (exemple :API, scheduler, etc.)Réutilisation de composants existants et de bibliothèquesexistantesUtilisation des bibliothèques oslo.* (développées par et pourOpenStack) : logs, config, etc.Utilisation de rootwrap pour appeler des programmes sous-jacents en root

4 . 23

Page 33: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

IMPLÉMENTATION - DÉPENDANCESBase de données : relationnelle SQL (MySQL/MariaDB)Communication entre les services : AMQP (RabbitMQ)Mise en cache : MemcachedStockage distribué de configuration (à venir) : etcd

4 . 24

Page 34: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

MODÈLE DE DÉVELOPPEMENT

4 . 25

Page 35: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

STATISTIQUES (2017)2344 développeurs65823 changements(commits)

https://www.openstack.org/assets/reports/OpenStack-AnnualReport2017.pdf

4 . 26

Page 36: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

DÉVELOPPEMENT DU PROJET : EN DÉTAILSOuvert à tous (individuels et entreprises)Cycle de développement de 6 moisChaque cycle débute par un Project Team Gathering (PTG)Pendant chaque cycle a lieu un OpenStack Summit

4 . 27

Page 37: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

LES OUTILS ET LA COMMUNICATIONCode : Git (GitHub est utilisé comme miroir)Revue de code (peer review) : GerritIntégration continue (CI: Continous Integration) : ZuulBlueprints/spécifications et bugs :LaunchpadStoryBoardCommunication : IRC et mailing-listsTraduction : Zanata

4 . 28

Page 38: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

DÉVELOPPEMENT DU PROJET : EN DÉTAILS

Workflow de changements dans OpenStack

4 . 29

Page 39: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

CYCLE DE DÉVELOPPEMENT : 6 MOISLe planning est publié, exemple :

Milestone releasesFreezes : Feature, Requirements, StringRC releasesStable releasesCas particulier de certains composants :

https://releases.openstack.org/stein/schedule.html

https://releases.openstack.org/reference/release_models.html

4 . 30

Page 40: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

PROJETSÉquipes projet (Project Teams) :

Chaque livrable est versionné indépendamment - Semanticversioning

https://governance.openstack.org/reference/projects/index.html

https://releases.openstack.org/

4 . 31

Page 41: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

QUI CONTRIBUE ?Active Technical Contributor (ATC)Personne ayant au moins une contribution récente dans unprojet OpenStack reconnuDroit de vote (TC et PTL)Core reviewer : ATC ayant les droits pour valider les patchsdans un projetProject Team Lead (PTL) : élu par les ATCs de chaque projetStackalytics fournit des statistiques sur les contributionshttp://stackalytics.com/

4 . 32

Page 42: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

OÙ TROUVER DES INFORMATIONS SUR LE DÉVELOPPEMENTD’OPENSTACK

Comment contribuer

Informations diverses, sur le wiki

Les blueprints et bugs sur Launchpad/StoryBoard

https://docs.openstack.org/project-team-guide/https://docs.openstack.org/infra/manual/

https://wiki.openstack.org/

https://launchpad.net/openstack/https://storyboard.openstack.org/https://specs.openstack.org/

4 . 33

Page 43: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

OÙ TROUVER DES INFORMATIONS SUR LE DÉVELOPPEMENTD’OPENSTACK

Les patchs proposés et leurs reviews sont sur Gerrit

L’état de la CI (entre autres)

Le code (Git) et les tarballs sont disponibles

IRCRéseau FreenodeLogs discussions et infos réunions :

Mailing-lists

https://review.openstack.org/

http://status.openstack.org/

https://git.openstack.org/https://tarballs.openstack.org/

http://eavesdrop.openstack.org/

http://lists.openstack.org/

Page 44: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

4 . 34

Page 45: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

UPSTREAM TRAININGDeux jours de formationApprendre à devenir contributeur àOpenStackLes outilsLes processesTravailler et collaborer de manière ouverte

4 . 35

Page 46: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

OPENSTACK INFRAÉquipe projet en charge de l’infrastructure dedéveloppement d’OpenStackTravaille comme les équipes de dev d’OpenStack et utilise lesmêmes outilsRésultat : Infrastructure as code open sourceopen source

Utilise du cloud (hybride)Développe certains outilsZuulyaml2ical

https://opensourceinfra.org/

4 . 36

Page 47: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

OPENSTACK SUMMITTous les 6 mois en milieu de cycle de développpementAux USA jusqu’en 2013, aujourd'hui alternance Amérique deNord et Asie/EuropeQuelques dizaines au début à des milliers de participantsaujourd’huiEn parallèle : conférence (utilisateurs, décideurs) et Forum(développeurs/opérateurs, remplace une partie du précédentDesign Summit)Détermine le nom de la prochaine release : lieu/ville àproximité du Summit

4 . 37

Page 48: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

EXEMPLE DU SUMMIT D’AVRIL 2013 À PORTLAND

Page 49: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

4 . 38

Page 50: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

EXEMPLE DU SUMMIT D’OCTOBRE 2015 À TOKYO

Page 51: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

Photo : Elizabeth K. Joseph, CC BY 2.0, Flickr/pleia2

4 . 39

Page 52: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

EXEMPLE DU SUMMIT D’OCTOBRE 2015 À TOKYO

Page 53: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

Photo : Elizabeth K. Joseph, CC BY 2.0, Flickr/pleia2

4 . 40

Page 54: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

EXEMPLE DU SUMMIT D’OCTOBRE 2015 À TOKYO

Page 55: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

Photo : Elizabeth K. Joseph, CC BY 2.0, Flickr/pleia2

4 . 41

Page 56: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

EXEMPLE DU SUMMIT D’OCTOBRE 2015 À TOKYO

Page 57: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

4 . 42

Page 58: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

PROJECT TEAM GATHERING (PTG)Depuis 2017Au début de chaque cycleRemplace une partie du précédent DesignSummitDédié aux développeurs

4 . 43

Page 59: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

TRADUCTIONÉquipe officielle i18nSeules certaines parties sont traduites, comme HorizonLa traduction française est aujourd’hui une des plus avancéesUtilisation d'une plateforme web basée Zanata :https://translate.openstack.org/

4 . 44

Page 60: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

DEVSTACK : FAIRE TOURNER RAPIDEMENT UN OPENSTACK

4 . 45

Page 61: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

UTILITÉ DE DEVSTACKDéployer rapidement un OpenStackUtilisé par les développeurs pour tester leurs changementsUtilisé pour faire des démonstrationsUtilisé pour tester les APIs sans se préoccuper dudéploiementNe doit PAS être utilisé pour de la production

4 . 46

Page 62: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

FONCTIONNEMENT DE DEVSTACKSupport d'Ubuntu 16.04/17.04, Fedora 24/25, CentOS/RHEL 7,Debian, OpenSUSEUn script shell qui fait tout le travail : stack.shUn fichier de configuration : local.confInstalle toutes les dépendances nécessaires (paquets)Clone les dépôts git (branche master par défaut)Lance tous les composants

4 . 47

Page 63: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

CONFIGURATION : LOCAL.CONFExemple

[[local|localrc]]ADMIN_PASSWORD=secreteDATABASE_PASSWORD=$ADMIN_PASSWORDRABBIT_PASSWORD=$ADMIN_PASSWORDSERVICE_PASSWORD=$ADMIN_PASSWORDSERVICE_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

4 . 48

Page 64: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

CONSEILS D’UTILISATIONDevStack installe beaucoup de choses sur la machineIl est recommandé de travailler dans une VMPour tester tous les composants OpenStack dans de bonnesconditions, plusieurs Go de RAM sont nécessairesL’utilisation de Vagrant est conseillée

4 . 49

Page 65: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

DÉPLOYER OPENSTACK

5 . 1

Page 66: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

CE QU’ON VA VOIRInstaller OpenStack à la main

Donc comprendre son fonctionnementPasser en revue chaque composant plus en détailsTour d’horizon des solutions de déploiement

https://docs.openstack.org/install-guide/

5 . 2

Page 67: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

ARCHITECTURE DÉTAILLÉE

Vue détaillée des services5 . 3

Page 68: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

ARCHITECTURE SERVICES

Page 69: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

5 . 4

Page 70: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

QUELQUES ÉLÉMENTS DE CONFIGURATION GÉNÉRAUXTous les composants doivent être configurés pourcommuniquer avec KeystoneLa plupart doivent être configurés pour communiquer avecMySQL/MariaDB et RabbitMQLes composants découpés en plusieurs services ont parfoisun fichier de configuration par serviceLe fichier de configuration policy.json précise les droitsnécessaires pour chaque appel API

5 . 5

Page 71: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

SYSTÈME D’EXPLOITATIONOS Linux avec PythonUbuntuRed HatSUSEDebian, Fedora, CentOS,etc.

5 . 6

Page 72: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

PYTHON

Logo PythonOpenStack est compatible Python 2.7Comptabilité Python 3 presque complèteAfin de ne pas réinventer la roue, beaucoup de dépendancessont nécessaires

5 . 7

Page 73: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

BASE DE DONNÉES MYSQL/MARIADBPermet de stocker la majorité des données gérées parOpenStackChaque composant a sa propre baseOpenStack utilise l’ORM Python SQLAlchemySupport théorique équivalent à celui de SQLAlchemy (etsupport des migrations)MySQL/MariaDB est l’implémentation la plus largementtestée et utiliséeSQLite est principalement utilisé dans le cadre de tests etdémoCertains déploiements fonctionnent avec PostgreSQL

5 . 8

Page 74: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

PASSAGE DE MESSAGESAMQP : Advanced Message Queuing ProtocolMessages, file d’attente, routageLes processus OpenStack communiquent via AMQPPlusieurs implémentations possibles : Qpid, 0MQ,etc.RabbitMQ par défaut

5 . 9

Page 75: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

RABBITMQ

Logo RabbitMQRabbitMQ est implémenté en ErlangUne machine virtuelle Erlang est doncnécessaire

5 . 10

Page 76: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

“HELLO WORLD” RABBITMQ

Illustration simple du fonctionnement de RabbitMQ

5 . 11

Page 77: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

CACHE MEMCACHEDPlusieurs services tirent parti d'un mécanisme decacheMemcached est l'implémentation par défaut

5 . 12

Page 78: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

KEYSTONE : AUTHENTIFICATION, AUTORISATION ET CATALOGUEDE SERVICES

5 . 13

Page 79: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

INSTALLATION ET CONFIGURATIONPaquet APT : keystoneIntégration serveur web WSGI (Apache par défaut)Fichier de configuration: /etc/keystone/keystone.confBackends utilisateurs/groupes : SQL, LDAP (ou ActiveDirectory)Backends projets/rôles/services/endpoints : SQLBackends tokens : SQL, Memcache, aucun (suivant le type detokens)

5 . 14

Page 80: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

DRIVERS POUR TOKENSUuidPKIFernet

5 . 15

Page 81: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

BOOTSTRAPCréation des services et endpoints (à commencer parKeystone)Création d'utilisateurs, groupes, domainesFonctionnalité de bootstrap

5 . 16

Page 82: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

NOVA : COMPUTE

5 . 17

Page 83: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

NOVA APIDouble rôleAPI de manipulation des instances par l’utilisateurAPI à destination des instances : API de metadataL’API de metadata doit être accessible à l’adressehttp://169.254.169.254/L’API de metadata fournit des informations de configurationpersonnalisées à chacune des instances

5 . 18

Page 84: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

NOVA COMPUTEPilote les instances (machines virtuelles ou physiques)Tire partie de libvirt ou d’autres APIs comme XenAPIDrivers : libvirt (KVM, LXC, etc.), XenAPI, VMWare vSphere,IronicPermet de récupérer les logs de la console et une consoleVNC

5 . 19

Page 85: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

NOVA SCHEDULERService qui distribue les demandes d’instances sur les nœudscomputeFilter, Chance, Multi SchedulerFiltres, par défaut :AvailabilityZoneFilter,RamFilter,ComputeFilterTri par poids, par défaut : RamWeigher

5 . 20

Page 86: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

LE SCHEDULER NOVA EN ACTION

Fonctionnement de nova-scheduler

5 . 21

Page 87: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

NOVA CONDUCTORService facultatif qui améliore la sécuritéFait office de proxy entre les nœuds compute et la BDDLes nœuds compute, vulnérables, n’ont donc plus d’accès àla BDD

5 . 22

Page 88: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

GLANCE : REGISTRE D’IMAGES

5 . 23

Page 89: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

BACKENDSSwift ou S3CephHTTPRépertoirelocal

5 . 24

Page 90: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

INSTALLATIONPaquet APT : glance-api

5 . 25

Page 91: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

NEUTRON : RÉSEAU EN TANT QUE SERVICE

5 . 26

Page 92: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

PRINCIPESSoftware Defined Networking (SDN)Auparavant Quantum et nova-networkneutron-server : fournit l’APIAgent DHCP : fournit le service de DHCP pour les instancesAgent L3 : gère la couche 3 du réseau, le routagePlugin : LinuxBridge par défaut, d’autres implémentationslibres/propriétaires, logicielles/matérielles existent

5 . 27

Page 93: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

FONCTIONNALITÉS SUPPLÉMENTAIRESOutre les fonctions réseau de base niveaux 2 et 3, Neutron peut

fournir d’autres services :

Load Balancing (HAProxy, ...)Firewall (vArmour, ...) : diffère des groupes de sécuritéVPN (Openswan, ...) : permet d’accéder à un réseau privé sansIP flottantes

Ces fonctionnalités se basent également sur des plugins

5 . 28

Page 94: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

PLUGINS ML2Modular Layer 2Modular Layer 2LinuxBridgeOpenVSwitchOpenDaylightContrail, OpenContrailNuage NetworksVMWare NSXcf. OpenFlow

5 . 29

Page 95: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

IMPLÉMENTATIONChaque réseau est un bridgeLes bridges sont étendus entre les machines via des tunnels(type VXLAN) si nécessairesNeutron tire partie des namespaces réseaux du noyau Linuxpour permettre l’IP overlappingLe proxy de metadata est un composant qui permet auxinstances isolées dans leur réseau de joindre l’API demetadata fournie par Nova

5 . 30

Page 96: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

SCHÉMA

Page 97: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

Vue utilisateur du réseau

5 . 31

Page 98: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

SCHÉMA

Page 99: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

5 . 32

Page 100: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

CINDER : STOCKAGE BLOCK

5 . 33

Page 101: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

PRINCIPESAuparavant nova-volumeFournit des volumesAttachement des volumes via iSCSI par défaut

5 . 34

Page 102: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

INSTALLATIONPaquet cinder-api : fournit l’APIPaquet cinder-volume : création et gestion des volumesPaquet cinder-scheduler : distribue les demandes de créationde volumePaquet cinder-backup (optionnel) : backup vers un objectstore

5 . 35

Page 103: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

BACKENDSUtilisation de plusieurs backends en parallèlepossibleLVM (par défaut)GlusterFSCephSystèmes de stockage propriétaires type NetAppDRBD

5 . 36

Page 104: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

HORIZON : DASHBOARD WEB

5 . 37

Page 105: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

PRINCIPESHorizon est un module DjangoOpenStack Dashboard est l’implémentation officielle de cemodule

Logo du framework web Python Django5 . 38

Page 106: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

CONFIGURATIONlocal_settings.pyLes services apparaissent dans Horizon s’ils sont répertoriésdans le catalogue de services de Keystone

5 . 39

Page 107: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

SWIFT : STOCKAGE OBJET

5 . 40

Page 108: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

PRINCIPESSDS : Software Defined StorageUtilisation de commodityhardwareThéorème CAP : on en choisit deuxArchitecture totalement acentréePas de base de données centrale

5 . 41

Page 109: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

IMPLÉMENTATIONProxy : serveur API par lequel passent toutes les requêtesObject server : serveur de stockageContainer server : maintient des listes d’objects dans descontainersAccount server : maintient des listes de containers dans desaccountsChaque objet est répliqué n fois (3 par défaut)

5 . 42

Page 110: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

LE RINGProblème : comment décider quelle donnée va sur quelobject serverLe ring est découpé en partitionsOn situe chaque donnée dans le ring afin de déterminer sapartitionUne partition est associée à plusieurs serveurs

5 . 43

Page 111: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

SCHÉMA

Architecture Swift5 . 44

Page 112: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

CEILOMETER : COLLECTE DE MÉTRIQUES

5 . 45

Page 113: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

SURVEILLER L’UTILISATION DE SON INFRASTRUCTURE AVECCEILOMETER

Indexer et stocker différentes métriques concernantl’utilisation des différents services du cloudFournir des APIs permettant de récupérer ces donnéesBase pour construire des outils de facturation (exemple :CloudKitty)

5 . 46

Page 114: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

CEILOMETERRécupère les données et les stockeHistoriquement : stockage MongoDBAujourd'hui : stockage Gnocchi

5 . 47

Page 115: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

GNOCCHI : TIME-SERIES DATABASEPourquoi Gnocchi ? Palier aux problème de scalabilité deCeilometer + MongoDBInitié par des développeurs de Ceilometer et intégré àl’équipe projet CeilometerFournit une API pour lire et écrire les donnéesSe base sur une BDD relationnelle et un système de stockageobjet

5 . 48

Page 116: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

HEAT : ORCHESTRATION DES RESSOURCES

5 . 49

Page 117: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

ARCHITECTUREheat-apiheat-engine

5 . 50

Page 118: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

QUELQUES AUTRES COMPOSANTS INTÉRESSANTS

5 . 51

Page 119: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

TROVE : DATABASE AS A SERVICEtrove-api : APItrove-taskmanager : gère les instances BDDtrove-guestagent : agent interne à l’instance

5 . 52

Page 120: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

DESIGNATE : DNS AS A SERVICEGère différents backends : BIND, PowerDNS,etc.

5 . 53

Page 121: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

BARBICAN : KEY MANAGEMENT AS A SERVICEBackends possibles:

Fichiers chiffrésPKCS#11KMIPDogtag

5 . 54

Page 122: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

MAGNUM : CONTAINER INFRASTRUCTURE AS A SERVICEBackends: Swarm,Kubernetes

5 . 55

Page 123: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

OPENSTACK EN PRODUCTION ET OPÉRATIONS

6 . 1

Page 124: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

BONNES PRATIQUES POUR UN DÉPLOIEMENT EN PRODUCTION

6 . 2

Page 125: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

QUELS COMPOSANTS DOIS-JE INSTALLER ?Keystone est indispensableL’utilisation de Nova va de paire avec Glance et NeutronCinder et Swift s'apprécient en fonction des besoins destockageSwift peut être utilisé indépendemment des autrescomposantsHeat coûte peuLes services plus haut niveau s'évaluent au cas par cas

https://docs.openstack.org/arch-design/

6 . 3

Page 126: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

PENSER DÈS LE DÉBUT AUX CHOIX STRUCTURANTSDistribution et méthode de déploiementPolitique de mise à jourDrivers/backends : hyperviseur, stockage block,etc.Réseau : quelle architecture et quels drivers

6 . 4

Page 127: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

LES DIFFÉRENTES MÉTHODES D’INSTALLATIONDevStack est à oublier pour la productionLe déploiement à la main comme vu précédemment n’est pasrecommandé car peu maintenableDistributions OpenStack packagées et prêtes à l’emploiDistributions classiques et gestion de configurationDéploiement continu

6 . 5

Page 128: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

MISES À JOUR ENTRE VERSIONS MAJEURESOpenStack supporte les mises à jour N → N+1Swift : très bonne gestion en mode rolling upgradeAutres composants : tester préalablement avec vos donnéesLire les release notesCf. articles de blog du CERNhttps://techblog.web.cern.ch/techblog/

6 . 6

Page 129: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

MISES À JOUR DANS UNE VERSION STABLEFourniture de correctifs de bugs majeurs et de sécuritéOpenStack intègre ces correctifs sous forme de patchs dansla branche stablePublication de point releases intégrant ces correctifs issus dela branche stableDurée variable du support des versions stables, dépendantde l’intérêt des intégrateurs

6 . 7

Page 130: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

ASSIGNER DES RÔLES AUX MACHINESBeaucoup de documentations font référence à ces rôles :

Controller node : APIs, BDD, AMQPNetwork node : DHCP, routeur, IPs flottantesCompute node : Hyperviseur/pilotage des instances

Ce modèle simplifié n’est pas HA.

6 . 8

Page 131: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

HAUTE DISPONIBILITÉHaute disponibilité du IaaS

MySQL/MariaDB, RabbitMQ : HA classique (Galera, Clustering)Les services APIs sont stateless et HTTP : scale out et loadbalancersLa plupart des autres services OpenStack sont capables descale out également

Guide HA :

Conférences par Florian Haas, Hastexo :

https://docs.openstack.org/ha-guide/

https://www.openstack.org/community/speakers/profile/398/florian-haas

6 . 9

Page 132: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

HAUTE DISPONIBILITÉ DE L’AGENT L3 DE NEUTRONDistributed Virtual Router (DVR)L3 agent HA (VRRP)

6 . 10

Page 133: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

CONSIDÉRATIONS APISDes URLs uniformes pour toutes les APIs :

Utiliser un reverse proxyMettre à jour le catalogue de services

Apache/mod_wsgi pour servir les APIs lorsque cela estpossible (Keystone, etc.)

Guide Operations : https://docs.openstack.org/openstack-ops/content/

6 . 11

Page 134: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

DÉCOUPAGE RÉSEAUManagement network : réseau d’administrationData/instances network : réseau pour la communication interinstancesExternal network : réseau externe, dans l’infrastructureréseau existanteStorage network : réseau pour le stockage Cinder/SwiftAPI network : réseau contenant les endpoints API

6 . 12

Page 135: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

CONSIDÉRATIONS LIÉES À LA SÉCURITÉIndispensable : HTTPS sur l’accès des APIs à l’extérieurSécurisation des communications MySQL/MariaDB etRabbitMQUn accès MySQL/MariaDB par base et par serviceUn utilisateur Keystone par serviceLimiter l’accès en lecture des fichiers de configuration (motsde passe, token)Veille sur les failles de sécurité : OSSA (OpenStack SecurityAdvisory), OSSN (... Notes)

Guide sécurité : https://docs.openstack.org/security-guide/

6 . 13

Page 136: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

SEGMENTER SON CLOUDHost aggregates : machines physiques avec descaractéristiques similairesAvailability zones : machines dépendantes d’une mêmesource électrique, d’un même switch, d’un même DC, etc.Regions : chaque région a son APICells : permet de regrouper plusieurs cloud différents sousune même API

https://docs.openstack.org/openstack-ops/content/scaling.html#segregate_cloud

6 . 14

Page 137: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

HOST AGGREGATES / AGRÉGATS D’HÔTESSpécifique NovaL’administrateur définit des agrégats d’hôtes via l’APIL’administrateur associe flavors et agrégats via des couplesclé/valeur communs1 agrégat ≡ 1 point commun, ex : GPUL’utilisateur choisit un agrégat à travers son choix de flavor àla création d’instance

6 . 15

Page 138: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

AVAILABILITY ZONES / ZONES DE DISPONIBILITÉSpécifique Nova et CinderGroupes d’hôtesDécoupage en termes de disponibilité : Rack, Datacenter, etc.L’utilisateur choisit une zone de disponibilité à la créationd’instanceL’utilisateur peut demander à ce que des instances soientdémarrées dans une même zone, ou au contraire dans deszones différentes

6 . 16

Page 139: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

RÉGIONSGénérique OpenStackÉquivalent des régions d’AWSUn service peut avoir différents endpoints dans différentesrégionsChaque région est autonomeCas d’usage : cloud de grande ampleur (comme certainsclouds publics)

6 . 17

Page 140: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

CELLS / CELLULESSpécifique NovaUn seul nova-api devant plusieurs cellulesChaque cellule a sa propre BDD et file de messagesAjoute un niveau de scheduling (choix de lacellule)

6 . 18

Page 141: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

PACKAGING D’OPENSTACK - UBUNTULe packaging est fait dans de multiples distributions, RPM,DEB et autresUbuntu est historiquement la plateforme de référence pourle développement d’OpenStackLe packaging dans Ubuntu suit de près le développementd’OpenStack, et des tests automatisés sont réalisésCanonical fournit la Ubuntu Cloud Archive, qui met àdisposition la dernière version d’OpenStack pour la dernièreUbuntu LTS

6 . 19

Page 142: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

UBUNTU CLOUD ARCHIVE (UCA)

Support d'OpenStack dans Ubuntu via l'UCA6 . 20

Page 143: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

PACKAGING D’OPENSTACK DANS LES AUTRES DISTRIBUTIONSOpenStack est intégré dans les dépôts officiels de DebianRed Hat propose RHOS/RDO (déploiement basé sur TripleO)Comme Ubuntu, le cycle de release de Fedora estsynchronisé avec celui d’OpenStack

6 . 21

Page 144: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

LES DISTRIBUTIONS OPENSTACKStackOps : historiqueMirantis : FuelHP Helion : Ansible custometc.

6 . 22

Page 145: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

TRIPLEOOpenStack On OpenStackObjectif : pouvoir déployer un cloud OpenStack (overcloud) àpartir d’un cloud OpenStack (undercloud)Autoscaling du cloud lui-même : déploiement de nouveauxnœuds compute lorsque cela est nécessaireFonctionne conjointement avec Ironic pour le déploiementbare-metal

6 . 23

Page 146: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

DÉPLOIEMENT BARE-METALLe déploiement des hôtes physiques OpenStack peut se faireà l’aide d’outils dédiésMaaS (Metal as a Service), par Ubuntu/Canonical : se coupleavec JujuCrowbar / OpenCrowbar (initialement Dell) : utilise ChefeDeploy (eNovance) : déploiement par des imagesIronic via TripleO

6 . 24

Page 147: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

GESTION DE CONFIGURATIONPuppet, Chef, CFEngine, Saltstack, Ansible, etc.Ces outils peuvent aider à déployer le cloudOpenStack... mais aussi à gérer les instances (section suivante)

6 . 25

Page 148: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

MODULES PUPPET, PLAYBOOKS ANSIBLEPuppet OpenStack et OpenStack Ansible : modules Puppet etplaybooks AnsibleDéveloppés au sein du projet OpenStackhttps://wiki.openstack.org/wiki/Puppethttps://docs.openstack.org/developer/openstack-ansible/install-guide/

6 . 26

Page 149: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

DÉPLOIEMENT CONTINUOpenStack maintient un master (trunk) toujours stablePossibilité de déployer au jour le jour le master (CD :Continous Delivery)Nécessite la mise en place d’une infrastructure importanteFacilite les mises à jour entre versions majeures

6 . 27

Page 150: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

TEST ET VALIDATION : TEMPESTSuite de tests d’un cloud OpenStackEffectue des appels à l’API et vérifie le résultatEst très utilisé par les développeurs via l’intégration continueLe déployeur peut utiliser Tempest pour vérifier la bonneconformité de son cloudCf. aussi Rally

6 . 28

Page 151: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

GÉRER LES PROBLÈMES

6 . 29

Page 152: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

LES RÉFLEXES EN CAS D’ERREUR OU DE COMPORTEMENT ERRONÉTravaille-t-on sur le bon projet ?Est-ce que l’API renvoie une erreur ? (le dashboard peutcacher certaines informations)Si nécessaire d’aller plus loin :

Regarder les logs sur le cloud controller(/var/log/<composant>/*.log)Regarder les logs sur le compute node et le network nodesi le problème est spécifique réseau/instanceÉventuellement modifier la verbosité des logs dans laconfiguration

6 . 30

Page 153: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

EST-CE UN BUG ?Si le client CLI crash, c’est un bugSi le dashboard web ou une API renvoie une erreur 500, c’estpeut-être un bugSi les logs montrent une stacktrace Python, c’est un bugSinon, à vous d’en juger

6 . 31

Page 154: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

OPÉRATIONS

6 . 32

Page 155: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

GESTION DES LOGSCentraliser les logsLogs d'APILogs autres composantsOpenStackLogs BDD, AMQP, etc.

6 . 33

Page 156: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

BACKUPBases de donnéesMécanisme de déploiement, plutôt que les fichiers deconfiguration

6 . 34

Page 157: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

MONITORINGRéponse des APIsVérification des services OpenStack etdépendances

6 . 35

Page 158: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

UTILISATION DES QUOTASLimiter le nombre de ressourcesallouablesPar utilisateur ou par projetSupport dans NovaSupport dans CinderSupport dans Neutron

6 . 36

Page 159: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

CONCLUSION

7 . 1

Page 160: OPENSTACK-OPS · OBJECTIFS DE LA FORMATION : OPENSTACK Connaitre le fonctionnement du projet OpenStack et ses possibilités Comprendre le fonctionnement de chacun des composants d’OpenStack

POUR CONCLURELe cloud révolutionne l’ITOpenStack est le projet libre phare sur la partie IaaSDéployer OpenStack n’est pas une mince affaireL’utilisation d’un cloud IaaS implique des changements depratiqueLes métiers d’architecture logicielle et infra évoluent

7 . 2


Recommended