Orchestrer son cloud OpenStack avec Heat
Transcription
Orchestrer son cloud OpenStack avec Heat
Orchestrer son cloud OpenStack avec Heat Adrien Cunin [email protected] Osones 7 juillet 2014 Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 1 / 43 Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 2 / 43 Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 3 / 43 Introduction Le cloud ? Parlons IaaS et OpenStack Le besoin d’orchestration Les principes de Heat Quelques fonctionnalités avancées de Heat Futur de Heat Démonstration Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 4 / 43 Qui suis-je ? Adrien Cunin I I I 24 ans et passionné de logiciels libres Contributeur depuis 2006 (notamment Ubuntu et Debian) Ingénieur cloud computing / OpenStack Osones I Services et formations cloud computing (OpenStack, AWS) Association OpenStack-fr I Membre du CA et co-fondateur Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 5 / 43 Plan 1 Le cloud, l’IaaS et OpenStack 2 L’orchestration et Heat Pourquoi orchestrer ? L’orchestration dans OpenStack : Heat Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 6 / 43 Plan 1 Le cloud, l’IaaS et OpenStack 2 L’orchestration et Heat Pourquoi orchestrer ? L’orchestration dans OpenStack : Heat Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 7 / 43 Le cloud, significations... Stockage/calcul distant (dans ce contexte, on oublie) Virtualisation++ Abstraction du matériel (voire plus) Accès normalisé par des APIs Service et facturation à la demande Flexibilité, élasticité Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 8 / 43 WaaS : Whatever as a Service Principalement IaaS Infrastructure as a Service PaaS Platform as a Service SaaS Software as a Service Mais aussi : I I I I Database as a Service Network as a Service Load balancing as a Service $APPLICATION as a Service Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 9 / 43 Récapitulatif Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 10 / 43 Cloud public ou cloud privé ? Public fourni par un hébergeur à des clients (AWS, Rackspace Cloud, etc.); cloud externalisé Privé plateforme et ressources internes Hybride utilisation de ressources publiques en complément d’un cloud privé, lorsque le besoin apparait (cloud bursting ) Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 11 / 43 Comment faire de l’IaaS Cloud public de référence : Amazon Web Services (AWS), pionniers du genre (dès 2002) Logiciels libres permettant le déploiement d’un cloud privé : I I I I Eucalyptus CloudStack OpenNebula OpenStack Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 12 / 43 Le projet OpenStack en résumé Your Applications OPENSTACK APIs CLOUD OPERATING SYSTEM OpenStack Dashboard Compute Networking Storage OpenStack Shared Services Standard Hardware Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 13 / 43 Historique du projet OpenStack Démarrage en 2010 Objectif : le Cloud Operating System libre Fusion de deux projets de Rackspace (Storage) et de la NASA (Compute) Licence Apache 2.0 Les releases jusqu’à aujourd’hui : I I Austin (2010.1) Bexar (2011.1) ... I I I I Grizzly (2013.1) Havana (2013.2) Icehouse (2014.1) Novembre 2014 : Juno Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 14 / 43 Fondation OpenStack Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 15 / 43 Quelques soutiens/contributeurs ... Rackspace 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/ Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 16 / 43 ... et utilisateurs Tous les contributeurs précédemment cités En France : CloudWatt et Numergy Wikimedia CERN Paypal Comcast Etc. Sans compter les implémentations confidentielles http://www.openstack.org/user-stories/ Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 17 / 43 Développement du projet Open Source Open Design Open Development Open Community Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 18 / 43 Architecture conceptuelle Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 19 / 43 Quelques notions À partir d’images, on créé des instances On attache des volumes à ces instances Les instances sont plaçées dans des réseaux Toutes ces actions sont faisables par une API REST Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 20 / 43 Plan 1 Le cloud, l’IaaS et OpenStack 2 L’orchestration et Heat Pourquoi orchestrer ? L’orchestration dans OpenStack : Heat Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 21 / 43 Ce que nous fournit déjà l’IaaS Différents types de ressources Accès à la demande, rapide et agile, à ces ressources Possibilité de lier certaines ressources entre elles Des passerelles vers l’intérieur des instances (user data et cloud-init) Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 22 / 43 Ce qu’il manque Une interface unifiée à tous les types de ressources Un format de description de son architecture : ressources et liens entre ressources La possibilité de reproduire et distribuer facilement un modèle d’architecture Aller plus loin dans la configuration de l’intérieur des instances Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 23 / 43 Principes de Heat Intégration officielle dans le projet : Havana (fin 2013) Inspiré de CloudFormation (CFN) chez AWS Description de son architecture dans un fichier template Un template est instancié en stack C’est Heat qui va faire les demandes d’allocation de ressources auprès des différents services Cycle de vie d’une stack : création, mise(s) à jour, destruction Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 24 / 43 Les templates Template d’une architecture : fichier texte Prend des paramètres Déclare des ressources Renvoie des sorties Format HOT (Heat Orchestration Template) : basé sur YAML (Le format CFN est basé sur JSON) Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 25 / 43 Les templates Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 26 / 43 Paramètres Configurer une stack à son lancement Possibilité de définir des contraintes sur ces paramètres Exemples : I I I Taille de l’instance Clé publique SSH pour accéder à l’instance Mot de passe Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 27 / 43 Paramètres : exemple db_name: type: string description: WordPress database name default: wordpress constraints: - length: { min: 1, max: 64 } description: db_name must be between 1 and 64 characte - allowed_pattern: ’[a-zA-Z][a-zA-Z0-9]*’ description: > db_name must begin with a letter and contain only al characters Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 28 / 43 Ressources Une ressource a un type ... ... et des propriétés Possibilité de faire référence à un paramètre ou à une autre ressource Quelques types de ressource possibles : I I I OS::Nova::Server OS::Neutron::Net OS::Cinder::Volume Attributs Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 29 / 43 Ressource : exemple server1: type: OS::Nova::Server properties: name: Server1 image: { get_param: image } flavor: { get_param: flavor } key_name: { get_param: key_name } networks: - port: { get_resource: server1_port } Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 30 / 43 Les sorties Permet de renvoyer des informations utiles à l’utilisateur Exemples : I I Adresse de l’application web déployée Mot de passe généré Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 31 / 43 Ressource : exemple outputs: server1_provider_ip: description: IP address of server1 in provider network value: { get_attr: [ server1, first_address ] } server2_provider_ip: description: IP address of server2 in provider network value: { get_attr: [ server2, first_address ] } Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 32 / 43 Démonstration Création d’une stack avec deux instances Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 33 / 43 Quelques fonctionnalités avancées Nested stacks : référencer un template dans un autre Définition de ses propres ressources (provider resources) Environnements : passer des paramètres lors de l’instanciation d’une stack Autoscaling : avec Ceilometer Application configuration : aller plus loin que cloud-init Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 34 / 43 Nested stacks + provider resources + environments I (my_nested.yaml) heat_template_version: 2013-05-23 resources: my_instance: type: OS::Nova::Server properties: flavor: m1.small image: my_image Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 35 / 43 Nested stacks + provider resources + environments II (my_stack.yaml) heat_template_version: 2013-05-23 resources: my_nested: type: My::Custom::Server (environment.yaml) resource_registry: My::Custom::Server: my_nested.yaml Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 36 / 43 Autoscaling Faire évoluer dynamiquement le nombre de ressources dans la stack Exemple : 1 load-balancer + N serveurs web Les instances ”serveur web” sont créées et supprimées à la volée en fonction d’une métrique Couplage avec Ceilometer (OpenStack Telemetry) pour la récupération des métriques Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 37 / 43 Générer un template à partir de l’existant Aujoud’hui pas de solution intégrée dans OpenStack Récemment, solution proposée par CloudWatt : Flame http://dev.cloudwatt.com/fr/blog/ introduction-a-flame-le-generateur-de-template-automatique html Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 38 / 43 Futur de Heat Discussion sur une nouvelle version de l’API Chiffrement dans les templates Versionnement des ressources Avancées dans le déploiement de configuration et d’application API Autoscaling en dehors de Heat Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 39 / 43 Conclusion L’orchestration devient essentiel pour déployer des applications complexes dans le cloud Heat n’en est qu’à ses débuts Nous sommes en route vers le PaaS Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 40 / 43 Ressources http://openstack.org https://wiki.openstack.org/Heat http: //docs.openstack.org/developer/heat/template_guide/ https: //git.openstack.org/cgit/openstack/heat-templates/ Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 41 / 43 OpenStack en Français Site web : http://openstack.fr Mailing-list : [email protected] IRC : #openstack-fr@Freenode Twitter : @OpenStackFr L’association : https://asso.openstack.fr Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 42 / 43 Merci ! Cette présentation est sous licence CC BY-SA (Certains schémas et exemples ont été piqués à Steven Hardy & Zane Bitter) Questions ? Email : [email protected] IRC : Adri2000@Freenode Twitter : @Adri2000 OS Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 43 / 43