unikernels at polyconf!

38
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! PolyConf July 2015 @amirmc Amir Chaudhry

Upload: amir-chaudhry

Post on 14-Aug-2015

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Unikernels at Polyconf!

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

Page 2: Unikernels at Polyconf!

Overview

Unikernels

Intro

Why I care

Deployments / Other work

• What they are

• Why they matter

• Example scenario (static websites)

Unikernels

@amirmc

Page 3: Unikernels at Polyconf!

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

Page 4: Unikernels at Polyconf!

Software today…

…is an application …

@amirmc

Page 5: Unikernels at Polyconf!

Software today…

…is an application …

… on top of an Operating System.

@amirmc

Page 6: Unikernels at Polyconf!

Software today…

… is built locally…

@amirmc

Page 7: Unikernels at Polyconf!

Software today…

… is built locally… … but deployed remotely.

@amirmc

Page 8: Unikernels at Polyconf!

Software today…… needing more tools.

@amirmc

Page 9: Unikernels at Polyconf!

Software today…

…is complex!

Even though most apps are single-purpose

@amirmc

Page 10: Unikernels at Polyconf!

Complexity is the enemy…

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

@amirmc

Page 11: Unikernels at Polyconf!

Why build for clouds as we do for desktops?

Can we do better?

Page 12: Unikernels at Polyconf!

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

Page 13: Unikernels at Polyconf!

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

Page 14: Unikernels at Polyconf!

MirageOS@amirmc

Page 15: Unikernels at Polyconf!

MirageOS

unikernel}

@amirmc

Page 16: Unikernels at Polyconf!

MirageOS

unikernel}

Familiar development cycle

Broad deployment scenarios

@amirmc

Page 17: Unikernels at Polyconf!

MirageOSUnix

Develop logic MirageOS System Libs

@amirmc

Page 18: Unikernels at Polyconf!

MirageOSXen

Specialise for deploy… … to multiple environments

@amirmc

Page 19: Unikernels at Polyconf!

So what?

Page 20: Unikernels at Polyconf!

Example: Static websites(though applicable to any application)

Page 21: Unikernels at Polyconf!
Page 22: Unikernels at Polyconf!

@amirmc

Page 23: Unikernels at Polyconf!

SMALL!@amirmc

8.2MB102 kloc 2560 kloc

~200MB

No extra stuff!

Page 24: Unikernels at Polyconf!

@amirmc

Page 25: Unikernels at Polyconf!

@amirmc

Pluto

just considering areas of the circles :)

Page 26: Unikernels at Polyconf!

Easy deployment

Page 27: Unikernels at Polyconf!

Develop DeployTest

Heroku for Unikernels

Walkthrough

@amirmc

…in ~100 lines of code

Page 28: Unikernels at Polyconf!

Walkthrough

Page 29: Unikernels at Polyconf!

Heroku for Unikernels

General workflow

@amirmc

…in ~100 lines of code

Develop DeployTest

Page 30: Unikernels at Polyconf!

Deployments@amirmc

Page 31: Unikernels at Polyconf!

Trade-off (for now)@amirmc

Page 32: Unikernels at Polyconf!

Why I care@amirmc

Empower individualsDistributed personal cloudsResilient, scalable systems

Page 33: Unikernels at Polyconf!
Page 34: Unikernels at Polyconf!

Cloud Feudal Computing

Page 35: Unikernels at Polyconf!

@amirmc

MirageOS (OS/application)

Irmin (Storage/Sync)

Signpost (Identity/Connectivity)

OCaml (Safety/Modularity)

Mail

Contacts

Calendar

Page 36: Unikernels at Polyconf!
Page 37: Unikernels at Polyconf!
Page 38: Unikernels at Polyconf!

Contribute!@amirmc

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