Orchestrer son cloud OpenStack avec Heat Adrien Cunin adrien.cunin@osones.com 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 24 ans et passionné de logiciels libres Contributeur depuis 2006 (notamment Ubuntu et Debian) Ingénieur cloud computing / OpenStack Osones Services et formations cloud computing (OpenStack, AWS) Association OpenStack-fr 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 : 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é? ublic fourni par un hébergeur à des clients (AWS, Rackspace Cloud, etc.); cloud externalisé Privé plateforme et ressources internes ybride 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é : 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 APIs OPENSTACK 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 : Austin (2010.1) Bexar (2011.1)... 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 : 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 : 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 : 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 : openstack-fr@lists.openstack.org 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 : adrien.cunin@osones.com IRC : Adri2000@Freenode Twitter : @Adri2000 OS Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 43 / 43