forked from reseau-loops/reseau-loops.github.com
-
Notifications
You must be signed in to change notification settings - Fork 0
/
journee_2015_12.html
139 lines (136 loc) · 6.42 KB
/
journee_2015_12.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
---
layout: default
no_sidebar: true
title: 17 décembre 2015 - Journée LoOPS
navbar-events: active
---
<p>
La huitième journée de rencontres et d'échanges organisée
par le réseau LoOPS aura lieu le <strong>jeudi 17 décembre 2015</strong> au
<a href="http://proto204.co">Proto 204</a>. Elle aura pour thème:
</p>
<center>
<p><strong> Docker et Unikernel sont dans un bateau...</strong></p>
</center>
<!--<p>
<i>
Journée LoOPS réalisée en partenariat avec les services valorisation du CNRS, d'inria, de CentraleSupélec
et d'UPSud ainsi qu'en lien avec le réseau national de développeurs <a href="http://devlog.cnrs.fr/">DevLOG</a>.
</i>
</p>-->
<p>
Le comité d'animation de LoOPS remercie le Proto204 pour son accueil :-)
</p>
<h2>Programme</h2>
<ul>
<li><strong>09h30:</strong> Accueil et présentation de la journée</li>
<li><strong>09h45:</strong> <a href="#docker">Introduction à Docker</a>
[Présentation: <a href="http://talks.godoc.org/github.com/sbinet/talks/2015/20151217-loops-docker/talk.slide">en ligne</a>,
<a href="presentations/2015-12-17-sebastien-binet-docker.pdf">PDF</a>]</li>
<li><strong>10h45:</strong> Pause</li>
<li><strong>11h00:</strong> <a href="#unikernel">Introduction à Unikernel</a>
[Présentation: <a href="presentations/2015-12-17-thomas-gazagnaire-unikernels.pdf">PDF</a>]</li>
<li><strong>12h00:</strong> Repas</li>
<li><strong>14h00:</strong> Ateliers en parallèle:
<ul>
<li><a href="#atelier-docker">Atelier Docker</a>
[<a href="https://github.com/sbinet/loops-20151217-tp">Fichiers du TP</a>],</li>
<li><a href="#atelier-unikernel">Atelier Unikernel</a>
[<a href="https://github.com/samoht/loops-mirage/">Fichiers du TP</a>]</li>
</ul>
</li>
<li><strong>16h30:</strong> Bilan de la journée - Sondage</li>
</ul>
<!--
<h2>Inscriptions</h2>
<p>
L'inscription est <b>gratuite mais obligatoire</b> pour nous permettre
de préparer au mieux cette journée. Veillez également à obtenir un ordre de mission
(éventuellement sans frais) auprès de votre unité ou de votre tutelle.
</p>
<p>
Merci de vous inscrire via
<a href="https://indico.lal.in2p3.fr/event/3007/registration/register#/register">ce formulaire</a>.
</p>
-->
<h2>Détail des interventions</h2>
<h3><a name="docker"></a>Introduction à Docker (Sébastien Binet, CNRS/IN2P3/LPC)</h3>
<p>
<a href="https://www.docker.io/">Docker</a>
n'a rien inventé, mais "juste" réutilisé des technologies
linux-centric de manière astucieuse et les a judicieusement empaquetées.
</p>
<p>
Docker a ainsi popularisé l'utilisation des conteneurs et developpé un
écosystème d'outils s'intégrant dans (et facilitant) le workflow des
développeurs et des administrateurs systèmes.
Nous verrons rapidement les origines du projet Docker et les
technologies sur lesquelles il repose, puis nous détaillerons les
différents composants de l'écosystème Docker.
</p>
<h3><a name="unikernel"></a>Introduction à Unikernel (Thomas Gazagnaire, Unikernel Systems)</h3>
<p>
Le déploiement d'applications modernes dans le "cloud" repose sur l'utilisation de couches d'abstractions
de plus en plus complexes afin d'être compatible avec le plus grand nombre possible d'applications existantes:
hardware, <a href="https://fr.wikipedia.org/wiki/Hyperviseur">hyperviseur</a> (Xen), système d'exploitation
multi-utilisateurs, machine virtuelle, language runtime, paramètres de configuration, ... Chaque couche
apportant ses propres abstractions, son propre cycle de mise à jour et de maintenance.
Les unikernels proposent de revisiter cette approche en compilant directement le code de
l'application, ses dépendances systèmes et sa configuration en une image unique, exécutée
directement sur l'hyperviseur ou le hardware. Cet exposé aborde les concepts, avantages et
inconvénients des unikernels et présente les différents projets existants et leur relations:
en particulier <a href="https://mirage.io/">MirageOS</a> et <a href="http://rumpkernel.org/">Rump Kernels</a>.
J'essaierai de vous convaincre que les unikernels représentent <a href="https://twitter.com/sjfloat/status/658588545662255104">le futur</a>
des applications déployées dans le "cloud".
</p>
<h3><a name="atelier-docker"></a>Création et utilisation de conteneurs avec Docker (Sébastien Binet)</h3>
<p>
Au programme de l'atelier:
</p>
<ul>
<li>images et conteneurs,</li>
<li>personnaliser et créer de nouvelles images,</li>
<li>syntaxe des Dockerfiles pour la reproductibilité de la construction d'images,</li>
<li>orchestration de conteneurs et applications multi-conteneurs,</li>
<li>utilisation pour le développement,</li>
<li>intégration dans un système d'intégration continue (CI),</li>
<li>conteneurs utilisant la pile graphique.</li>
</ul>
<p>
Les participants à l'atelier doivent venir avec leur ordinateur portable sous
Linux ou Darwin 64b
(les utilisateurs de Windows sont invités à créer une machine virtuelle pour
avoir un Linux) avec:
</p>
<ul>
<li><a href="https://docs.docker.com/installation/">Docker</a>
(le TP a été testé avec docker-1.8.3),</li>
<li>le <a href="https://golang.org/doc/install">SDK de go-1.5.x</a> (aucune réelle
connaissance du langage de programmation Go n'est nécessaire pour le
TP, mais il faut bien un programme à "dockerizer" et manipuler).</li>
</ul>
<p>
Pour s'assurer que tout fonctionne correctement avant d'arriver sur place:
</p>
<pre><code>## testing whether docker was correctly installed
$ docker pull busybox
[...]
$ docker run busybox echo "Hello World"
Hello World
## testing whether go was correctly installed
$ cat > hello.go
package main
func main() { println("hello go") }
$ go run ./hello.go
hello go</code></pre>
<h3><a name="atelier-unikernel"></a>Développement et compilation d'un routeur programmable pour exécution sur Xen</h3>
<p>
Le but de cet atelier est de vous présenter <a href="https://mirage.io/">MirageOS</a> et de vous montrer
comment l'utiliser pour écrire du code du haut niveau en <a href="https://ocaml.org/">OCaml</a> qui peut être déployé sans système
d'exploitation dans le "cloud" ou sur du material embarqué. Au cours de cet atelier, vous serez amené
à écrire en OCaml une petite application réseau programmable.
</p>
<p>Les pré-requis sont: une machine Unix ou OSX avec OCaml et <a href="https://opam.ocaml.org/">opam</a>
installés, une <a href="https://www.france-universite-numerique-mooc.fr/courses/parisdiderot/56002/session01/about">connaissance basique d'OCaml</a>
et une familiarité avec des concepts réseaux et/ou systèmes.
</p>