SlideShare ist ein Scribd-Unternehmen logo
1 von 58
Downloaden Sie, um offline zu lesen
@Xebiconfr #Xebicon18 @clook0
Build the future
Orchestration : Conteneurs vs Musique
Olivier Cloirec, consultant SRE
1
@Xebiconfr #Xebicon18 @clook0
Qui suis-je ?
Olivier Cloirec
Consultant SRE
@clook0
2
@Xebiconfr #Xebicon18 @clook0
Orchestration : Conteneurs vs Musique
3
@Xebiconfr #Xebicon18 @clook0
Pourquoi ?
4
@Xebiconfr #Xebicon18 @clook0
Mise en garde
0 bullshit
DISCLAIMER
● chef d’orchestre
● orchestrateur de musique
5
@Xebiconfr #Xebicon18 @clook0
Rappel : conteneurs, l’avant
OS
DD DDDDC D
code de l’application
dépendance
dépendance
dépendance
DD CD D
6
C DD D
D DDCDDD DD
D
@Xebiconfr #Xebicon18 @clook0
Rappel : conteneurs, l’après
7
OS
D
D D
D
D
D
D
D
D
D
D
D D
D
D
D
D
D
D
D
D
D
C
C
C
C
@Xebiconfr #Xebicon18 @clook0
Musique : “la base”
8
@Xebiconfr #Xebicon18 @clook0
Musique : “la base”
● portée = « ligne de musique » ;
● hauteur des sons = hauteur des notes sur la portée ;
● valeur temporelle, unités de temps, mesure et barres de mesure ;
● clés au début de chaque portée ;
● débuts de portées connectés : doivent être jouées simultanément.
9
@Xebiconfr #Xebicon18 @clook0
Orchestration de conteneurs : quésaco ?
« L’orchestration décrit le processus automatique
d’organisation, de coordination, et de gestion de systèmes
informatiques complexes, de middleware et de services. »
Wikipedia France
10
@Xebiconfr #Xebicon18 @clook0
Orchestration de conteneurs : quésaco ?
11
@Xebiconfr #Xebicon18 @clook0
Orchestration de conteneurs : quésaco ?
charge de travail = conteneurs
ressources = machines (nœuds), CPU, RAM, disque, IO, etc.
L’orchestrateur affecte des ressources pour chaque conteneur en fonction :
● de la quantité et qualité des ressources nécessaires ;
● de contraintes de placement explicites.
12
@Xebiconfr #Xebicon18 @clook0
L’orchestration, en musique
13
@Xebiconfr #Xebicon18 @clook0
L’orchestration, en musique
« L’orchestration est la science musicale qui décrit les règles de distribution
des différentes parties ou voix à exécuter aux instruments correspondants.
Autrement dit, le compositeur en train « d’orchestrer » distribue
consciemment sa musique aux instruments d'après le rendu qu'il souhaite
obtenir. »
Wikipedia France
14
@Xebiconfr #Xebicon18 @clook0
Autrement dit...
thème (« mélodie »)
&
harmonie (« accords », « accompagnement »)
ensemble d’instruments à disposition
(« orchestre »)
Rendu :
● même thème
● même harmonie
● mais écrit / arrangé pour l’orchestre !
O
R
C
H
E
S
T
R
A
T
I
O
N
15
Prérequis :
charge
de =
travail
ressources =
@Xebiconfr #Xebicon18 @clook0
Demo time :)
16
@Xebiconfr #Xebicon18 @clook0
Côté conteneurs
Ressources : cluster 1 master + 3 nœuds avec 1.5 Go de RAM
Charge de travail : application 3 tiers
● frontend Web
● backend
● 1 base de données Redis
Contraintes :
● le frontend consomme 0.5 CPU, 256 Mo de RAM
● le backend consomme 0.8 CPU, 512 Mo de RAM
● la base de données Redis consomme 0.8 CPU, 1 Go de RAM
17
@Xebiconfr #Xebicon18 @clook0
Conteneurs : choix de l’orchestrateur
18
● description du déploiement via fichiers déclaratifs « manifests »
● outil kubectl pour parler à l’orchestrateur
@Xebiconfr #Xebicon18 @clook0
Conteneurs : déploiement frontend
19
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: hello-world
tier: frontend
name: frontend
namespace: hello-world
spec:
replicas: 1
selector:
matchLabels:
app: hello-world
tier: frontend
template:
metadata:
labels:
app: hello-world
tier: frontend
spec:
containers:
- image: clook/hello-world:front
imagePullPolicy: IfNotPresent
name: frontend
resources:
requests:
cpu: 0.5
memory: 256Mi
limits:
cpu: 0.6
memory: 384Mi
@Xebiconfr #Xebicon18 @clook0
Conteneurs : déploiement DB redis
20
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: hello-world
tier: db
name: redis
namespace: hello-world
spec:
replicas: 1
selector:
matchLabels:
app: hello-world
tier: db
template:
metadata:
labels:
app: hello-world
tier: db
spec:
containers:
- image: redis:alpine
imagePullPolicy: IfNotPresent
name: redis
resources:
requests:
cpu: 0.8
memory: 1024Mi
limits:
cpu: 0.9
memory: 1280Mi
@Xebiconfr #Xebicon18 @clook0
Conteneurs : déploiement backend
21
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: hello-world
tier: backend
name: backend
namespace: hello-world
spec:
replicas: 1
selector:
matchLabels:
app: hello-world
tier: backend
template:
metadata:
labels:
app: hello-world
tier: backend
spec:
containers:
- image: clook/hello-world:back
imagePullPolicy: IfNotPresent
name: backend
env:
- name: REDIS_HOST
value: redis
resources:
requests:
cpu: 0.8
memory: 512Mi
limits:
cpu: 0.9
memory: 768Mi
@Xebiconfr #Xebicon18 @clook0
Conteneurs
22
@Xebiconfr #Xebicon18 @clook0
Conteneurs
23
node? node? node?
DB
Redis
frontend
backend
@Xebiconfr #Xebicon18 @clook0
Côté conteneurs v2
Ressources : cluster 1 master + 3 nœuds avec 1.5 Go de RAM, dont 1 avec GPU
Charge de travail : application 3 tiers
● frontend Web
● backend
● 1 base de données Redis
Contraintes :
● le frontend consomme 0.5 CPU, 256 Mo de RAM
● le backend consomme 0.8 CPU, 512 Mo de RAM et nécessite l'accès à un GPU pour certains traitements
● la base de données Redis consomme 0.8 CPU, 1 Go de RAM
24
@Xebiconfr #Xebicon18 @clook0
Conteneurs
25
@Xebiconfr #Xebicon18 @clook0
Conteneurs : redéploiement backend
26
resources:
requests:
cpu: 0.8
memory: 512Mi
limits:
cpu: 0.9
memory: 768Mi
nodeSelector:
gpu: “true”
tolerations:
- key: "gpuonly"
operator: Equal
value: "true"
@Xebiconfr #Xebicon18 @clook0
Conteneurs
27
node? node? node3
(avec GPU)
DB
Redis
frontend
backend
@Xebiconfr #Xebicon18 @clook0
Conteneurs : conclusion
28
● allocation / affectation réalisée par l’orchestrateur
● intérêt ?
@Xebiconfr #Xebicon18 @clook0
Côté musique
Thème harmonisé à orchestrer :
...c’était (aussi) un blind test !
29
@Xebiconfr #Xebicon18 @clook0
Côté musique
P. I. Tchaikovsky Scène du Lac des Cygnes
30
@Xebiconfr #Xebicon18 @clook0
Côté musique
Commençons par l’harmonie :
31
@Xebiconfr #Xebicon18 @clook0
Côté musique : accompagnement
Accompagnement = fond sonore, paysage
Choix d’un groupe d’instruments pour « harmoniser »
32
@Xebiconfr #Xebicon18 @clook0
Côté musique : accompagnement
Les cordes (frottées) sont
très visibles !
33
@Xebiconfr #Xebicon18 @clook0
Côté musique : accompagnement
34
@Xebiconfr #Xebicon18 @clook0
Côté musique : accompagnement
Un peu plat ? Où est le côté tragique ?
35
@Xebiconfr #Xebicon18 @clook0
Côté musique : accompagnement
Instrument suivant ?
36
@Xebiconfr #Xebicon18 @clook0
Côté musique : accompagnement
Pas l’effet escompté ?
37
@Xebiconfr #Xebicon18 @clook0
Côté musique : accompagnement
Et maintenant, le thème...
38
@Xebiconfr #Xebicon18 @clook0
Côté musique : le thème
?
39
@Xebiconfr #Xebicon18 @clook0
Côté musique : le thème
Mélodica
40
@Xebiconfr #Xebicon18 @clook0
Côté musique : le thème
41
Guitare
@Xebiconfr #Xebicon18 @clook0
Côté musique : le thème
42
@Xebiconfr #Xebicon18 @clook0
Côté musique : le thème
43
Hautbois
@Xebiconfr #Xebicon18 @clook0
Bravo !
44
@Xebiconfr #Xebicon18 @clook0
tl;dr
45
Orchestration = allocation de ressources pour
satisfaire une charge de travail
charge de travail ressources
conteneurs conteneurs nœuds (machines)
musique lignes de musique instruments de
musique
@Xebiconfr #Xebicon18 @clook0
Autres similarités
et
différences
46
@Xebiconfr #Xebicon18 @clook0
Scalabilité
capacité à s’adapter à une taille / volume selon des facteurs définis
47
conteneurs musique
● raisons esthétiques, intentions
musicales
● recherches sur le timbre, recherche de
l’expression par le volume / la masse
sonore (à partir du XIXe
siècle)
● traitements plus ou moins gourmands
● nombre d’utilisateurs
@Xebiconfr #Xebicon18 @clook0
Scaling vertical
48
=> allouer plus de ressources pour un conteneur
conteneurs musique
=> demander au(x) musicien(s) de jouer plus fort
frontend
POWER
@Xebiconfr #Xebicon18 @clook0
Scaling vertical
49
=> allouer plus de ressources pour un conteneur
conteneurs musique
=> demander au(x) musicien(s) de jouer plus fort
frontend
ressources limitées pour une machine
l’instrument
et le
musicien
ont aussi
leurs
limites
POWER
@Xebiconfr #Xebicon18 @clook0
Scaling horizontal
50
=> augmenter le nombre de conteneurs
conteneurs musique
=> augmenter le nombre d’instruments
frontend
@Xebiconfr #Xebicon18 @clook0
Scaling horizontal
51
=> augmenter le nombre de conteneurs
conteneurs musique
=> augmenter le nombre d’instruments
frontend frontend frontend frontend frontend
frontend frontend frontend frontend
@Xebiconfr #Xebicon18 @clook0
Cycle de vie
52
conteneurs
musique
● livraison d’une partition
● pas de vocation à évoluer après
publication (sauf révisions)
● travail itératif
● livraison d’une application le jour J
● livraison d’une autre quelques mois plus tard
● l’organisation du cluster peut changer au jour
le jour, cycle de vie itératif
@Xebiconfr #Xebicon18 @clook0
Planification vs application
53
conteneurs musique
● l’orchestrateur planifie
uniquement ;
● le chef d’orchestre « applique ».
L’orchestrateur s’occupe de
● la planification ;
● l’application de cette planification.
@Xebiconfr #Xebicon18 @clook0
Le rôle du
chef d’orchestre
54
@Xebiconfr #Xebicon18 @clook0
Rôle du chef d’orchestre
55
synchronisation temporelle
intentions musicales
● départs
● battue
Exemples
● souple et très calme
● emporté
● expressif (espressivo)
● lent mais pas trop (lento ma non troppo)
● à peine plus vite
● choix du programme
● travail préparatoire
● gestion des répétitions
● gestion du groupe
...et en amont :
@Xebiconfr #Xebicon18 @clook0
Automatisation ?
56
conteneurs musique
● orchestrateur = humain
● applique une méthode
● orchestrateur = outil, logiciel
● automatique
@Xebiconfr #Xebicon18 @clook0
Merci !
57
Questions ?
@Xebiconfr #Xebicon18 @clook0
Merci à eux !
58
Anne et la team #marketing
Horgix
Jean-Louis
Ivan
mon épouse
Flavien
la régie

