102
1 FORMATION OPENSTACK UTILISATEUR

FORMATION OPENSTACK UTILISATEUR

  • Upload
    doananh

  • View
    220

  • Download
    8

Embed Size (px)

Citation preview

1

FORMATION OPENSTACK UTILISATEUR

2 . 1

CONCERNANT CES SUPPORTS DE COURS

2 . 2

CONCERNANT CES SUPPORTS DE COURS 1/2Supports de cours réalisés par OsonesOsones https://osones.com

Logo OsonesAUTEURS

Adrien Cunin Pierre Freund Jean-François Taltavull Romain Guichard

Kevin Lefevre

[email protected]@osones.com

[email protected]

[email protected]@osones.com

2 . 3

CONCERNANT CES SUPPORTS DE COURS 2/2Copyright © 2014-2016 OsonesLicence : Sources : Online :

Creative Commons BY-SA 4.0https://github.com/Osones/Formations/

https://osones.com/formations.html

Licence Creative Commons BY-SA 4.0

3 . 1

INTRODUCTION

3 . 2

OBJECTIFS DE LA FORMATIONAssimiler les concepts et le vocabulaire liés au cloudDéfinir, déployer et maintenir une infrastructure dans lecloudConcevoir une application cloud-readyManipuler et orchestrer des ressources dans un cloudOpenStack

Public visé : intégrateurs et développeurs d’application

3 . 3

PRÉ-REQUIS DE LA FORMATIONPratique du langage de commande Linux (Shell)Notions de virtualisationOptionnel :

Notions de Python (langage etenvironnement)

4 . 1

LE CLOUD : VUE D’ENSEMBLE

4 . 2

LE CLOUD : LES CONCEPTSPuissance de calcul, capacité de stockage et fonctionnalitésréseau sous forme de services en-ligneFlexibilité et élasticité des infrastructuresLibre-service, notion de catalogueAccès en mode programmatique par des APIs,automatisationFacturation à l’usage

4 . 3

WAAS : WHATEVER AS A SERVICEPrincipalement :

IaaS → Infrastructure as aServicePaaS → Platform as a ServiceSaaS → Software as a ServiceMais aussi :

Object Storage as a ServiceDatabase as a ServiceLoad Balancing as aServiceDNS as a Service$Application as a Service

4 . 4

CLOUD PUBLIC, CLOUD PRIVÉ, CLOUD HYBRIDE ?Public → services cloud proposés par un fournisseur externe(AWS, Rackspace, OVH, etc.)Privé → services cloud proposés par uneentreprise/organisation à ses propres départementsHybride → utilisation des services d’un ou plusieurs cloudspublics au sein d’un cloud privé

4 . 5

LE CLOUD EN UN SCHÉMA

IaaS - PaaS - SaaS

4 . 6

POURQUOI MIGRER VERS LE CLOUD ?Motivations d’ordre économique :

appréhender les ressources IT comme des services“fournisseur”réduire les coûts en mutualisant les ressourcesréduire les délais d’approvisionnement de ressourcesfaire glisser le budget “investissement” (Capex) vers lebudget “fonctionnement” (Opex)aligner les coûts sur la consommation réelle des ressourcesautomatiser les opérations sur le SI et le rendre ainsi plusflexible

4 . 7

POURQUOI MIGRER VERS LE CLOUD ?Motivations d’ordre technique :

abstraire les couches basses (serveur, réseau, OS, stockage)s’affranchir de l’administration technique des ressources etservices (BdD, pare-feux, load balancing,...)concevoir des infrastructures scalables à la voléeagir sur les ressources via des lignes de code et gérer lesinfrastructures “comme du code”

4 . 8

IAAS : INFRASTRUCTURE AS A SERVICE

4 . 9

LE LEADER DU IAAS PUBLIC : AMAZON WEBSERVICES (AWS)

Pionnier du marché (dès 2006)Elastic Compute Cloud (EC2) → puissance decalculElastic Block Storage (EBS) → stockage blocSimple Storage Service (S3) → stockage objet

Logo Amazon Web Services (AWS)

4 . 10

LES CLOUDS PUBLICS CONCURRENTS D’AWSdans le monde :

Google Cloud PlatformMicrosoft AzureRackspaceDreamHostDigitalOcean

en France :Cloudwatt (Orange BusinessServices)Numergy (SFR)OutscaleOVHIkoulaScaleway (Iliad)

4 . 11

LOGICIELS LIBRES PERMETTANT LEDÉPLOIEMENT D’UN CLOUD PRIVÉ

