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

Xebicon'16 : Introduction à Unikernel. Par Jean-Baptiste Claramonte et Tomas Rodriguez, Développeurs chez Xebia

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité

Consultez-les par la suite

1 sur 72 Publicité

Xebicon'16 : Introduction à Unikernel. Par Jean-Baptiste Claramonte et Tomas Rodriguez, Développeurs chez Xebia

Télécharger pour lire hors ligne

Après la machine virtuelle et le container, Unikernel est arrivé ! Cet OS "light" qui n'embarque que les composants essentiels à l'application, rendrait-il déjà les conteneurs has been ? Quelles sont les bases de cette technologie, et qu'apporte t'elle vraiment ? Cette présentation sera aussi l'occasion de déployer ensemble une application packagée au format Unikernel sur AWS et GCE.

Après la machine virtuelle et le container, Unikernel est arrivé ! Cet OS "light" qui n'embarque que les composants essentiels à l'application, rendrait-il déjà les conteneurs has been ? Quelles sont les bases de cette technologie, et qu'apporte t'elle vraiment ? Cette présentation sera aussi l'occasion de déployer ensemble une application packagée au format Unikernel sur AWS et GCE.

Publicité
Publicité

Plus De Contenu Connexe

Similaire à Xebicon'16 : Introduction à Unikernel. Par Jean-Baptiste Claramonte et Tomas Rodriguez, Développeurs chez Xebia (20)

Publicité

Plus par Publicis Sapient Engineering (20)

Plus récents (20)

Publicité