Weitere ähnliche Inhalte

Mehr von Publicis Sapient Engineering

XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...Publicis Sapient Engineering
 
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin Publicis Sapient Engineering
 
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?Publicis Sapient Engineering
 
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?Publicis Sapient Engineering
 
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéXebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéPublicis Sapient Engineering
 
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...Publicis Sapient Engineering
 
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !Publicis Sapient Engineering
 
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizXebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizPublicis Sapient Engineering
 
XebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéXebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéPublicis Sapient Engineering
 
XebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectXebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectPublicis Sapient Engineering
 
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...Publicis Sapient Engineering
 
XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018Publicis Sapient Engineering
 
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...Publicis Sapient Engineering
 
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...Publicis Sapient Engineering
 
XebiCon'18 - La guerre des Frameworks n'aura pas lieu
XebiCon'18 - La guerre des Frameworks n'aura pas lieuXebiCon'18 - La guerre des Frameworks n'aura pas lieu
XebiCon'18 - La guerre des Frameworks n'aura pas lieuPublicis Sapient Engineering
 
XebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
XebiCon'18 - Passage à l'échelle de mes applications Kafka-StreamsXebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
XebiCon'18 - Passage à l'échelle de mes applications Kafka-StreamsPublicis Sapient Engineering
 
