43
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

Orchestrer son cloud OpenStack avec Heat - 2014.rmll.info · Orchestrer son cloud OpenStack avec Heat Adrien Cunin [email protected] Osones 7 juillet 2014 Adrien Cunin (Osones)

Embed Size (px)

Citation preview

Orchestrer son cloud OpenStack avec Heat

Adrien [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 fonctionnalites avancees de Heat

Futur de Heat

Demonstration

Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 4 / 43

Qui suis-je ?

Adrien CuninI 24 ans et passionne de logiciels libresI Contributeur depuis 2006 (notamment Ubuntu et Debian)I Ingenieur cloud computing / OpenStack

OsonesI Services et formations cloud computing (OpenStack, AWS)

Association OpenStack-frI 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 HeatPourquoi 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 HeatPourquoi 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 materiel (voire plus)

Acces normalise par des APIs

Service et facturation a la demande

Flexibilite, elasticite

Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 8 / 43

WaaS : Whatever as a Service

Principalement

IaaS Infrastructure as a ServicePaaS Platform as a ServiceSaaS Software as a Service

Mais aussi :I Database as a ServiceI Network as a ServiceI Load balancing as a ServiceI $APPLICATION as a Service

Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 9 / 43

Recapitulatif

Source : WikipediaAdrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 10 / 43

Cloud public ou cloud prive ?

Public fourni par un hebergeur a des clients (AWS, Rackspace Cloud, etc.);cloud externalise

Prive plateforme et ressources internes

Hybride utilisation de ressources publiques en complement d’un cloud prive,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 reference : Amazon Web Services (AWS), pionniersdu genre (des 2002)

Logiciels libres permettant le deploiement d’un cloud prive :I EucalyptusI CloudStackI OpenNebulaI OpenStack

Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 12 / 43

Le projet OpenStack en resume

Networking

OPENSTACK CLOUD OPERATING SYSTEM

Standard Hardware

Compute Storage

Your Applications

OpenStack Dashboard

OpenStack Shared Services

APIs

Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 13 / 43

Historique du projet OpenStack

Demarrage en 2010

Objectif : le Cloud Operating System libre

Fusion de deux projets de Rackspace (Storage) et de la NASA(Compute)

Licence Apache 2.0Les releases jusqu’a aujourd’hui :

I Austin (2010.1)I Bexar (2011.1)

...I Grizzly (2013.1)I Havana (2013.2)I Icehouse (2014.1)I 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 precedemment cites

En France : CloudWatt et Numergy

Wikimedia

CERN

Paypal

Comcast

Etc. Sans compter les implementations confidentielles

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

Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 17 / 43

Developpement 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

A partir d’images, on cree des instances

On attache des volumes a ces instances

Les instances sont placees dans des reseaux

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 HeatPourquoi orchestrer ?L’orchestration dans OpenStack : Heat

Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 21 / 43

Ce que nous fournit deja l’IaaS

Differents types de ressources

Acces a la demande, rapide et agile, a ces ressources

Possibilite de lier certaines ressources entre elles

Des passerelles vers l’interieur 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 unifiee a tous les types de ressources

Un format de description de son architecture : ressources et liensentre ressources

La possibilite de reproduire et distribuer facilement un modeled’architecture

Aller plus loin dans la configuration de l’interieur des instances

Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 23 / 43

Principes de Heat

Integration officielle dans le projet : Havana (fin 2013)

Inspire de CloudFormation (CFN) chez AWS

Description de son architecture dans un fichier template

Un template est instancie en stack

C’est Heat qui va faire les demandes d’allocation de ressources aupresdes differents services

Cycle de vie d’une stack : creation, mise(s) a 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 parametres

Declare des ressources

Renvoie des sorties

Format HOT (Heat Orchestration Template) : base sur YAML

(Le format CFN est base 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

Parametres

Configurer une stack a son lancement

Possibilite de definir des contraintes sur ces parametres

Exemples :I Taille de l’instanceI Cle publique SSH pour acceder a l’instanceI Mot de passe

Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 27 / 43

Parametres : 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 characters

- allowed_pattern: ’[a-zA-Z][a-zA-Z0-9]*’

description: >

db_name must begin with a letter and contain only alphanumeric

characters

Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 28 / 43

Ressources

Une ressource a un type ...

... et des proprietes

Possibilite de faire reference a un parametre ou a une autre ressource

Quelques types de ressource possibles :I OS::Nova::ServerI OS::Neutron::NetI 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 a l’utilisateur

Exemples :I Adresse de l’application web deployeeI Mot de passe genere

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

Demonstration

Creation d’une stack avec deux instances

Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 33 / 43

Quelques fonctionnalites avancees

Nested stacks : referencer un template dans un autre

Definition de ses propres ressources (provider resources)

Environnements : passer des parametres lors de l’instanciation d’unestack

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 evoluer dynamiquement le nombre de ressources dans la stack

Exemple : 1 load-balancer + N serveurs web

Les instances ”serveur web” sont creees et supprimees a la volee enfonction d’une metrique

Couplage avec Ceilometer (OpenStack Telemetry) pour larecuperation des metriques

Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 37 / 43

Generer un template a partir de l’existant

Aujoud’hui pas de solution integree dans OpenStack

Recemment, solution proposee par CloudWatt : Flame

http://dev.cloudwatt.com/fr/blog/

introduction-a-flame-le-generateur-de-template-automatique-pour-heat.

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

Avancees dans le deploiement 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 deployer des applicationscomplexes dans le cloud

Heat n’en est qu’a ses debuts

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 Francais

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 presentation est sous licence CC BY-SA(Certains schemas et exemples ont ete piques a Steven Hardy & Zane Bitter)

Questions ?Email : [email protected] : Adri2000@Freenode

Twitter : @Adri2000 OS

Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 43 / 43