Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Formation OpenStack (FR)

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

Formation OpenStack (FR)

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

Avatar for Pierre FREUND

Pierre FREUND

July 11, 2014

Other Decks in Technology

Transcript

  1. Concernant ces supports de cours Supports de cours OpenStack r´

    ealis´ es par Osones (https://osones.com/) Auteurs : Adrien Cunin <[email protected]> Pierre Freund <[email protected]> Copyright c 2014 Osones Licence : Creative Commons BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/deed.fr Sources : https://github.com/Osones/OpenStack-Formations/ Formation OpenStack July 7, 2014 2 / 194
  2. Objectifs de la formation : Cloud Comprendre les principes du

    cloud et son int´ erˆ et Connaitre le vocabulaire inh´ erent au cloud Avoir une vue d’ensemble sur les solutions existantes en cloud public et priv´ e Poss´ eder les cl´ es pour tirer partie au mieux de l’IaaS Pouvoir d´ eterminer ce qui est compatible avec la philosophie cloud ou pas Adapter ses m´ ethodes d’administration syst` eme ` a un environnement cloud Formation OpenStack July 7, 2014 3 / 194
  3. Objectifs de la formation : OpenStack Connaitre le fonctionnement du

    projet OpenStack et ses possibilit´ es Comprendre le fonctionnement de chacun des composants d’OpenStack Pouvoir faire les bons choix de configuration Savoir d´ eployer manuellement un cloud OpenStack pour fournir de l’IaaS Connaitre les bonnes pratiques de d´ eploiement d’OpenStack ˆ Etre capable de d´ eterminer l’origine d’une erreur dans OpenStack Savoir r´ eagir face ` a un bug Formation OpenStack July 7, 2014 4 / 194
  4. Pr´ e-requis de la formation Comp´ etences d’administration syst` eme

    Linux tel qu’Ubuntu Gestion des paquets LVM et syst` emes de fichiers Notions de virtualisation, KVM et libvirt Peut servir : ` A l’aise dans un environnement Python Formation OpenStack July 7, 2014 5 / 194
  5. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation 3 D´ eployer OpenStack 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 6 / 194
  6. Plan 1 Le Cloud : vue d’ensemble Le Cloud :

    les concepts PaaS : Platform as a Service IaaS : Infrastructure as a Service Stockage : block, objet, SDS Orchestrer les ressources de son IaaS APIs : quel rˆ ole ? 2 OpenStack : projet, logiciel et utilisation 3 D´ eployer OpenStack 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 7 / 194
  7. Plan 1 Le Cloud : vue d’ensemble Le Cloud :

    les concepts PaaS : Platform as a Service IaaS : Infrastructure as a Service Stockage : block, objet, SDS Orchestrer les ressources de son IaaS APIs : quel rˆ ole ? 2 OpenStack : projet, logiciel et utilisation 3 D´ eployer OpenStack 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 8 / 194
  8. Le cloud, c’est large ! Stockage/calcul distant (on oublie, cf.

    externalisation) Virtualisation++ Abstraction du mat´ eriel (voire plus) Acc` es normalis´ e par des APIs Service et facturation ` a la demande Flexibilit´ e, ´ elasticit´ e Formation OpenStack July 7, 2014 9 / 194
  9. WaaS : Whatever as a Service Principalement IaaS Infrastructure as

    a Service PaaS Platform as a Service SaaS Software as a Service Mais aussi : Database as a Service Network as a Service Load balancing as a Service $APPLICATION as a Service Formation OpenStack July 7, 2014 10 / 194
  10. Cloud public ou cloud priv´ e ? Public fourni par

    un h´ ebergeur ` a des clients (AWS, Rackspace Cloud, etc.) Priv´ e plateforme et ressources internes Hybride utilisation de ressources publiques au sein d’un cloud priv´ e Formation OpenStack July 7, 2014 11 / 194
  11. Pourquoi du cloud ? Cˆ ot´ e business Baisse des

    coˆ uts par la mutualisation des ressources Utilisation uniquement des ressources qui sont n´ ecessaires ` A grande ´ echelle, garantie de service Formation OpenStack July 7, 2014 13 / 194
  12. Pourquoi du cloud ? Cˆ ot´ e technique Abstraction des

    couches plus basses On peut tout programmer ` a son gr´ e Permet la mise en place d’architectures scalables Formation OpenStack July 7, 2014 14 / 194
  13. Plan 1 Le Cloud : vue d’ensemble Le Cloud :

    les concepts PaaS : Platform as a Service IaaS : Infrastructure as a Service Stockage : block, objet, SDS Orchestrer les ressources de son IaaS APIs : quel rˆ ole ? 2 OpenStack : projet, logiciel et utilisation 3 D´ eployer OpenStack 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 15 / 194
  14. PaaS : les principes Fourniture d’une plateforme de d´ eveloppement

    Fourniture d’une plateforme de d´ eploiement Pour un langage / un framework Principalement utilis´ e par des d´ eveloppeurs Formation OpenStack July 7, 2014 16 / 194
  15. Exemples de PaaS publics Amazon OpsWork / Elastic Beanstalk Google

    App Engine Heroku Formation OpenStack July 7, 2014 17 / 194
  16. Solutions de PaaS priv´ e Cloud Foundry OpenShift (Red Hat)

    Solum Formation OpenStack July 7, 2014 18 / 194
  17. Plan 1 Le Cloud : vue d’ensemble Le Cloud :

    les concepts PaaS : Platform as a Service IaaS : Infrastructure as a Service Stockage : block, objet, SDS Orchestrer les ressources de son IaaS APIs : quel rˆ ole ? 2 OpenStack : projet, logiciel et utilisation 3 D´ eployer OpenStack 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 19 / 194
  18. Amazon Web Services (AWS) et les autres Service (cloud public)

    : AWS Pionnier du genre (d` es 2002) Elastic Compute Cloud (EC2) Elastic Block Storage (EBS) Simple Storage Service (S3) Logiciels libres permettant le d´ eploiement d’un cloud priv´ e : Eucalyptus CloudStack OpenNebula OpenStack Formation OpenStack July 7, 2014 20 / 194
  19. Les clouds publics concurrents d’AWS Google Compute Platform Rackspace HP

    Cloud En France Cloudwatt Numergy Formation OpenStack July 7, 2014 21 / 194
  20. Virtualisation dans le cloud Le cloud IaaS repose souvent sur

    la virtualisation Ressources compute ← virtualisation Virtualisation compl` ete : KVM, Xen Virtualisation containers : OpenVZ, LXC, Docker Formation OpenStack July 7, 2014 22 / 194
  21. Notions et vocabulaire IaaS Images Instances Types d’instance (flavors) Volumes

    Stockage block Stockage objet IP flottantes/´ elastiques Groupes de s´ ecurit´ e Paires de cl´ es API REST API de metadata et user data Cloud-init Formation OpenStack July 7, 2014 23 / 194
  22. Notions et vocabulaire IaaS L’instance est par d´ efinition ´

    eph´ em` ere Elle doit ˆ etre utilis´ ee comme ressource de calcul Une image se personnalise lors de son instanciation grˆ ace ` a l’API de metadata S´ eparer les donn´ ees des instances Choix du type de stockage : ´ eph´ em` ere, volume, objet Formation OpenStack July 7, 2014 24 / 194
  23. Plan 1 Le Cloud : vue d’ensemble Le Cloud :

    les concepts PaaS : Platform as a Service IaaS : Infrastructure as a Service Stockage : block, objet, SDS Orchestrer les ressources de son IaaS APIs : quel rˆ ole ? 2 OpenStack : projet, logiciel et utilisation 3 D´ eployer OpenStack 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 27 / 194
  24. Stockage block Acc` es ` a des raw devices type

    /dev/vdb Possibilit´ e d’utiliser n’importe quel syst` eme de fichiers Compatible avec toutes les applications legacy Formation OpenStack July 7, 2014 28 / 194
  25. Stockage objet Pousser et retirer des objets dans un container/bucket

    Pas de hi´ erarchie des donn´ ees, pas de syst` eme de fichiers Acc` es par les APIs L’application doit ˆ etre con¸ cue pour tirer partie du stockage objet Formation OpenStack July 7, 2014 29 / 194
  26. SDS : Software Defined Storage Utilisation de commodity hardware Pas

    de RAID mat´ eriel Le logiciel est responsable de garantir les donn´ ees Formation OpenStack July 7, 2014 31 / 194
  27. Deux solutions : OpenStack Swift et Ceph Swift fait partie

    du projet OpenStack et fournit du stockage objet Ceph fournit du stockage objet, block et FS Les deux sont du SDS Th´ eor` eme CAP : on en choisit deux Formation OpenStack July 7, 2014 32 / 194
  28. Swift Swift est un projet OpenStack Le projet est n´

    e chez Rackspace avant la cr´ eation d’OpenStack Swift est en production chez Rackspace depuis lors C’est le composant le plus mature d’OpenStack Formation OpenStack July 7, 2014 34 / 194
  29. Ceph Projet totalement parall` ele ` a OpenStack Support´ e

    par une entreprise (Inktank) r´ ecemment rachet´ ee par Red Hat Fournit d’abord du stockage objet L’acc` es aux donn´ ees se fait via RADOS : Acc` es direct depuis une application avec librados Acc` es via une API REST grˆ ace ` a radosgw La couche RBD permet d’acc´ eder aux donn´ ees en mode block (volumes) CephFS permet un acc` es par un syst` eme de fichiers POSIX Formation OpenStack July 7, 2014 35 / 194
  30. Plan 1 Le Cloud : vue d’ensemble Le Cloud :

    les concepts PaaS : Platform as a Service IaaS : Infrastructure as a Service Stockage : block, objet, SDS Orchestrer les ressources de son IaaS APIs : quel rˆ ole ? 2 OpenStack : projet, logiciel et utilisation 3 D´ eployer OpenStack 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 36 / 194
  31. Pourquoi orchestrer D´ efinir tout une infrastructure dans un seul

    fichier texte ˆ Etre en capacit´ e d’instancier une infrastructure enti` ere en un appel API Adapter ses ressources en fonction de ses besoins en temps r´ eel (autoscaling) Formation OpenStack July 7, 2014 37 / 194
  32. Plan 1 Le Cloud : vue d’ensemble Le Cloud :

    les concepts PaaS : Platform as a Service IaaS : Infrastructure as a Service Stockage : block, objet, SDS Orchestrer les ressources de son IaaS APIs : quel rˆ ole ? 2 OpenStack : projet, logiciel et utilisation 3 D´ eployer OpenStack 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 38 / 194
  33. API ? Application Programming Interface Au sens logiciel : Interface

    permettant ` a un logiciel d’utiliser une biblioth` eque Au sens cloud : Interface permettant ` a un logiciel d’utiliser un service (XaaS) Il s’agit le plus souvent d’API HTTP REST Formation OpenStack July 7, 2014 39 / 194
  34. Exemple concret GET /v2.0/networks/network_id { "network":{ "status":"ACTIVE", "subnets":[ "54d6f61d-db07-451c-9ab3-b9609b6b6f0b" ],

    "name":"private-network", "provider:physical_network":null, "admin_state_up":true, "tenant_id":"4fd44f30292945e481c7b8a0c8908869", "provider:network_type":"local", "router:external":true, "shared":true, "id":"d32019d3-bc6e-4319-9c1d-6722fc136a22", "provider:segmentation_id":null } Formation OpenStack July 7, 2014 40 / 194
  35. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation Pr´ esentation du projet et du logiciel DevStack : faire tourner rapidement un OpenStack Utiliser OpenStack 3 D´ eployer OpenStack 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 41 / 194
  36. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation Pr´ esentation du projet et du logiciel DevStack : faire tourner rapidement un OpenStack Utiliser OpenStack 3 D´ eployer OpenStack 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 42 / 194
  37. Vue haut niveau Networking OPENSTACK CLOUD OPERATING SYSTEM Standard Hardware

    Compute Storage Your Applications OpenStack Dashboard OpenStack Shared Services APIs Formation OpenStack July 7, 2014 43 / 194
  38. Historique D´ emarrage en 2010 Objectif : le Cloud Operating

    System libre Fusion de deux projets de Rackspace (Storage) et de la NASA (Compute) D´ evelopp´ e en Python et distribu´ e sous licence Apache 2.0 Les releases jusqu’` a aujourd’hui : Austin (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) Novembre 2014 : Juno Formation OpenStack July 7, 2014 44 / 194
  39. Quelques soutiens/contributeurs ... Rackspace et la NASA Canonical Red Hat

    Suse HP IBM Dell, Intel Cisco, Juniper NetApp, VMWare Yahoo, Bull Mais aussi : Mirantis, StackOps, eNovance http://www.openstack.org/foundation/companies/ Formation OpenStack July 7, 2014 45 / 194
  40. ... et utilisateurs Tous les contributeurs pr´ ec´ edemment cit´

    es En France : CloudWatt et Numergy Wikimedia CERN Paypal Comcast Etc. Sans compter les impl´ ementations confidentielles http://www.openstack.org/user-stories/ Formation OpenStack July 7, 2014 46 / 194
  41. Les diff´ erents sous-projets OpenStack Compute - Nova OpenStack (Object)

    Storage - Swift OpenStack Block Storage - Cinder OpenStack Networking - Neutron OpenStack Image Service - Glance OpenStack Identity Service - Keystone OpenStack Dashboard - Horizon OpenStack Metering - Ceilometer OpenStack Orchestration - Heat OpenStack Database Service - Trove Formation OpenStack July 7, 2014 47 / 194
  42. Les diff´ erents sous-projets (2) Incubating (` a jour Icehouse)

    Bare metal (Ironic) Queue service (Marconi) Data processing (Sahara) Int´ eressants DNS service (Designate) Autres Oslo rootwrap : wrapper pour les commandes root utilis´ e par les projets TripleO Tempest, Grenade Les clients (python-*client) Formation OpenStack July 7, 2014 48 / 194
  43. Cycle de vie des projets au sein d’OpenStack 16 Greater

    OpenStack Ecosystem Integrated Release Graduation • The software is released every 6 months • Technical Committee managed + Release Manager & PTLs • On the road to the integrated release • Typically takes 18­24 months before being approved for graduation • Approved for Incubation by the Technical Committee • More stringent requirements for incubation approved by TC • Wide range of related open source projects • Some may apply for incubation • Many will never apply. Applied & Accepted by TC Supporting Programs Incubated Projects Works with projects in greater Ecosystem Shared infrastructure and resources for OpenStack projects Formation OpenStack July 7, 2014 49 / 194
  44. Les projets dans Icehouse Greater OpenStack Ecosystem : Icehouse Release

    (April 2014) Integrated Release Supporting Programs Incubated Projects Compute Object Storage Block Storage Networking Dashboard Image Service Identity Service Infrastructure | Docs | Common Libraries | QA | Release Mgmt Database Service Telemetry Orchestration Bare Metal Messaging Data Processing New New New Formation OpenStack July 7, 2014 50 / 194
  45. Nouveaut´ es de Icehouse Nova : rolling upgrades Nouvelles fonctionnalit´

    es disponibles dans Horizon Nouveaux drivers dans Neutron Nouveaux drivers dans Cinder Le nouveau format HOT est recommand´ e pour les templates Heat etc. En d´ etails : https://wiki.openstack.org/wiki/ReleaseNotes/Icehouse Formation OpenStack July 7, 2014 51 / 194
  46. Traduction La question de la traduction est dor´ enavant prise

    en compte Seules certaines parties sont traduites, comme Horizon La traduction fran¸ caise est aujourd’hui une des plus avanc´ ees Utilisation de la plateforme Transifex Formation OpenStack July 7, 2014 52 / 194
  47. D´ eveloppement du projet Open Source Open Design Open Development

    Open Community Formation OpenStack July 7, 2014 53 / 194
  48. D´ eveloppement du projet : en d´ etails Ouvert `

    a tous (individuels et entreprises) Cycle de d´ eveloppement de 6 mois d´ ebut´ e par un (design) summit Outils : Launchpad (blueprints, bugs) + Git + GitHub (code) Sur chaque commit : peer review (Gerrit) + int´ egration continue (ex´ ecution de diff´ erents tests par Jenkins) Plateforme de r´ ef´ erence et mod` ele de d´ eveloppement : Ubuntu D´ eveloppement hyper actif : 17000 commits dans Icehouse (+25%) Fin 2012, cr´ eation d’une entit´ e ind´ ependante de gouvernance : la fondation OpenStack Formation OpenStack July 7, 2014 54 / 194
  49. La fondation OpenStack Entit´ e de gouvernance principale du projet

    Les membres du board sont issus des entreprises sponsors et ´ elus par les membres individuels Tout le monde peut devenir membre individuel (gratuitement) La fondation supporte le projet par diff´ erents moyens : ´ Ev´ enements : organisation (Summits) ou participation (OSCON, etc.) Infrastructure de d´ eveloppement (serveurs) Ressources humaines : marketing, release manager, quelques d´ eveloppeurs (principalement sur l’infrastructure) 850 organisations ` a travers le monde 9500 membres individuels dans 100 pays Formation OpenStack July 7, 2014 55 / 194
  50. Cycle de d´ eveloppement : 6 mois Le planning est

    publi´ e, exemple : https: //wiki.openstack.org/wiki/Icehouse_Release_Schedule Milestone releases Freezes : FeatureProposal, Feature, String RC releases Stable releases Ce mod` ele de cycle de d´ eveloppement a ´ evolu´ e depuis le d´ ebut du projet Cas particulier de Swift Formation OpenStack July 7, 2014 57 / 194
  51. O` u trouver des informations sur le d´ eveloppement d’OpenStack

    Principalement sur le wiki : https://wiki.openstack.org Les blueprints et bugs sur Launchpad : https://launchpad.net/openstack Les patchs propos´ es et leurs reviews sont sur Gerrit : https://review.openstack.org Le code est disponible dans Git : https://git.openstack.org Les sources (tarballs) sont disponibles : http://tarballs.openstack.org/ Formation OpenStack July 7, 2014 58 / 194
  52. Stackforge Forge pour les nouveaux projets en lien avec OpenStack

    Ils b´ en´ eficient de l’infrastructure du projet OpenStack, mais la s´ eparation reste claire Les projets d´ emarrent dans Stackforge et peuvent ensuite rejoindre le projet OpenStack Formation OpenStack July 7, 2014 59 / 194
  53. OpenStack Summit Aux USA jusqu’en 2013 Aujourd’hui : alternance USA

    et Asie/Europe Quelques centaines au d´ ebut ` a 4500 de participants aujourd’hui En parall` ele : conf´ erence (utilisateurs, d´ ecideurs) et Design Summit (d´ eveloppeurs) D´ etermine le nom de la release : lieu/ville ` a proximit´ e du Summit Formation OpenStack July 7, 2014 60 / 194
  54. Exemple du Summit de mai 2014 ` a Atlanta Formation

    OpenStack July 7, 2014 62 / 194
  55. Exemple du Summit de mai 2014 ` a Atlanta Formation

    OpenStack July 7, 2014 63 / 194
  56. Design Tenets 1 Scalability and elasticity are our main goals

    2 Any feature that limits our main goals must be optional 3 Everything should be asynchronous. If you can’t do something asynchronously, see #2 4 All required components must be horizontally scalable 5 Always use shared nothing architecture (SN) or sharding. If you can’t Share nothing/shard, see #2 6 Distribute everything. Especially logic. Move logic to where state naturally exists. 7 Accept eventual consistency and use it where it is appropriate. 8 Test everything. We require tests with submitted code. (We will help you if you need it) Formation OpenStack July 7, 2014 64 / 194
  57. Impl´ ementation Chaque sous-projet est d´ ecoup´ e en plusieurs

    services Communication entre les services : AMQP (RabbitMQ) Base de donn´ ees : MySQL R´ eutilisation de nombreux composants existants OpenVSwitch Tout est d´ evelopp´ e en Python (Django pour Horizon) APIs support´ ees : OpenStack et ´ equivalent Amazon Multi tenancy Formation OpenStack July 7, 2014 65 / 194
  58. Multi-tenant Notion g´ en´ erale : un d´ eploiement du

    logiciel permet de multiples utilisations Un cloud OpenStack permet aux utilisateurs de travailler dans des environnements isol´ es Les instances, r´ eseaux, images, etc. sont associ´ es ` a un tenant Certaines ressources peuvent ˆ etre partag´ ees entre tenants (exemple : image publique) On peut aussi parler de ”projet” Formation OpenStack July 7, 2014 66 / 194
  59. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation Pr´ esentation du projet et du logiciel DevStack : faire tourner rapidement un OpenStack Utiliser OpenStack 3 D´ eployer OpenStack 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 70 / 194
  60. Utilit´ e de DevStack D´ eployer rapidement un OpenStack Utilis´

    e par les d´ eveloppeurs pour tester leurs changements Utilis´ e pour faire des d´ emonstrations Utilis´ e pour tester les APIs sans se pr´ eoccuper du d´ eploiement Ne doit PAS ˆ etre utilis´ e pour de la production Formation OpenStack July 7, 2014 71 / 194
  61. Fonctionnement de DevStack Un script shell qui fait tout le

    travail : stack.sh Un fichier de configuration : local.conf Installe toute les d´ ependances n´ ecessaires (paquets) Clone les d´ epˆ ots git (branche master par d´ efaut) Lance tous les composants dans un screen Formation OpenStack July 7, 2014 72 / 194
  62. Conseils d’utilisation DevStack installe beaucoup de choses sur la machine

    Il est recommand´ e de travailler dans une VM Pour tester tous les composants OpenStack dans de bonnes conditions, plusieurs Go de RAM sont n´ ecessaires L’utilisation de Vagrant est conseill´ ee Formation OpenStack July 7, 2014 74 / 194
  63. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation Pr´ esentation du projet et du logiciel DevStack : faire tourner rapidement un OpenStack Utiliser OpenStack 3 D´ eployer OpenStack 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 75 / 194
  64. Le principe Toutes les fonctionnalit´ es sont accessibles par l’API

    Les clients (y compris Horizon) utilisent l’API Des cr´ edentials sont n´ ecessaires API OpenStack : utilisateur + mot de passe + tenant API AWS : access key ID + secret access key Formation OpenStack July 7, 2014 76 / 194
  65. Acc` es aux APIs Direct, en HTTP, via des outils

    comme curl Avec une biblioth` eque Les impl´ ementations officielles en Python D’autres impl´ ementations pour d’autres langages (exemple : jclouds) Avec les outils officiels en ligne de commande Avec Horizon Formation OpenStack July 7, 2014 77 / 194
  66. Clients officiels Le projet fournit des clients officiels : python-PROJETclient

    Biblioth` eques Python Outils CLI L’authentification se fait en passant les credentials par param` etres ou variables d’environnement L’option –debug affiche la communication HTTP Formation OpenStack July 7, 2014 78 / 194
  67. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation 3 D´ eployer OpenStack Les briques n´ ecessaires Keystone : Authentification, autorisation et catalogue de services Nova : Compute Glance : Registre d’images Neutron : R´ eseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de m´ etriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants int´ eressants Bonnes pratiques pour un d´ eploiement en production Faire face aux probl` emes 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 79 / 194
  68. Ce qu’on va voir Installer OpenStack ` a la main

    http://docs.openstack.org/ icehouse/install-guide/install/apt/content/ Donc comprendre son fonctionnement Tour d’horizon des solutions de d´ eploiement Formation OpenStack July 7, 2014 80 / 194
  69. Quelques ´ el´ ements de configuration g´ en´ eraux Tous

    les composants doivent ˆ etre configur´ es pour communiquer avec Keystone La plupart doivent ˆ etre configur´ es pour communiquer avec MySQL et RabbitMQ Les composants d´ ecoup´ es en plusieurs services ont souvent un fichier de configuration par service api-paste.ini contient des param` etres concernant le service API Formation OpenStack July 7, 2014 82 / 194
  70. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation 3 D´ eployer OpenStack Les briques n´ ecessaires Keystone : Authentification, autorisation et catalogue de services Nova : Compute Glance : Registre d’images Neutron : R´ eseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de m´ etriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants int´ eressants Bonnes pratiques pour un d´ eploiement en production Faire face aux probl` emes 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 83 / 194
  71. Syst` eme d’exploitation OS Linux avec Python Historiquement : Ubuntu

    Red Hat s’est largement rattrap´ e SUSE, etc. Formation OpenStack July 7, 2014 84 / 194
  72. Python OpenStack est aujourd’hui compatible Python 2.7 Afin de ne

    pas r´ einventer la roue, beaucoup de d´ ependances sont n´ ecessaires Un travail de portage vers Python 3 est en cours Formation OpenStack July 7, 2014 85 / 194
  73. Base de donn´ ees Permet de stocker la majorit´ e

    des donn´ ees g´ er´ ees par OpenStack Chaque composant a sa propre base OpenStack utilise l’ORM Python SQLAlchemy Support th´ eorique ´ equivalent ` a celui de SQLAlchemy MySQL est l’impl´ ementation la plus largement test´ ee et utilis´ ee SQLite est principalement utilis´ e dans le cadre de tests et d´ emo Certains d´ eploiements fonctionnent avec PostgreSQL Formation OpenStack July 7, 2014 86 / 194
  74. Pourquoi l’utilisation de SQLAlchemy Support de multiples BDD Gestion des

    migrations Formation OpenStack July 7, 2014 87 / 194
  75. Passage de messages AMQP : Advanced Message Queuing Protocol Messages,

    file d’attente, routage Les processus OpenStack communiquent via AMQP Plusieurs impl´ ementations possibles : Qpid, 0MQ, etc. RabbitMQ par d´ efaut Formation OpenStack July 7, 2014 88 / 194
  76. RabbitMQ RabbitMQ est impl´ ement´ e en Erlang Une machine

    virtuelle Erlang est donc n´ ecessaire Formation OpenStack July 7, 2014 89 / 194
  77. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation 3 D´ eployer OpenStack Les briques n´ ecessaires Keystone : Authentification, autorisation et catalogue de services Nova : Compute Glance : Registre d’images Neutron : R´ eseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de m´ etriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants int´ eressants Bonnes pratiques pour un d´ eploiement en production Faire face aux probl` emes 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 91 / 194
  78. Principes Annuaire des utilisateurs et des groupes Catalogue de services

    G` ere l’authentification et l’autorisation Support des domaines dans l’API v3 Fournit un token ` a l’utilisateur Formation OpenStack July 7, 2014 92 / 194
  79. API API admin : port 35357 API utilisateur : port

    5000 Deux versions : v2 (actuelle) et v3 (future) G` ere utilisateurs, groupes, domaines (APIv3) Les utilisateurs ont des rˆ oles sur des tenants (projets) Formation OpenStack July 7, 2014 93 / 194
  80. Installation et configuration Paquet : keystone Configuration d’un token ADMIN

    pour la configuration initiale Backends : choix de SQL ou LDAP (ou AD) Configurer les diff´ erents services Policy.json Services et endpoints Utilisateurs, groupes, domaines Formation OpenStack July 7, 2014 95 / 194
  81. Enregistrer un service et son endpoint Il faut renseigner l’existence

    des diff´ erents services (catalogue) dans Keystone : $ keystone service-create --name=cinderv2 --type=volumev2 \ --description="Cinder Volume Service V2" $ keystone endpoint-create \ --region=myRegion --service-id=... --publicurl=http://controller:8776/v2/%\(tenant_id\)s \ --internalurl=http://controller:8776/v2/%\(tenant_id\)s \ --adminurl=http://controller:8776/v2/%\(tenant_id\)s Formation OpenStack July 7, 2014 96 / 194
  82. Tester $ keystone service-list ... $ keystone user-list ... $

    keystone token-get ... Formation OpenStack July 7, 2014 97 / 194
  83. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation 3 D´ eployer OpenStack Les briques n´ ecessaires Keystone : Authentification, autorisation et catalogue de services Nova : Compute Glance : Registre d’images Neutron : R´ eseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de m´ etriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants int´ eressants Bonnes pratiques pour un d´ eploiement en production Faire face aux probl` emes 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 98 / 194
  84. Principes G` ere les instances IP flottantes, groupes de s´

    ecurit´ e Les instances sont cr´ e´ ees ` a partir des images fournies par Glance Les interfaces r´ eseaux des instances sont associ´ ees ` a des ports Neutron Formation OpenStack July 7, 2014 99 / 194
  85. API G` ere : Instances Flavors (types d’instance) Security Groups

    (groupes de s´ ecurit´ e) Floating IPs (IPs flottantes) Les instances sont redimensionnables et migrables d’un hˆ ote physique ` a un autre. Formation OpenStack July 7, 2014 101 / 194
  86. Les groupes de s´ ecurit´ e ´ Equivalent ` a

    un firewall devant chaque instance Une instance peut ˆ etre associ´ ee ` a un ou plusieurs groupes de s´ ecurit´ e Gestion des acc` es en entr´ ee et sortie R` egles par protocole (TCP/UDP/ICMP) et par port Formation OpenStack July 7, 2014 102 / 194
  87. Rˆ ole des flavors ´ Equivalent des ”instance types” d’AWS

    D´ efinit un mod` ele d’instance en termes de CPU, RAM, disque Formation OpenStack July 7, 2014 103 / 194
  88. Nova api Double rˆ ole API de manipulation des instances

    par l’utilisateur API ` a destination des instances : API de metadata L’API de metadata doit ˆ etre accessible ` a l’adresse http://169.254.169.254/ L’API de metadata fournit des informations de configuration personnalis´ ees ` a chacune des instances Formation OpenStack July 7, 2014 104 / 194
  89. Nova compute Ex´ ecute les machines virtuelles Tire partie de

    libvirt ou d’autres APIs comme XenAPI Drivers : libvirt, XenAPI, VMWare ESX, Docker Permet de r´ ecup´ erer les logs de la console et une console VNC Formation OpenStack July 7, 2014 105 / 194
  90. Nova scheduler Service qui distribue les demandes d’instances sur les

    noeuds compute Filter, Chance, Multi Scheduler Filtres, par d´ efaut : AvailabilityZoneFilter,RamFilter,ComputeFilter Tri par poids, par d´ efaut : RawWeigher Formation OpenStack July 7, 2014 106 / 194
  91. Nova conductor Service facultatif qui am´ eliore la s´ ecurit´

    e Fait office de proxy entre les noeuds compute et la BDD Les noeuds compute, vuln´ erables, n’ont donc plus d’acc` es ` a la BDD Formation OpenStack July 7, 2014 108 / 194
  92. Tester $ nova list ... $ nova create ... Formation

    OpenStack July 7, 2014 109 / 194
  93. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation 3 D´ eployer OpenStack Les briques n´ ecessaires Keystone : Authentification, autorisation et catalogue de services Nova : Compute Glance : Registre d’images Neutron : R´ eseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de m´ etriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants int´ eressants Bonnes pratiques pour un d´ eploiement en production Faire face aux probl` emes 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 110 / 194
  94. Principes Registre d’images (et des snapshots) Propri´ et´ es sur

    les images Est utilis´ e par Nova pour d´ emarrer des instances Peut utiliser Swift comme back-end de stockage Formation OpenStack July 7, 2014 111 / 194
  95. Propri´ et´ es des images dans Glance L’utilisateur peut d´

    efinir un certain nombre de propri´ et´ es dont certaines seront utilis´ ees lors de l’instanciation Type d’image Architecture Distribution Version de la distribution Espace disque minimum RAM minimum Publique ou non Formation OpenStack July 7, 2014 112 / 194
  96. Types d’images Glance supporte un large ´ eventail de types

    d’images, limit´ e par le support de l’hyperviseur sous-jacent ` a Nova raw qcow2 ami vmdk iso Formation OpenStack July 7, 2014 113 / 194
  97. Installation Paquet glance-api : fournit l’API Paquet glance-registry : d´

    emon du registre d’images en tant que tel Formation OpenStack July 7, 2014 115 / 194
  98. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation 3 D´ eployer OpenStack Les briques n´ ecessaires Keystone : Authentification, autorisation et catalogue de services Nova : Compute Glance : Registre d’images Neutron : R´ eseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de m´ etriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants int´ eressants Bonnes pratiques pour un d´ eploiement en production Faire face aux probl` emes 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 117 / 194
  99. Principes SDN Auparavant Quantum et nova-network neutron-server : fournit l’API

    Agent DHCP : fournit le service de DHCP pour les instances Agent L3 : g` ere la couche 3 du r´ eseau, le routage Plugin : OpenVSwitch par d´ efaut, d’autres impl´ ementations libres/propri´ etaires, logicielles/mat´ erielles existent Formation OpenStack July 7, 2014 118 / 194
  100. Fonctionnalit´ es suppl´ ementaires Outre les fonctions r´ eseau de

    base niveaux 2 et 3, Neutron peut fournir d’autres services : Load Balancing (HAProxy, ...) Firewall (vArmour, ...) : diff´ ere des groupes de s´ ecurit´ e VPN (Openswan, ...) : permet d’acc´ eder ` a un r´ eseau priv´ e sans IP flottantes Ces fonctionnalit´ es se basent ´ egalement sur des plugins Formation OpenStack July 7, 2014 119 / 194
  101. API L’API permet notamment de manipuler ces ressources R´ eseau

    : niveau 2 Subnet : niveau 3 Port Les ports peuvent correspondre ` a des interfaces d’instance Formation OpenStack July 7, 2014 120 / 194
  102. Plugins ML2 Modular Layer 2 OpenVSwitch OpenDaylight Contrail, OpenContrail Nuage

    Networks cf. OpenFlow Formation OpenStack July 7, 2014 121 / 194
  103. Impl´ ementation Neutron tire partie des namespaces r´ eseaux du

    noyau Linux pour permettre l’IP overlapping Le proxy de metadata est un composant qui permet aux instances isol´ ees dans leur r´ eseau de joindre l’API de metadata fournie par Nova Formation OpenStack July 7, 2014 122 / 194
  104. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation 3 D´ eployer OpenStack Les briques n´ ecessaires Keystone : Authentification, autorisation et catalogue de services Nova : Compute Glance : Registre d’images Neutron : R´ eseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de m´ etriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants int´ eressants Bonnes pratiques pour un d´ eploiement en production Faire face aux probl` emes 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 124 / 194
  105. Principes Auparavant nova-volume Fournit des volumes (stockage block) attachables aux

    instances G` ere diff´ erents types de volume G` ere snapshots et backups de volumes Attachement via iSCSI par d´ efaut Formation OpenStack July 7, 2014 125 / 194
  106. Du stockage partag´ e ? Cinder n’est pas une solution

    de stockage partag´ e comme NFS OpenStack (tout comme AWS) ne fournit pas de solution NFS as a Service Cf. le projet Manila Formation OpenStack July 7, 2014 126 / 194
  107. Utilisation Volume suppl´ ementaire (et stockage persistant) sur une instance

    Boot from volume : l’OS est sur le volume Fonctionnalit´ e de backup vers un object store (Swift ou Ceph) Formation OpenStack July 7, 2014 127 / 194
  108. Installation Paquet cinder-api : fournit l’API Paquet cinder-volume : cr´

    eation et gestion des volumes Paquet cinder-scheduler : distribue les demandes de cr´ eation de volume Paquet cinder-backup : backup vers un object store Formation OpenStack July 7, 2014 128 / 194
  109. Backends Utilisation de plusieurs backends en parall` ele possible LVM

    (par d´ efaut) GlusterFS Ceph Syst` emes de stockage propri´ etaires type NetApp Formation OpenStack July 7, 2014 129 / 194
  110. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation 3 D´ eployer OpenStack Les briques n´ ecessaires Keystone : Authentification, autorisation et catalogue de services Nova : Compute Glance : Registre d’images Neutron : R´ eseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de m´ etriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants int´ eressants Bonnes pratiques pour un d´ eploiement en production Faire face aux probl` emes 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 130 / 194
  111. Principes Utilise les APIs existantes pour fournir une interface Horizon

    est un module Django OpenStack Dashboard est l’impl´ ementation officielle de ce module Formation OpenStack July 7, 2014 131 / 194
  112. Configuration local settings.py Les services apparaissent dans Horizon s’ils sont

    r´ epertori´ es dans le catalogue de services de Keystone Formation OpenStack July 7, 2014 132 / 194
  113. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation 3 D´ eployer OpenStack Les briques n´ ecessaires Keystone : Authentification, autorisation et catalogue de services Nova : Compute Glance : Registre d’images Neutron : R´ eseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de m´ etriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants int´ eressants Bonnes pratiques pour un d´ eploiement en production Faire face aux probl` emes 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 134 / 194
  114. Principes SDS : Software Defined Storage Utilisation de commodity hardware

    Th´ eor` eme CAP : on en choisit deux Acc` es par les APIs Architecture totalement acentr´ ee Pas de base de donn´ ees centrale Formation OpenStack July 7, 2014 135 / 194
  115. Impl´ ementation Proxy : serveur API par lequel passent toutes

    les requˆ etes Object server : serveur de stockage Container server : maintient des listes d’objects dans des containers Account server : maintient des listes de containers dans des accounts Chaque objet est r´ epliqu´ e n fois (3 par d´ efaut) Formation OpenStack July 7, 2014 136 / 194
  116. Le ring Probl` eme : comment d´ ecider quelle donn´

    ee va sur quel object server Le ring est d´ ecoup´ e en partitions On situe chaque donn´ ee dans le ring afin de d´ eterminer sa partition Une partition est associ´ ee ` a plusieurs serveurs Formation OpenStack July 7, 2014 137 / 194
  117. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation 3 D´ eployer OpenStack Les briques n´ ecessaires Keystone : Authentification, autorisation et catalogue de services Nova : Compute Glance : Registre d’images Neutron : R´ eseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de m´ etriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants int´ eressants Bonnes pratiques pour un d´ eploiement en production Faire face aux probl` emes 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 139 / 194
  118. Surveiller l’utilisation de son infrastructure avec Ceilometer Indexe diff´ erentes

    m´ etriques concernant l’utilisation des diff´ erents services du cloud Fournit des APIs permettant de r´ ecup´ erer ces donn´ ees Base pour construire des outils de facturation Utilise MongoDB (par d´ efaut) pour le stockage Formation OpenStack July 7, 2014 140 / 194
  119. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation 3 D´ eployer OpenStack Les briques n´ ecessaires Keystone : Authentification, autorisation et catalogue de services Nova : Compute Glance : Registre d’images Neutron : R´ eseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de m´ etriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants int´ eressants Bonnes pratiques pour un d´ eploiement en production Faire face aux probl` emes 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 141 / 194
  120. Orchestrer son infrastructure avec Heat ´ Equivalent d’Amazon Cloud Formation

    Orchestrer les ressources compute, storage, network, etc. Doit se coupler avec cloud-init Description de son infrastructure dans un fichier template, format JSON (CFN) ou YAML (HOT) Formation OpenStack July 7, 2014 142 / 194
  121. Autoscaling avec Heat Heat impl´ emente la fonctionnalit´ e d’autoscaling

    Se d´ eclenche en fonction des alarmes produites par Ceilometer Entraine la cr´ eation de nouvelles instances Formation OpenStack July 7, 2014 143 / 194
  122. Un template HOT heat_template_version: 2013-05-23 description: Simple template to deploy

    a single compute instan resources: my_instance: type: OS::Nova::Server properties: key_name: my_key image: F18-x86_64-cfntools flavor: m1.small Formation OpenStack July 7, 2014 144 / 194
  123. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation 3 D´ eployer OpenStack Les briques n´ ecessaires Keystone : Authentification, autorisation et catalogue de services Nova : Compute Glance : Registre d’images Neutron : R´ eseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de m´ etriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants int´ eressants Bonnes pratiques pour un d´ eploiement en production Faire face aux probl` emes 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 146 / 194
  124. Principe Fournit des bases de donn´ ees relationnelles, ` a

    la AWS RDS A vocation ` a supporter des bases NoSQL aussi G` ere notamment MySQL comme back-end Se repose sur Nova pour les instances dans lesquelles se fait l’installation d’une BDD Formation OpenStack July 7, 2014 147 / 194
  125. Services trove-api : API trove-taskmanager : g` ere les instances

    BDD trove-guestagent : agent interne ` a l’instance Formation OpenStack July 7, 2014 148 / 194
  126. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation 3 D´ eployer OpenStack Les briques n´ ecessaires Keystone : Authentification, autorisation et catalogue de services Nova : Compute Glance : Registre d’images Neutron : R´ eseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de m´ etriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants int´ eressants Bonnes pratiques pour un d´ eploiement en production Faire face aux probl` emes 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 149 / 194
  127. Principe ´ Equivalent d’AWS Route 53 G` ere diff´ erents

    backends : BIND, etc. Formation OpenStack July 7, 2014 150 / 194
  128. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation 3 D´ eployer OpenStack Les briques n´ ecessaires Keystone : Authentification, autorisation et catalogue de services Nova : Compute Glance : Registre d’images Neutron : R´ eseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de m´ etriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants int´ eressants Bonnes pratiques pour un d´ eploiement en production Faire face aux probl` emes 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 151 / 194
  129. Ironic Anciennement Nova bare-metal Permet le d´ eploiement d’instance sur

    des machines physiques (plutˆ ot que VMs) Repose sur des technologies telles que PXE, TFTP Formation OpenStack July 7, 2014 152 / 194
  130. Oslo, ou OpenStack common Oslo contient le code commun `

    a plusieurs composants d’OpenStack Son utilisation est transparente pour le d´ eployeur Formation OpenStack July 7, 2014 153 / 194
  131. rootwrap Wrapper pour l’utilisation de commandes en root Configuration au

    niveau de chaque composant qui l’utilise Permet d’´ ecrire des filtres sur les commandes Formation OpenStack July 7, 2014 154 / 194
  132. TripleO OpenStack On OpenStack Objectif : pouvoir d´ eployer un

    cloud OpenStack (overcloud) ` a partir d’un cloud OpenStack (undercloud) Autoscaling du cloud lui-mˆ eme : d´ eploiement de nouveaux noeuds compute lorsque cela est n´ ecessaire Fonctionne conjointement avec Ironic pour le d´ eploiement bare-metal Formation OpenStack July 7, 2014 155 / 194
  133. Tempest Suite de tests d’un cloud OpenStack Effectue des appels

    ` a l’API et v´ erifie le r´ esultat Est tr` es utilis´ e par les d´ eveloppeurs via l’int´ egration continue Le d´ eployeur peut utiliser Tempest pour v´ erifier la bonne conformit´ e de son cloud Formation OpenStack July 7, 2014 156 / 194
  134. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation 3 D´ eployer OpenStack Les briques n´ ecessaires Keystone : Authentification, autorisation et catalogue de services Nova : Compute Glance : Registre d’images Neutron : R´ eseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de m´ etriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants int´ eressants Bonnes pratiques pour un d´ eploiement en production Faire face aux probl` emes 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 157 / 194
  135. Quels composants dois-je installer ? Keystone est indispensable L’utilisation de

    Nova va de paire avec Glance et Neutron Cinder s’av´ erera souvent utile Ceilometer et Heat vont souvent ensemble Swift est ind´ ependant des autres composants Formation OpenStack July 7, 2014 158 / 194
  136. Penser d` es le d´ ebut aux choix structurants Distribution

    et m´ ethode de d´ eploiement Hyperviseur R´ eseau : quelle architecture et quels drivers Politique de mise ` a jour Formation OpenStack July 7, 2014 159 / 194
  137. Les diff´ erentes m´ ethodes d’installation DevStack est ` a

    oublier pour la production TripleO est encore trop jeune Le d´ eploiement ` a la main comme vu pr´ ec´ edemment n’est pas recommand´ e car peu maintenable Distributions OpenStack packag´ ees et prˆ etes ` a l’emploi Distributions classiques et gestion de configuration Formation OpenStack July 7, 2014 160 / 194
  138. Assigner des rˆ oles aux machines Beaucoup de documentations font

    r´ ef´ erence ` a ces rˆ oles : Controller node : APIs, BDD, AMQP Network node : Routeur Compute node : Hyperviseur Ce mod` ele simplifi´ e n’est pas HA. Formation OpenStack July 7, 2014 161 / 194
  139. Haute disponbilit´ e Haut disponibilit´ e de l’IaaS MySQL, RabbitMQ

    : HA classique (Galera, Clustering) Les services APIs sont stateless et HTTP : scale out et load balancers La plupart des autres services OpenStack sont capables de scale out ´ egalement Guide HA : http://docs.openstack.org/high-availability-guide/content/ Formation OpenStack July 7, 2014 162 / 194
  140. Haute disponibilit´ e de l’agent L3 de Neutron Plusieurs solutions

    possibles Formation OpenStack July 7, 2014 163 / 194
  141. Consid´ erations pour une environnement de production Des URLs uniformes

    pour toutes les APIs : utiliser un reverse proxy Utilisation des quotas Pr´ evoir les bonnes volum´ etries, notamment pour les donn´ ees Ceilometer Monitoring Guide Operations : http://docs.openstack.org/trunk/openstack-ops/content/ Formation OpenStack July 7, 2014 164 / 194
  142. D´ ecoupage r´ eseau Management network : r´ eseau d’administration

    Data network : r´ eseau pour la communication inter instances External network : r´ eseau externe, dans l’infrastructure r´ eseau existante API network : r´ eseau contenant les endpoints API Formation OpenStack July 7, 2014 165 / 194
  143. Consid´ erations li´ ees ` a la s´ ecurit´ e

    Indispensable : HTTPS sur l’acc` es des APIs ` a l’ext´ erieur S´ ecurisation des communications MySQL et RabbitMQ Un acc` es MySQL par base et par service Un utilisateur Keystone par service Limiter l’acc` es en lecture des fichiers de configuration (mots de passe, token) Formation OpenStack July 7, 2014 166 / 194
  144. Segmenter son cloud Host aggregates : machines physiques avec des

    caract´ eristiques similaires Availability zones : machines d´ ependantes d’une mˆ eme source ´ electrique, d’un mˆ eme switch, d’un mˆ eme DC, etc. Regions : chaque r´ egion a son API Cells : permet de regrouper plusieurs cloud diff´ erents sous une mˆ eme API Formation OpenStack July 7, 2014 167 / 194
  145. Host aggregates / agr´ egats d’hˆ otes L’administrateur d´ efinit

    des agr´ egats via l’API 1 agr´ egat ≡ 1 point commun, ex : GPU L’utilisateur peut choisir un agr´ egat ` a la cr´ eation d’instance Formation OpenStack July 7, 2014 168 / 194
  146. Availability zones / zones de disponibilit´ e Groupe d’hˆ otes

    D´ ecoupage en termes de disponibilit´ e : Rack, Datacenter, etc. L’utiliser peut choisir une zone de disponibilit´ e L’utilisateur peut demander ` a ce que des instances soient d´ emarr´ ees dans une mˆ eme zone, ou au contraire dans des zones diff´ erentes Formation OpenStack July 7, 2014 169 / 194
  147. R´ egions ´ Equivalent des r´ egions d’AWS Un service

    peut avoir diff´ erents endpoints dans diff´ erentes r´ egions Chaque r´ egion est autonome Cas d’usage : cloud de grande ampleur (comme certains clouds publics) Formation OpenStack July 7, 2014 170 / 194
  148. Cellules / Cells Fonctionnalit´ e de Nova uniquement Un seul

    nova-api devant plusieurs cellules Chaque cellule a sa propre BDD et file de messages Ajoute un niveau de scheduling (choix de la cellule) Formation OpenStack July 7, 2014 171 / 194
  149. Packaging d’OpenStack - Ubuntu Le packaging est fait dans de

    multiples distributions, RPM, DEB et autres Ubuntu est historiquement la plateforme de r´ ef´ erence pour le d´ eveloppement d’OpenStack Le packaging dans Ubuntu suit de pr` es le d´ eveloppement d’OpenStack, et des tests automatis´ es sont r´ ealis´ es Canonical fournit la Ubuntu Cloud Archive, qui met ` a disposition la derni` ere version d’OpenStack pour la derni` ere Ubuntu LTS Formation OpenStack July 7, 2014 172 / 194
  150. Packaging d’OpenStack dans les autres distributions OpenStack est int´ egr´

    e dans les d´ epˆ ots officiels de Debian Red Hat propose RHOS Comme Ubuntu, le cycle de release de Fedora est synchronis´ e avec celui d’OpenStack Formation OpenStack July 7, 2014 174 / 194
  151. D´ eploiement bare metal Le d´ eploiement des hˆ otes

    physiques OpenStack peut se faire ` a l’aide d’outils d´ edi´ es Canonical/Ubuntu propose MaaS : Metal as a Service Dell propose Crowbar eDeploy (eNovance) Formation OpenStack July 7, 2014 176 / 194
  152. Gestion de configuration Puppet, Chef, CFEngine, Saltstack, Ansible, etc. Ces

    outils peuvent aider ` a d´ eployer le cloud OpenStack ... mais aussi ` a g´ erer les instances (section suivante) Formation OpenStack July 7, 2014 177 / 194
  153. Modules Puppet PuppetLabs maintient (avec d’autres) des modules pour d´

    eployer OpenStack https://forge.puppetlabs.com/puppetlabs/openstack Formation OpenStack July 7, 2014 178 / 194
  154. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation 3 D´ eployer OpenStack Les briques n´ ecessaires Keystone : Authentification, autorisation et catalogue de services Nova : Compute Glance : Registre d’images Neutron : R´ eseau en tant que service Cinder : Stockage block Horizon : Dashboard web Swift : Stockage objet Ceilometer : Collecte de m´ etriques Heat : Orchestration des ressources Trove : Database as a Service Designate : DNS as a Service Quelques autres composants int´ eressants Bonnes pratiques pour un d´ eploiement en production Faire face aux probl` emes 4 Tirer partie de l’IaaS Formation OpenStack July 7, 2014 179 / 194
  155. Les r´ eflexes en cas d’erreur ou de comportement erron´

    e Travaille-t-on sur le bon tenant ? Est-ce que l’API renvoie une erreur ? (le dashboard peut cacher certaines informations) Si n´ ecessaire 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 node si le probl` eme est sp´ ecifique r´ eseau/instance ´ Eventuellement modifier la verbosit´ e des logs dans la configuration Formation OpenStack July 7, 2014 180 / 194
  156. Est-ce un bug ? Si le client CLI crash, c’est

    un bug Si le dashboard web affiche une erreur 500, c’est peut-ˆ etre un bug Si les logs montrent une stacktrace Python, c’est un bug Sinon, ` a vous d’en juger Formation OpenStack July 7, 2014 181 / 194
  157. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation 3 D´ eployer OpenStack 4 Tirer partie de l’IaaS Cˆ ot´ e applications Cˆ ot´ e syst` eme Formation OpenStack July 7, 2014 182 / 194
  158. Deux visions Une fois un cloud IaaS en place, deux

    optiques possibles : Garder les mˆ emes pratiques tout en profitant du self service et de l’agilit´ e de la solution Faire ´ evoluer ses pratiquer, tant cˆ ot´ e applicatif que syst` eme ”Pets vs Cattle” Formation OpenStack July 7, 2014 183 / 194
  159. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation 3 D´ eployer OpenStack 4 Tirer partie de l’IaaS Cˆ ot´ e applications Cˆ ot´ e syst` eme Formation OpenStack July 7, 2014 184 / 194
  160. Adapter ou faire ses applications ”cloud ready” Stateless : permet

    de multiplier les routes d’acc` es ` a l’application Ne pas stocker les donn´ ees en local, mais plutˆ ot : Base de donn´ ees Stockage objet Utiliser des outils standards de journalisation Formation OpenStack July 7, 2014 185 / 194
  161. Plan 1 Le Cloud : vue d’ensemble 2 OpenStack :

    projet, logiciel et utilisation 3 D´ eployer OpenStack 4 Tirer partie de l’IaaS Cˆ ot´ e applications Cˆ ot´ e syst` eme Formation OpenStack July 7, 2014 186 / 194
  162. Adopter une philosophie DevOps Infrastructure as Code Scale out au

    lieu de scale up HA niveau application plutˆ ot qu’infrastructure Formation OpenStack July 7, 2014 187 / 194
  163. Utiliser des images cloud Une image cloud c’est : Une

    image disque contenant un OS d´ ej` a install´ e Une image qui peut ˆ etre instanci´ ee en n machines sans erreur Un OS sachant parler ` a l’API de metadata du cloud (cloud-init) La plupart des distributions fournissent aujourd’hui des images cloud. Formation OpenStack July 7, 2014 188 / 194
  164. Cirros Cirros est l’image cloud par excellence OS minimaliste Contient

    cloud-init https://launchpad.net/cirros Formation OpenStack July 7, 2014 189 / 194
  165. Cloud-init Cloud-init est un moyen de tirer partie de l’API

    de metadata, et notamment des user data L’outil est int´ egr´ e par d´ efaut dans la plupart des images cloud ` A partir des user data, cloud-init effectue les op´ erations de personnalisation de l’instance cloud-config est un format possible de user data Formation OpenStack July 7, 2014 191 / 194
  166. Exemple cloud-config #cloud-config mounts: - [ xvdc, /var/www ] packages:

    - apache2 - htop Formation OpenStack July 7, 2014 192 / 194
  167. Configurer et orchestrer ses instances Outils de gestion de configuration

    (les mˆ emes qui permettent de d´ eployer OpenStack) Juju Formation OpenStack July 7, 2014 193 / 194
  168. Conclusion Le cloud r´ evolutionne l’IT OpenStack est le projet

    libre phare sur la partie IaaS D´ eployer OpenStack n’est pas une mince affaire L’utilisation d’un cloud IaaS implique des changements de pratique Formation OpenStack July 7, 2014 194 / 194