TEch4Exec - OUI.sncf propose des voyages moins chers grâce au Big Data et au ...
TEch4Exec - OUI.sncf propose des voyages moins chers grâce au Big Data et au ...TEch4Exec - OUI.sncf propose des voyages moins chers grâce au Big Data et au ...
TEch4Exec - OUI.sncf propose des voyages moins chers grâce au Big Data et au ...Publicis Sapient Engineering
 

Mehr von Publicis Sapient Engineering (20)

XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
 
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
 
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
 
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
 
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéXebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
 
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
 
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
 
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizXebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
 
XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture
 
XebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéXebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilité
 
XebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectXebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID Connect
 
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
 
XebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an aprèsXebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an après
 
XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018
 
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
 
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
 
XebiCon'18 - La guerre des Frameworks n'aura pas lieu
XebiCon'18 - La guerre des Frameworks n'aura pas lieuXebiCon'18 - La guerre des Frameworks n'aura pas lieu
XebiCon'18 - La guerre des Frameworks n'aura pas lieu
 
XebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
XebiCon'18 - Passage à l'échelle de mes applications Kafka-StreamsXebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
XebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
 
XebiCon'18 - Data Science Done Wrong
XebiCon'18 - Data Science Done WrongXebiCon'18 - Data Science Done Wrong
XebiCon'18 - Data Science Done Wrong
 
TEch4Exec - OUI.sncf propose des voyages moins chers grâce au Big Data et au ...
TEch4Exec - OUI.sncf propose des voyages moins chers grâce au Big Data et au ...TEch4Exec - OUI.sncf propose des voyages moins chers grâce au Big Data et au ...
TEch4Exec - OUI.sncf propose des voyages moins chers grâce au Big Data et au ...
 

XebiCon'18 - Orchestration : Conteneurs vs Musique