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.
9. @xebiconfr #xebiconfr
La stack aujourd’hui
9
Linux User Processes
Linux Kernel
Virtual HW Drivers
Hypervisor
Hardware Driver
10. @xebiconfr #xebiconfr
La stack aujourd’hui
10
Virtual HW Drivers
Hypervisor
Hardware Driver
Shared Libraries
Docker Runtime
Linux User Processes
Linux Kernel
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. @xebiconfr #xebiconfr
Avec quel objectif ?
12
● Faire tourner
○ une seule application
○ sur un serveur
○ et un seul user (OS)
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
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. @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. @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
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. @xebiconfr #xebiconfr
Fonctionnement high level
28
Application
Language Runtime
OS User Processes
OS Kernel
Virtual HW Drivers
Hypervisor
Hardware Driver
Shared Libraries
Docker Runtime
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. @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
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. @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