OpenStackOpenStack ( )Eucalyptus (société rachetée par HP en septembre2014)CloudStack ( )OpenNebula ( )

https://www.openstack.org

https://cloudstack.apache.org/http://opennebula.org/

4 . 12

CORRESPONDANCE OPENSTACK - AWSCompute → EC2 → NovaBlock storage → EBS →CinderObject storage → S3 → SwiftOrchestration → CFN → Heat

4 . 13

VIRTUALISATION DANS LE CLOUDUn cloud IaaS repose souvent sur la virtualisationRessources “compute” ← virtualisationHyperviseurs : KVM, Xen (libvirt), ESXConteneurs : OpenVZ, LXC, LXDConteneurs : Docker

4 . 14

NOTIONS ET VOCABULAIRE IAAS 1/4Identité et accès

Tenant/Projet (Project) : locataire du cloud, propriétairede ressources.Utilisateur (User) : compte autorisé à utiliser les APIOpenStack.Quota : contrôle l’utilisation des ressources (vcpu, ram, fip,security groups,...) dans un tenant.Catalogue (de services) : services disponibles etaccessibles via les API.Endpoint : URL permettant l’accès à une API. Un endpointpar service.

4 . 15

NOTIONS ET VOCABULAIRE IAAS 2/4Calcul/Serveurs (Compute)

Image : généralement, un OS bootable et “cloud ready”.Instance : forme dynamique d’une image.Type d’instance (flavor) : mensurations d’une instance(cpu, ram, capacité disque,...).Metadata et user data : informations gérées par le IaaS etmises à disposition de l’instance.Cloud-init, cloud-config : mécanismes permettant laconfiguration finale automatique d’une instance.

4 . 16

NOTIONS ET VOCABULAIRE IAAS 3/4Stockage (Storage)

Volume : disque virtuel accessible par les instances(stockage “block”).Conteneur (Container) : entités logiques pour le stockagede fichiers et accessibles via une URL (stockage “objet”).

Réseau et sécurité (Network, Security)Groupe de sécurité (Security groups) : ensemble de règlesde filtrage de flux appliqué à l’entrée des instances.Paire de clés (Keypairs) : clé privée + clé publiquepermettant les connexions aux instances via SSH.IP flottantes (Floating IP) : adresse IP allouée à la demandeet utilisée par les instances pour communiquer avec leréseau “externe”.

4 . 17

NOTIONS ET VOCABULAIRE IAAS 4/4Orchestration

Stack : ensemble des ressources IaaS utilisées par uneapplication.Template : fichier texte contenant la description d’unestack.

4 . 18

STOCKAGE BLOCKAccès à des raw devices type /dev/vdbPossibilité d’utiliser n’importe quel système defichiersCompatible avec toutes les applications legacy

4 . 19

STOCKAGE OBJETPousser et retirer des objets dans un container/bucketPas de hiérarchie des données, pas de système de fichiersAccès par les APIsL’application doit être conçue pour tirer parti du stockageobjet

4 . 20

STOCKAGE OBJET : UNE API

API de stockage objet

4 . 21

ORCHESTRER LES RESSOURCES DE SON IAASDéfinir tout une infrastructure dans un seul fichier texteÊtre en capacité d’instancier une infrastructure entière en unappel APIAutoscaling

Adapter ses ressources en fonction de ses besoins entemps réelFonctionnalité incluse dans le composant d’orchestrationd’OpenStack

4 . 22

OPENSTACK EST UNE APIApplication Programming InterfaceAu sens logiciel : Interface permettant à un logiciel d’utiliserune bibliothèqueAu sens cloud : Interface permettant à un logiciel d’utiliser unservice (XaaS)Il s’agit le plus souvent d’API HTTP REST

4 . 23

RESTUne ressource == une URI (Uniform Resource Identifier)Utilisation des verbes HTTP pour caractériser les opérations(CRUD)

GETPOSTPUTDELETE

Utilisation des codes de retour HTTPReprésentation des ressources dans le corps des réponsesHTTP

4 . 24

REST - EXEMPLESGET http://endpoint/volumes/GET http://endpoint/volumes/?size=10POST http://endpoint/volumes/DELETE http://endpoint/volumes/xyz

4 . 25

