XebiCon'16 : Les recettes de cuisine entrepreneuriales par Luc Legardeur, Président de Xebia
Unikernel Xebicon 2016
-
Upload
jean-baptiste-claramonte -
Category
Technology
-
view
78 -
download
3
Transcript of Unikernel Xebicon 2016
@xebiconfr #xebiconfr
Introduction à
Unikernel Jean-Baptiste Claramonte
&Tomas Rodriguez
@xebiconfr #xebiconfr
Tomas Rodriguez
2
@xebiconfr #xebiconfr
Jean-Baptiste Claramonte
3
@xebiconfr #xebiconfr
Agenda
● Les motivations
● Unikernel : qu’est-ce que c’est ?
● Qu’est-ce que ça change ?
● L’offre
● Démo
● Conclusion
4
@xebiconfr #xebiconfr
Les motivations pour Unikernel
1
5
@xebiconfr #xebiconfr
La stack aujourd’hui
6
Hardware Driver
@xebiconfr #xebiconfr
La stack aujourd’hui
7
HypervisorHardware Driver
@xebiconfr #xebiconfr
La stack aujourd’hui
8
Virtual HW DriversHypervisor
Hardware Driver
@xebiconfr #xebiconfr
La stack aujourd’hui
9
Linux User ProcessesLinux Kernel
Virtual HW DriversHypervisor
Hardware Driver
@xebiconfr #xebiconfr
La stack aujourd’hui
10
Virtual HW DriversHypervisor
Hardware Driver
Shared LibrariesDocker Runtime
Linux User ProcessesLinux Kernel
@xebiconfr #xebiconfr
La stack aujourd’hui
11
ApplicationLanguage Runtime
Virtual HW DriversHypervisor
Hardware Driver
Shared LibrariesDocker Runtime
Linux User ProcessesLinux Kernel
@xebiconfr #xebiconfr
Avec quel objectif ?
12
● Faire tourner ○ une seule application○ sur un serveur○ et un seul user (OS)
@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
@xebiconfr #xebiconfr
Linux sait tout faire !
● Linux fonctionne partout !
● On peut tout faire tourner sur linux !
14
@xebiconfr #xebiconfr
Cela a un coût
15
● Small App: 10k
● Medium/Large: 100k
● Huge App: 1M
@xebiconfr #xebiconfr
Cela a un coût
16
Small App: 10k
Medium/Large: 100k
Huge App: 1M
@xebiconfr #xebiconfr
Cela a un coût
17
Small App: 10k
Medium/Large: 100k
Huge App: 1M
Le kernel linux en fait 22M !
@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
@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
@xebiconfr #xebiconfr
Quelle alternative ?
● Unikernel …
20
@xebiconfr #xebiconfr
Unikernel : qu’est ce que c’est ?
2
21
@xebiconfr #xebiconfr
Fonctionnement high level
22
Kernel
libc libstd++ libgc
libgmp libz libtlc
gtk iconv
OpenGL
Application
@xebiconfr #xebiconfr
Fonctionnement high level
23
Kernel
libc libstd++ libgc
libgmp libz libtlc
gtk iconv
OpenGL
Application
@xebiconfr #xebiconfr
Fonctionnement high level
24
Application
@xebiconfr #xebiconfr
Fonctionnement high level
25
Application
@xebiconfr #xebiconfr
Fonctionnement high level
26
Application Unikernel
@xebiconfr #xebiconfr
Fonctionnement high level
27
ApplicationLanguage Runtime
OS User ProcessesOS Kernel
Virtual HW DriversHypervisor
Hardware Driver
Shared LibrariesDocker Runtime
@xebiconfr #xebiconfr
Fonctionnement high level
28
ApplicationLanguage Runtime
OS User ProcessesOS Kernel
Virtual HW DriversHypervisor
Hardware Driver
Shared LibrariesDocker Runtime
@xebiconfr #xebiconfr
Fonctionnement high level
29
ApplicationLanguage Runtime
Unikernel
Virtual HW DriversHypervisor
Hardware Driver
@xebiconfr #xebiconfr
Fonctionnement high level
30
ApplicationLanguage Runtime
Unikernel
Virtual HW DriversHypervisor
Hardware Driver
@xebiconfr #xebiconfr
Qu’est ce que ça change ?
3
31
@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
AP
PLI
CA
TIO
NU
NIK
ER
NE
LR
UN
TIM
E
@xebiconfr #xebiconfr
Comment boot un Unikernel ?
33
Booter un Unikernel c’est tout simplement booter une image dans un hypervisor
@xebiconfr #xebiconfr
Comment boot un Unikernel ?
34
@xebiconfr #xebiconfr
Quelles conséquences
35
● Un seul processus
@xebiconfr #xebiconfr
Quelles conséquences
36
● Un seul processus
Pas de “fork”
@xebiconfr #xebiconfr
Quelles conséquences
37
● Un seul processus
Pas de “fork”
Pas de “context switching”
@xebiconfr #xebiconfr
Quelles conséquences
38
● Un seul espace mémoire● Pas de mémoire virtuelle
@xebiconfr #xebiconfr
Quelles conséquences
39
● Un seul espace mémoire● Pas de mémoire virtuelle
Gains en perf
@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
@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
@xebiconfr #xebiconfr
Quelles conséquences
42
● Il n’y a plus de cloisonnement entre les espaces kernel et utilisateur
@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
@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
@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
@xebiconfr #xebiconfr
kernel/user space : exécution avec un linux
46
@xebiconfr #xebiconfr
Pas de kernel/user space avec Unikernel
47
Unikernel
@xebiconfr #xebiconfr
L’offre
4
48
@xebiconfr #xebiconfr
Unikernel.org
49
● MirageOS● OSv● Rumprun● runtime.js● UniK
@xebiconfr #xebiconfr
De nombreuses solutions
50
● ClickOS● Clive● Drawbridge● HaLVM● IncludeOS● LING
● MirageOS● OSv● Rumprun● runtime.js● UniK
@xebiconfr #xebiconfr
Comparaison de l’offre
51
@xebiconfr #xebiconfr
Comparaison de l’offre
52
@xebiconfr #xebiconfr
Unik
53
@xebiconfr #xebiconfr
Unik
54
● Le “docker” de l’Unikernel
@xebiconfr #xebiconfr
Une CLI à la docker
55
@xebiconfr #xebiconfr
Un Hub à la Docker Hub
56
@xebiconfr #xebiconfr
Un intermédiaire avec différents Unikernel
57
@xebiconfr #xebiconfr
Excellent candidat pour une démo !
58
@xebiconfr #xebiconfr
Démo time !
5
59
@xebiconfr #xebiconfr
Démo time !
60
● Démo d’une application Java avec l’Unikernel Unik sur VirtualBox
@xebiconfr #xebiconfr
Démo time !
61
Étapes :
● Installation de Unik
@xebiconfr #xebiconfr
Démo time !
62
Étapes:
● Installation de Unik
● Création d’une image
@xebiconfr #xebiconfr
Démo time !
63
Étapes:
● Installation de Unik
● Création d’une image
● Création d’une instance à partir de l’image
@xebiconfr #xebiconfr
Conclusion
6
64
@xebiconfr #xebiconfr 65
Pas d’image hub unikernel “à la” docker registry
@xebiconfr #xebiconfr 66
Cloud Public on paye à l’utilisation de l’instance
@xebiconfr #xebiconfr 67
Complexité de certaines solutions
@xebiconfr #xebiconfr 68
Persistance des données
@xebiconfr #xebiconfr 69
Le plus : les performances et la sécurité annoncées
@xebiconfr #xebiconfr 70
Unikernel n’est pas l’alter ego de Docker
@xebiconfr #xebiconfr 71
Unikernel pour l’IoT
@xebiconfr #xebiconfr 72
À suivre, mais tout ça n’est pas sec pour l’instant !