unikernels at polyconf!

Post on 14-Aug-2015

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Unikernels!

… on behalf of a merry crew: Anil Madhavapeddy, Thomas Gazagnaire, David Scott, Thomas Leonard, Richard Mortier, Magnus Skjegstad, David Sheets, Balraj Singh, Jon Crowcroft, Mindy Preston,

and many others!

PolyConfJuly 2015

@amirmc

Amir Chaudhry

Overview

Unikernels

Intro

Why I care

Deployments / Other work

• What they are

• Why they matter

• Example scenario (static websites)

Unikernels

@amirmc

Overview

PM in OCaml Labs (I herd cats)

Community for MirageOS (moar cats)

I like systems stuff!

Background: Physicist, Neuroscientist, CompSci (ish), Startups, BigCo.

@amirmc

Software today…

…is an application …

@amirmc

Software today…

…is an application …

… on top of an Operating System.

@amirmc

Software today…

… is built locally…

@amirmc

Software today…

… is built locally… … but deployed remotely.

@amirmc

Software today…… needing more tools.

@amirmc

Software today…

…is complex!

Even though most apps are single-purpose

@amirmc

Complexity is the enemy…

More layers -> tricky configDuplication -> inefficiencyLarge sizes -> long boot timesMore stuff -> larger attack surface

@amirmc

Why build for clouds as we do for desktops?

Can we do better?

Can we do better?

Disentangle applications from the OS

Break up OS functionality into modular libraries

Link only the system functionality your app needs

Target alternative platforms from a single codebase

@amirmc

The Rise of the Unikernel

Unikernels are specialised virtual machine images built from a modular stack adding system libraries and configuration to application code

Every application is compiled into its own specialised OS that runs on the cloud or embedded devices

MirageOS

@amirmc

MirageOS@amirmc

MirageOS

unikernel}

@amirmc

MirageOS

unikernel}

Familiar development cycle

Broad deployment scenarios

@amirmc

MirageOSUnix

Develop logic MirageOS System Libs

@amirmc

MirageOSXen

Specialise for deploy… … to multiple environments

@amirmc

So what?

Example: Static websites(though applicable to any application)

@amirmc

SMALL!@amirmc

8.2MB102 kloc 2560 kloc

~200MB

No extra stuff!

@amirmc

@amirmc

Pluto

just considering areas of the circles :)

Easy deployment

Develop DeployTest

Heroku for Unikernels

Walkthrough

@amirmc

…in ~100 lines of code

Walkthrough

Heroku for Unikernels

General workflow

@amirmc

…in ~100 lines of code

Develop DeployTest

Deployments@amirmc

Trade-off (for now)@amirmc

Why I care@amirmc

Empower individualsDistributed personal cloudsResilient, scalable systems

Cloud Feudal Computing

@amirmc

MirageOS (OS/application)

Irmin (Storage/Sync)

Signpost (Identity/Connectivity)

OCaml (Safety/Modularity)

Mail

Contacts

Calendar

Contribute!@amirmc

https://mirage.iohttp://nymote.orghttp://ocaml.org

top related