La huitième journée de rencontres et d'échanges organisée par le réseau LoOPS aura lieu le jeudi 17 décembre 2015 au Proto 204. Elle aura pour thème:
Docker et Unikernel sont dans un bateau...
Le comité d'animation de LoOPS remercie le Proto204 pour son accueil :-)
Docker n'a rien inventé, mais "juste" réutilisé des technologies linux-centric de manière astucieuse et les a judicieusement empaquetées.
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.
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, hyperviseur (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 MirageOS et Rump Kernels. J'essaierai de vous convaincre que les unikernels représentent le futur des applications déployées dans le "cloud".
Au programme de l'atelier:
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:
Pour s'assurer que tout fonctionne correctement avant d'arriver sur place:
## 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
Le but de cet atelier est de vous présenter MirageOS et de vous montrer comment l'utiliser pour écrire du code du haut niveau en OCaml 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.
Les pré-requis sont: une machine Unix ou OSX avec OCaml et opam installés, une connaissance basique d'OCaml et une familiarité avec des concepts réseaux et/ou systèmes.
blog comments powered by Disqus