Xebicon'16 : Introduction à Unikernel. Par Jean-Baptiste Claramonte et Tomas Rodriguez, Développeurs chez Xebia

  1. 1. @xebiconfr #xebiconfr Introduction à Unikernel Jean-Baptiste Claramonte & Tomas Rodriguez
  2. 2. @xebiconfr #xebiconfr Tomas Rodriguez 2
  3. 3. @xebiconfr #xebiconfr Jean-Baptiste Claramonte 3
  4. 4. @xebiconfr #xebiconfr Agenda ● Les motivations ● Unikernel : qu’est-ce que c’est ? ● Qu’est-ce que ça change ? ● L’offre ● Démo ● Conclusion 4
  5. 5. @xebiconfr #xebiconfr Les motivations pour Unikernel 1 5
  6. 6. @xebiconfr #xebiconfr La stack aujourd’hui 6 Hardware Driver
  7. 7. @xebiconfr #xebiconfr La stack aujourd’hui 7 Hypervisor Hardware Driver
  8. 8. @xebiconfr #xebiconfr La stack aujourd’hui 8 Virtual HW Drivers Hypervisor Hardware Driver
  9. 9. @xebiconfr #xebiconfr La stack aujourd’hui 9 Linux User Processes Linux Kernel Virtual HW Drivers Hypervisor Hardware Driver
  10. 10. @xebiconfr #xebiconfr La stack aujourd’hui 10 Virtual HW Drivers Hypervisor Hardware Driver Shared Libraries Docker Runtime Linux User Processes Linux Kernel
  11. 11. @xebiconfr #xebiconfr La stack aujourd’hui 11 Application Language Runtime Virtual HW Drivers Hypervisor Hardware Driver Shared Libraries Docker Runtime Linux User Processes Linux Kernel
  12. 12. @xebiconfr #xebiconfr Avec quel objectif ? 12 ● Faire tourner ○ une seule application ○ sur un serveur ○ et un seul user (OS)
  13. 13. @xebiconfr #xebiconfr Sécurité apportée par le kernel linux ● Les utilisateurs sont sécurisés les uns des autres ● Les applications sont sécurisées les unes des autres ● Les applications sont sécurisées des utilisateurs 13
  14. 14. @xebiconfr #xebiconfr Linux sait tout faire ! ● Linux fonctionne partout ! ● On peut tout faire tourner sur linux ! 14
  15. 15. @xebiconfr #xebiconfr Cela a un coût 15 ● Small App: 10k ● Medium/Large: 100k ● Huge App: 1M
  16. 16. @xebiconfr #xebiconfr Cela a un coût 16 Small App: 10k Medium/Large: 100k Huge App: 1M
  17. 17. @xebiconfr #xebiconfr Cela a un coût 17 Small App: 10k Medium/Large: 100k Huge App: 1M Le kernel linux en fait 22M !
  18. 18. @xebiconfr #xebiconfr Bilan du kernel linux ● Système de permissions complexe ● Le kernel inclut des drivers inutiles ● Difficile de maîtriser tout ce qu’un gestionnaire de paquets installe ● Des solutions comme CoreOS optimisent l’OS pas le kernel 18
  19. 19. @xebiconfr #xebiconfr Côté sécurité ● “Surface d’attaque” très large (on estime en moyenne 20 à 30 erreurs pour 1000 lignes de code) ● Linux est devenu une cible privilégiée car devenu très populaire sur les serveurs et les systèmes mobiles 19
  20. 20. @xebiconfr #xebiconfr Quelle alternative ? ● Unikernel … 20
  21. 21. @xebiconfr #xebiconfr Unikernel : qu’est ce que c’est ? 2 21
  22. 22. @xebiconfr #xebiconfr Fonctionnement high level 22 Kernel libc libstd++ libgc libgmp libz libtlc gtk iconv OpenGL Application
  23. 23. @xebiconfr #xebiconfr Fonctionnement high level 23 Kernel libc libstd++ libgc libgmp libz libtlc gtk iconv OpenGL Application
  24. 24. @xebiconfr #xebiconfr Fonctionnement high level 24 Application
  25. 25. @xebiconfr #xebiconfr Fonctionnement high level 25 Application
  26. 26. @xebiconfr #xebiconfr Fonctionnement high level 26 Application Unikernel
  27. 27. @xebiconfr #xebiconfr Fonctionnement high level 27 Application Language Runtime OS User Processes OS Kernel Virtual HW Drivers Hypervisor Hardware Driver Shared Libraries Docker Runtime
  28. 28. @xebiconfr #xebiconfr Fonctionnement high level 28 Application Language Runtime OS User Processes OS Kernel Virtual HW Drivers Hypervisor Hardware Driver Shared Libraries Docker Runtime
  29. 29. @xebiconfr #xebiconfr Fonctionnement high level 29 Application Language Runtime Unikernel Virtual HW Drivers Hypervisor Hardware Driver
  30. 30. @xebiconfr #xebiconfr Fonctionnement high level 30 Application Language Runtime Unikernel Virtual HW Drivers Hypervisor Hardware Driver
  31. 31. @xebiconfr #xebiconfr Qu’est ce que ça change ? 3 31
  32. 32. @xebiconfr #xebiconfr Processus de construction d’une image Unikernel 32 App Binary App Config App Deps Lang runtime Virt, HW Drivers Packaging Tool Image Unikernel APPLICATION UNIKERNEL RUNTIME
  33. 33. @xebiconfr #xebiconfr Comment boot un Unikernel ? 33 Booter un Unikernel c’est tout simplement booter une image dans un hypervisor
  34. 34. @xebiconfr #xebiconfr Comment boot un Unikernel ? 34
  35. 35. @xebiconfr #xebiconfr Quelles conséquences 35 ● Un seul processus
  36. 36. @xebiconfr #xebiconfr Quelles conséquences 36 ● Un seul processus Pas de “fork”
  37. 37. @xebiconfr #xebiconfr Quelles conséquences 37 ● Un seul processus Pas de “fork” Pas de “context switching”
  38. 38. @xebiconfr #xebiconfr Quelles conséquences 38 ● Un seul espace mémoire ● Pas de mémoire virtuelle
  39. 39. @xebiconfr #xebiconfr Quelles conséquences 39 ● Un seul espace mémoire ● Pas de mémoire virtuelle Gains en perf
  40. 40. @xebiconfr #xebiconfr Quelles conséquences 40 ● Un seul espace mémoire ● Pas de mémoire virtuelle Gains en perf Une Application ne peut utiliser plus de mémoire physique que ce qui est disponible
  41. 41. @xebiconfr #xebiconfr Quelles conséquences 41 ● Un seul espace mémoire ● Pas de mémoire virtuelle Gains en perf Une Application ne peut utiliser plus de mémoire physique que ce qui est disponible Pas de mmap
  42. 42. @xebiconfr #xebiconfr Quelles conséquences 42 ● Il n’y a plus de cloisonnement entre les espaces kernel et utilisateur
  43. 43. @xebiconfr #xebiconfr Quelles conséquences 43 ● Il n’y a plus de cloisonnement entre les espaces kernel et utilisateur Votre application s’exécute dans le kernel space
  44. 44. @xebiconfr #xebiconfr Quelles conséquences 44 ● Il n’y a plus de cloisonnement entre les espaces kernel et utilisateur Votre application s’exécute dans le kernel space Gain en performance pour les I/O
  45. 45. @xebiconfr #xebiconfr Quelles conséquences 45 ● Il n’y a plus de cloisonnement entre les espaces kernel et utilisateur Votre application s’exécute dans le kernel space Gain en performance pour les I/O Pas de protection de la mémoire entre kernel/app
  46. 46. @xebiconfr #xebiconfr kernel/user space : exécution avec un linux 46
  47. 47. @xebiconfr #xebiconfr Pas de kernel/user space avec Unikernel 47 Unikernel
  48. 48. @xebiconfr #xebiconfr L’offre 4 48
  49. 49. @xebiconfr #xebiconfr Unikernel.org 49 ● MirageOS ● OSv ● Rumprun ● runtime.js ● UniK
  50. 50. @xebiconfr #xebiconfr De nombreuses solutions 50 ● ClickOS ● Clive ● Drawbridge ● HaLVM ● IncludeOS ● LING ● MirageOS ● OSv ● Rumprun ● runtime.js ● UniK
  51. 51. @xebiconfr #xebiconfr Comparaison de l’offre 51
  52. 52. @xebiconfr #xebiconfr Comparaison de l’offre 52
  53. 53. @xebiconfr #xebiconfr Unik 53
  54. 54. @xebiconfr #xebiconfr Unik 54 ● Le “docker” de l’Unikernel
  55. 55. @xebiconfr #xebiconfr Une CLI à la docker 55
  56. 56. @xebiconfr #xebiconfr Un Hub à la Docker Hub 56
  57. 57. @xebiconfr #xebiconfr Un intermédiaire avec différents Unikernel 57
  58. 58. @xebiconfr #xebiconfr Excellent candidat pour une démo ! 58
  59. 59. @xebiconfr #xebiconfr Démo time ! 5 59
  60. 60. @xebiconfr #xebiconfr Démo time ! 60 ● Démo d’une application Java avec l’Unikernel Unik sur VirtualBox
  61. 61. @xebiconfr #xebiconfr Démo time ! 61 Étapes : ● Installation de Unik
  62. 62. @xebiconfr #xebiconfr Démo time ! 62 Étapes: ● Installation de Unik ● Création d’une image
  63. 63. @xebiconfr #xebiconfr Démo time ! 63 Étapes: ● Installation de Unik ● Création d’une image ● Création d’une instance à partir de l’image
  64. 64. @xebiconfr #xebiconfr Conclusion 6 64
  65. 65. @xebiconfr #xebiconfr 65 Pas d’image hub unikernel “à la” docker registry
  66. 66. @xebiconfr #xebiconfr 66 Cloud Public on paye à l’utilisation de l’instance
  67. 67. @xebiconfr #xebiconfr 67 Complexité de certaines solutions
  68. 68. @xebiconfr #xebiconfr 68 Persistance des données
  69. 69. @xebiconfr #xebiconfr 69 Le plus : les performances et la sécurité annoncées
  70. 70. @xebiconfr #xebiconfr 70 Unikernel n’est pas l’alter ego de Docker
  71. 71. @xebiconfr #xebiconfr 71 Unikernel pour l’IoT
  72. 72. @xebiconfr #xebiconfr 72 À suivre, mais tout ça n’est pas sec pour l’instant !

×