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é.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
/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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 1824 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
(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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
(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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Se d´ eclenche en fonction des alarmes produites par Ceilometer Entraine la cr´ eation de nouvelles instances Formation OpenStack July 7, 2014 143 / 194
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
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
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
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
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
` 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
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
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
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
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
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
: 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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