Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Unikernels: How we got here and where we're going

Amir
April 28, 2016

Unikernels: How we got here and where we're going

Talk presented at CraftConf 2016.
See amirchaudhry.com/craftconf2016 for details.

Amir

April 28, 2016
Tweet

More Decks by Amir

Other Decks in Technology

Transcript

  1. Unikernels … on behalf of many others! CraftConf April 2016

    @amirmc How we got here and where we're going Amir Chaudhry
  2. …is an application … … on top of an Operating

    System. Software today… @amirmc
  3. Complexity is the enemy… More pieces -> tricky config Duplication

    -> inefficiency Large sizes -> long boot times More stuff -> larger attack surface @amirmc
  4. BUILD Developer Workflows SHIP Registry Services RUN Management Docker Toolbox

    Docker Trusted Registry Docker Universal Control Plane Docker Cloud Docker Engine Ecosystem Plugins and Integrations Docker Containers as a Service Platform
  5. An extreme view? Disentangle applications from the OS Break up

    OS functionality into modular components Link only the system functionality your app needs Target alternative platforms from a single codebase @amirmc
  6. An extreme view? Disentangle applications from the OS Break up

    OS functionality into modular components Link only the system functionality your app needs Target alternative platforms from a single codebase Unikernels! @amirmc
  7. The Rise of the Unikernel Unikernels are specialised single address

    space machine images built from a modular stack adding system libraries and configuration to application code Every application is compiled into its own specialised OS, targeted for the cloud or embedded devices https://en.wikipedia.org/wiki/Unikernel @amirmc
  8. Continuum Disentangle applications from the OS Break up OS functionality

    into modular components Link only the system functionality your app needs Target alternative platforms from a single codebase @amirmc
  9. • LING • MirageOS • OSv • Rumprun • runtime.js

    The Rise of the Unikernel • ClickOS • Clive • Drawbridge • HaLVM • IncludeOS @amirmc
  10. Puts the ‘micro’ in microservice! 8.2MB
 Unikernel 102 kloc 2560


    kloc ~200MB
 Full OS Contains everything
 No extra stuff! Much smaller attack surface
  11. 8.2MB
 Unikernel 102 kloc 2560
 kloc ~200MB
 Full OS Contains

    everything
 No extra stuff! Much smaller attack surface Puts the ‘micro’ in microservice!
  12. Unikernel Recap • Highly specialised • Continuum with containers •

    Robust deployments • Everything’s a library! @amirmc
  13. Why I care MirageOS (OS/application) Irmin (Storage/Sync) Signpost (Identity/Connectivity) OCaml

    (Safety/Modularity) Mail Contacts Calendar @amirmc This is a long-term side project :)