Unikernels

Qui suis-je ?

Unikernels ?

Specialised Operating System designed for the cloud

But Why ? There is Docker

Fast to boot

Huge Community

Can handle complex topologies (w/ Compose)

 

Yeah but...

Huge attack surface

Big images

No system optimization

Need host machine

Not so simple to use

Docker Unikernel
Boot time Fast Fast
Community Huge 18 personnes (~)
Complex topologies Nice ! Hypervisor's job !
Attack surface Do me ! Minimal
Image sizes What is our mascot again ? < 70 Mb for Java8
Host Another machine Xen
Simple to use Medium  Easy
Performance Good Optimal

Use-cases

Network appliances

Performance critical applications (IO)

Hypervisor dependant infrastructures

Short lived/Sandbox environments

Micro-services ?

How ?

Clive (Go)

HaLVM (Haskell)

LING (Erlang)

MirageOS (OCaml)

OSv

How ?

base: cloudius/osv-openjdk8
cmdline: /java.so -jar /server.jar
build: mvn package
files:
  /server.jar: target/echo-1.0-SNAPSHOT-jar-with-dependencies.jar

STOP !

DEMO TIME

Deployment ?

QEmu

VirtualBox

VMWare

Google Compute Engine

Amazon

Merci !

https://medium.com/@darrenrush/after-docker-unikernels-and-immutable-infrastructure-93d5a91c849e

https://en.wikipedia.org/wiki/Unikernel

https://queue.acm.org/detail.cfm?id=2566628

https://www.linux.com/news/enterprise/cloud-computing/821243-unikernel-use-cases-containers

http://www.skjegstad.com/blog/2015/03/25/mirageos-vm-per-url-experiment/

Made with Slides.com