Le concept d'orchestration dans le domaine de l'informatique a été popularisé avec l'avènement des conteneurs. Mais il existe depuis bien longtemps en musique ! A-t-il la même signification dans ces deux contextes ? Peut-on vraiment établir un parallèle ? Et le chef d'orchestre dans tout cela, y trouve-t-il sa place ?
Nous aborderons la question dans cette conférence au travers d'exemples concrets et de démonstrations, dans le but de vous en faire ressortir avec de solides notions d'orchestration(s) ... et de bonne musique.
Par Olivier Cloirec, Consultant SRE chez Xebia
Toutes les informations sur xebicon.fr
6. @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
9. @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
10. @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
12. @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
14. @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
15. @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 =
17. @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
18. @Xebiconfr #Xebicon18 @clook0
Conteneurs : choix de l’orchestrateur
18
● description du déploiement via fichiers déclaratifs « manifests »
● outil kubectl pour parler à l’orchestrateur
24. @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
32. @Xebiconfr #Xebicon18 @clook0
Côté musique : accompagnement
Accompagnement = fond sonore, paysage
Choix d’un groupe d’instruments pour « harmoniser »
32
45. @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
47. @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
48. @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
49. @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
50. @Xebiconfr #Xebicon18 @clook0
Scaling horizontal
50
=> augmenter le nombre de conteneurs
conteneurs musique
=> augmenter le nombre d’instruments
frontend
51. @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
52. @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
53. @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.
55. @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 :