Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

XebiCon'18 - Orchestration : Conteneurs vs Musique

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Prochain SlideShare
Plein phar
Plein phar
Chargement dans…3
×

Consultez-les par la suite

1 sur 58 Publicité

XebiCon'18 - Orchestration : Conteneurs vs Musique

Télécharger pour lire hors ligne

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

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

Publicité
Publicité

Plus De Contenu Connexe

Plus par Publicis Sapient Engineering (20)

Plus récents (20)

Publicité

XebiCon'18 - Orchestration : Conteneurs vs Musique

  1. 1. @Xebiconfr #Xebicon18 @clook0 Build the future Orchestration : Conteneurs vs Musique Olivier Cloirec, consultant SRE 1
  2. 2. @Xebiconfr #Xebicon18 @clook0 Qui suis-je ? Olivier Cloirec Consultant SRE @clook0 2
  3. 3. @Xebiconfr #Xebicon18 @clook0 Orchestration : Conteneurs vs Musique 3
  4. 4. @Xebiconfr #Xebicon18 @clook0 Pourquoi ? 4
  5. 5. @Xebiconfr #Xebicon18 @clook0 Mise en garde 0 bullshit DISCLAIMER ● chef d’orchestre ● orchestrateur de musique 5
  6. 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
  7. 7. @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
  8. 8. @Xebiconfr #Xebicon18 @clook0 Musique : “la base” 8
  9. 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. 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
  11. 11. @Xebiconfr #Xebicon18 @clook0 Orchestration de conteneurs : quésaco ? 11
  12. 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
  13. 13. @Xebiconfr #Xebicon18 @clook0 L’orchestration, en musique 13
  14. 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. 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 =
  16. 16. @Xebiconfr #Xebicon18 @clook0 Demo time :) 16
  17. 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. 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
  19. 19. @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
  20. 20. @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
  21. 21. @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
  22. 22. @Xebiconfr #Xebicon18 @clook0 Conteneurs 22
  23. 23. @Xebiconfr #Xebicon18 @clook0 Conteneurs 23 node? node? node? DB Redis frontend backend
  24. 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
  25. 25. @Xebiconfr #Xebicon18 @clook0 Conteneurs 25
  26. 26. @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"
  27. 27. @Xebiconfr #Xebicon18 @clook0 Conteneurs 27 node? node? node3 (avec GPU) DB Redis frontend backend
  28. 28. @Xebiconfr #Xebicon18 @clook0 Conteneurs : conclusion 28 ● allocation / affectation réalisée par l’orchestrateur ● intérêt ?
  29. 29. @Xebiconfr #Xebicon18 @clook0 Côté musique Thème harmonisé à orchestrer : ...c’était (aussi) un blind test ! 29
  30. 30. @Xebiconfr #Xebicon18 @clook0 Côté musique P. I. Tchaikovsky Scène du Lac des Cygnes 30
  31. 31. @Xebiconfr #Xebicon18 @clook0 Côté musique Commençons par l’harmonie : 31
  32. 32. @Xebiconfr #Xebicon18 @clook0 Côté musique : accompagnement Accompagnement = fond sonore, paysage Choix d’un groupe d’instruments pour « harmoniser » 32
  33. 33. @Xebiconfr #Xebicon18 @clook0 Côté musique : accompagnement Les cordes (frottées) sont très visibles ! 33
  34. 34. @Xebiconfr #Xebicon18 @clook0 Côté musique : accompagnement 34
  35. 35. @Xebiconfr #Xebicon18 @clook0 Côté musique : accompagnement Un peu plat ? Où est le côté tragique ? 35
  36. 36. @Xebiconfr #Xebicon18 @clook0 Côté musique : accompagnement Instrument suivant ? 36
  37. 37. @Xebiconfr #Xebicon18 @clook0 Côté musique : accompagnement Pas l’effet escompté ? 37
  38. 38. @Xebiconfr #Xebicon18 @clook0 Côté musique : accompagnement Et maintenant, le thème... 38
  39. 39. @Xebiconfr #Xebicon18 @clook0 Côté musique : le thème ? 39
  40. 40. @Xebiconfr #Xebicon18 @clook0 Côté musique : le thème Mélodica 40
  41. 41. @Xebiconfr #Xebicon18 @clook0 Côté musique : le thème 41 Guitare
  42. 42. @Xebiconfr #Xebicon18 @clook0 Côté musique : le thème 42
  43. 43. @Xebiconfr #Xebicon18 @clook0 Côté musique : le thème 43 Hautbois
  44. 44. @Xebiconfr #Xebicon18 @clook0 Bravo ! 44
  45. 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
  46. 46. @Xebiconfr #Xebicon18 @clook0 Autres similarités et différences 46
  47. 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. 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. 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. 50. @Xebiconfr #Xebicon18 @clook0 Scaling horizontal 50 => augmenter le nombre de conteneurs conteneurs musique => augmenter le nombre d’instruments frontend
  51. 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. 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. 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.
  54. 54. @Xebiconfr #Xebicon18 @clook0 Le rôle du chef d’orchestre 54
  55. 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 :
  56. 56. @Xebiconfr #Xebicon18 @clook0 Automatisation ? 56 conteneurs musique ● orchestrateur = humain ● applique une méthode ● orchestrateur = outil, logiciel ● automatique
  57. 57. @Xebiconfr #Xebicon18 @clook0 Merci ! 57 Questions ?
  58. 58. @Xebiconfr #Xebicon18 @clook0 Merci à eux ! 58 Anne et la team #marketing Horgix Jean-Louis Ivan mon épouse Flavien la régie

×