EXEMPLE CONCRETGET /v2.0/networks/d32019d3-bc6e-4319-9c1d-6722fc136a22{ "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 }}

4 . 26

PAAS : PLATFORM AS A SERVICE

4 . 27

PAAS : CONCEPT D’APPLICATION MANAGÉEFourniture d’une plate-forme de “build, deploy and scale”Pour un langage / un framework (Python, Java, PHP, etc.)Principalement utilisé par des développeursd’applications

Peut également désigner les as a Service type : DB, Queue,etc.

4 . 28

EXEMPLES DE PAAS PUBLICAmazon Elastic Beanstalk( )Google App Engine ( )Heroku ( )

https://aws.amazon.com/fr/elasticbeanstalkhttps://cloud.google.com/appengine

https://www.heroku.com

4 . 29

SOLUTIONS DE PAAS PRIVÉCloud Foundry ( )OpenShift ( )Solum ( )

https://www.cloudfoundry.orghttp://www.openshift.org

https://wiki.openstack.org/wiki/Solum

5 . 1

OPENSTACK : LE PROJET

5 . 2

TOUR D'HORIZON

5 . 3

VUE HAUT NIVEAU

Version simple

5 . 4

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

5 . 5

LES RELEASESAustin (2010.1)Bexar (2011.1), Cactus (2011.2), Diablo (2011.3)Essex (2012.1), Folsom (2012.2)Grizzly (2013.1), Havana (2013.2)Icehouse (2014.1), Juno (2014.2)Kilo (2015.1), Liberty (2015.2)Mitaka (2016.1), NewtonNewton (2016.2)Début 2017 : Ocata

5 . 6

STATISTIQUES : KILO1492 contributeurs (Liberty : 1933)169 organisations394 nouvelles fonctionnalités et 7257 bugscorrigés113 drivers/plugins792200 chaines traduites

Source : http://lists.openstack.org/pipermail/foundation-board/2015-April/000050.html

5 . 7

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

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

5 . 8

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

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

5 . 9

LES DIFFÉRENTS SOUS-PROJETSOpenStack Compute - NovaOpenStack (Object) Storage - SwiftOpenStack Block Storage - CinderOpenStack Networking - NeutronOpenStack Image Service - GlanceOpenStack Identity Service -KeystoneOpenStack Dashboard - HorizonOpenStack Telemetry - CeilometerOpenStack Orchestration - HeatOpenStack Database Service - Trove

5 . 10

LES DIFFÉRENTS SOUS-PROJETS (2)Mais aussi :

Bare metal (Ironic)Queue service (Zaqar)Data processing (Sahara)DNS service (Designate)Shared File Systems (Manila)Key management (Barbican)PaaS (Solum)Container (Magnum)

AutresLes clients (python-*client)

5 . 11

LES 4 OPENSOpen SourceOpen DesignOpen DevelopmentOpen Community

5 . 12

LA FONDATION OPENSTACKEntité de gouvernance principale du projetReprésentation juridique du projetLes membres du board sont issus des entreprises sponsors etélus par les membres individuelsTout le monde peut devenir membre individuel(gratuitement)

5 . 13

LA FONDATION OPENSTACKLa fondation supporte le projet par différents moyens :

Événements : organisation (Summits) ou participation(OSCON, etc.)Infrastructure de développement (serveurs)Ressources humaines : marketing, release manager,quelques développeurs (principalement surl’infrastructure)

500 organisations à travers le monde23000 membres individuels dans 160 pays

5 . 14

LA FONDATION OPENSTACK

Les principales entités de la fondation

5 . 15

INTERFACE WEB / DASHBOARD : HORIZON

Screenshot Horizon (Liberty)

5 . 16

RESSOURCESAnnonces/sécurité : [email protected] : Gouvernance du projet : Support :

[email protected]#openstack@Freenode

SDK/APIs :

http://docs.openstack.org/http://governance.openstack.org/

https://ask.openstack.org

http://developer.openstack.org/

5 . 17

RESSOURCESApplications : Actualités :

Blog officiel : Planet : Superuser : OpenStack Community Weekly Newsletter

Ressources commerciales : entre autres

http://apps.openstack.org/

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

http://superuser.openstack.org/

http://www.openstack.org/marketplace/

5 . 18

RESSOURCES - COMMUNAUTÉ FRANCOPHONE

Logo OpenStack-frSite web : Association des utilisateurs francophones d’OpenStack :

Meetups : Paris, Rhônes-Alpes, Toulouse, Montréal, etc.Présence à des événements tels que Paris Open SourceSummitCanaux de communication :

[email protected]#openstack-fr@Freenode

http://openstack.fr/

https://asso.openstack.fr/

6 . 1

TIRER PARTI DU IAAS

6 . 2

DEUX VISIONSUne fois un cloud IaaS en place, deux optiques possibles :

Garder les mêmes pratiques tout en profitant du self serviceet de l’agilité de la solution pour des besoins test/devFaire évoluer ses pratiques, tant côté applicatif que système“Pets vs Cattle”

6 . 3

SINON ?Faire tourner des applications legacy dans le cloud est une

mauvaise idée :

Interruptions de servicePertes de donnéesIncompréhensions “le cloud ça marchepas”

6 . 4

CÔTÉ APPLICATIONS

6 . 5

ADAPTER OU PENSER SES APPLICATIONS“CLOUD READY” 1/3

Cf. les design tenets du projet OpenStack et Twelve-Factorhttp://12factor.net/

Architecture distribuée plutôt quemonolithique

Facilite le passage à l’échelleLimite les domaines de failure

Couplage faible entre les composants

6 . 6

ADAPTER OU PENSER SES APPLICATIONS“CLOUD READY” 2/3

Bus de messages pour les communications inter-composantsStateless : permet de multiplier les routes d’accès àl’applicationDynamicité : l’application doit s’adapter à sonenvironnement et se reconfigurer lorsque nécessairePermettre le déploiement et l’exploitation par des outilsd’automatisation

6 . 7

ADAPTER OU PENSER SES APPLICATIONS“CLOUD READY” 3/3

Limiter autant que possible les dépendances à du matérielou du logiciel spécifique qui pourrait ne pas fonctionner dansun cloudTolérance aux pannes (fault tolerance) intégréeNe pas stocker les données en local, mais plutôt :

Base de donnéesStockage objet

Utiliser des outils standards de journalisation

6 . 8

CÔTÉ SYSTÈME

6 . 9

ADOPTER UNE PHILOSOPHIE DEVOPSInfrastructure as CodeScale out plutôt que scale up (horizontalement plutôt queverticalement)HA niveau application plutôt qu’infrastructureAutomatisation, automatisation, automatisationTests

6 . 10

MONITORINGPrendre en compte le cycle de vie desinstancesMonitorer le service plus que le serveur

6 . 11

BACKUPÊtre capable de recréer ses instances (et le reste de soninfrastructure)Données (applicatives, logs) : block, objet

6 . 12

UTILISER DES IMAGES CLOUDUne image cloud c’est :

Une image disque contenant un OS déjà installéUne image qui peut être instanciée en n machines sans erreurUn OS sachant parler à l’API de metadata du cloud (cloud-init)Détails :

La plupart des distributions fournissent aujourd’hui desimages cloud.

http://docs.openstack.org/image-guide/openstack-images.html

6 . 13

CIRROSCirros est l’image cloud parexcellenceOS minimalisteContient cloud-init

https://launchpad.net/cirros

6 . 14

CLOUD-INITCloud-init est un moyen de tirer parti de l’API de metadata, etnotamment des user dataL’outil est intégré par défaut dans la plupart des imagescloudÀ partir des user data, cloud-init effectue les opérations depersonnalisation de l’instancecloud-config est un format possible de user data

6 . 15

EXEMPLE CLOUD-CONFIG#cloud-configmounts: - [ xvdc, /var/www ]packages: - apache2 - htop

6 . 16

COMMENT GÉRER SES IMAGES ?Utilisation d’images génériques et personnalisation àl’instanciationCréation d’images intermédiaires et/ou totalementpersonnalisées : Golden images

libguestfs, virt-builder, virt-sysprepdiskimage-builder (TripleO)Packersolution “maison”

6 . 17

CONFIGURER ET ORCHESTRER SES INSTANCESOutils de gestion de configuration (les mêmes qui permettentde déployer OpenStack)Juju

7 . 1

ARCHITECTURES CLOUD-READY

7 . 2

CONCEVOIR UNE APPLICATION POUR LE CLOUD

7 . 3

12-FACTOR“The Twelve-Factor App” http://12factor.net/

Écrit par HerokuSuivre (tout) le code dans unVCSConfiguration

7 . 4

MODULAIREMultiples composants de taille raisonnablePhilosophie UnixCouplage faible et interface documentée

7 . 5

PASSAGE À L’ÉCHELLEVertical vs HorizontalScale up vs Scale outPlusieurs petites instances plutôt qu’une grosseinstance

7 . 6

STATEFUL VS STATELESSBeaucoup de stateful dans les applications legacyNécessite de partager l’information d’état lorsque plusieursworkersLe stateless élimine cette contrainte

7 . 7

TOLÉRANCE AUX PANNESL’infrastructure n’est pas hautement disponibleL’API d’infrastructure est hautement disponibleL’application doit anticiper et réagir auxpannes

7 . 8

STOCKAGE DES DONNÉESBase de données relationnellesBase de données NoSQLStockage blocStockage objetStockage éphémèreCache, temporaire

7 . 9

DESIGN TENETS D’OPENSTACK (EXEMPLE) 1/21. Scalability and elasticity are our main goals2. Any feature that limits our main goals must be optional3. Everything should be asynchronous. If you can’t do

something asynchronously, see #24. All required components must be horizontally scalable

7 . 10

DESIGN TENETS D’OPENSTACK (EXEMPLE) 2/25. Always use shared nothing architecture (SN) or sharding. If

you can’t Share nothing/shard, see #26. 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)

https://wiki.openstack.org/wiki/BasicDesignTenets

7 . 11

CONCEVOIR UNE INFRASTRUCTURE POUR LECLOUD

7 . 12

AUTOMATISATIONAutomatiser la gestion de l’infrastructure :indispensableCréation des ressourcesConfiguration des ressources

7 . 13

INFRASTRUCTURE AS CODETravailler comme un développeurDécrire son infrastructure sous forme de code (Heat,Ansible)Suivre les changements dans un VCS (git)Utiliser des outils de tests

7 . 14

BESOIN D’ORCHESTRATIONManager tous les types de ressources par un pointd’entréeDescription de l’infrastructure dans un fichier (template)Heat (intégré à OpenStack), Terraform

7 . 15

TESTS ET INTÉGRATION CONTINUEStyle de codeValidation de la syntaxeVoire plus si possible

7 . 16

AUTOSCALING GROUPGroupe d’instances similairesNombre variable d’instancesScaling automatique en fonction demétriques

7 . 17

L’ISOLATIONNiveau control plane : Tenant (projet)Niveau réseau : L2, L3, securitygroups

7 . 18

MULTI-TENANTNotion générale : un déploiement du logiciel permet demultiples utilisationsUn cloud OpenStack permet aux utilisateurs de travaillerdans des environnements isolésLes instances, réseaux, images, etc. sont associés à un tenantCertaines ressources peuvent être partagées entre tenants(exemple :image publique)On peut aussi parler de “projet”

7 . 19

LES INSTANCESÉphémèrePets vs CattleBasé sur une imageAPI de metadata

7 . 20

L’API DE METADATAAPI à destination des instancesStandard de fait initié par AWSAccessible depuis l’instance surhttp://169.254.169.254/Expose des informations relatives à l’instanceExpose un champ libre dit “userdata”

7 . 21

RÉSEAUFixed IPMultiples interfaces réseauxFloating IPs : pool, allocate,associate

7 . 22

FLOATING IPSIP flottantesSurcharge des “Fixed IPs”Non portée par l’instanceSouvent une IP “publique”Une fois allouée à un tenant, l’IP est réservéeElle est ensuite associable et désassociable àloisir

7 . 23

SECURITY GROUPSÉquivalent à un firewall devant chaque instanceUne instance peut être associée à un ou plusieurs groupes desécuritéGestion des accès en entrée et sortieRègles par protocole (TCP/UDP/ICMP) et par portCible une adresse IP, un réseau ou un autre groupe desécurité

7 . 24

FLAVORSGabaritÉquivalent des “instance types” d’AWSDéfinit un modèle d’instance en termes de CPU, RAM, disque(racine), disque éphémèreUn disque de taille nul équivaut à prendre la taille de l’imagede baseLe disque éphémère a, comme le disque racine, l’avantaged’être souvent local donc rapide

7 . 25

KEYPAIRSPaires de cléClés SSH publiques/privésLe cloud a connaissance de la clé publiqueLa clé publique est injectée dans lesinstances

7 . 26

MONITORINGMonitoring

Prendre en compte le cycle de vie des instances : DOWN !=ALERTMonitorer le service plus que le serveur

7 . 27

BACKUPBackuper, quoi ?

Être capable de recréer ses instances (et le reste de soninfrastructure)Données (applicatives, logs) : block, objet

7 . 28

UN EXEMPLE : L’ÉQUIPE OPENSTACK-INFRAÉquipe projet en charge de l’infrastructure dedéveloppement d’OpenStackTravaille comme les équipes de dev d’OpenStack et utilise lesmêmes outilsInfrastructure as codeInfrastructure ouverte : code “open source”Utilise du cloud (hybride)

8 . 1

CONCLUSION

8 . 2

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