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

Unikernels and the benefits of modularity

A93b8ed15efe8a33d4045befbed219c2?s=47 Amir
May 25, 2016

Unikernels and the benefits of modularity

Talk presented at GlueCon 2016 on Towel Day.
See amirchaudhry.com/gluecon2016 for details

A93b8ed15efe8a33d4045befbed219c2?s=128

Amir

May 25, 2016
Tweet

Transcript

  1. Unikernels and the benefits of modularity … on behalf of

    all the hoopy froods! GlueCon 25 May 2016 @amirmc Amir Chaudhry
  2. Unikernels and the benefits of modularity @amirmc amirchaudhry.com/gluecon2016

  3. About me @amirmc Work at Docker I have more hair

    on my face since this pic
  4. Software today… @amirmc

  5. …is an application … Software today… @amirmc

  6. …is an application … … on top of an Operating

    System. Software today… @amirmc
  7. Software today… @amirmc

  8. Software today… @amirmc

  9. Code you care about Code the OS insists you need

    @amirmc
  10. Code you care about Code the OS insists you need

    @amirmc
  11. Software today… … is built locally… @amirmc

  12. Software today… … is built locally… … but deployed remotely…

    @amirmc
  13. Software today… … is built locally… … but deployed remotely…

    @amirmc … very remotely.
  14. Software today… …is complex! Even though most apps
 are single-purpose

    @amirmc
  15. Complexity is the enemy… More pieces -> tricky config Duplication

    -> inefficiency Large sizes -> long boot times More stuff -> larger attack surface @amirmc
  16. None
  17. Things are getting easier

  18. 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
  19. 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
  20. 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
  21. Unikernels Model is “Just enough OS” for your specific app.

    https://en.wikipedia.org/wiki/Unikernel @amirmc Using a modular stack, every application is compiled into its own specialised OS, targeted for the cloud or embedded devices
  22. “Unikernels and Docker?”

  23. 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
  24. • LING • MirageOS • OSv • Rumprun • runtime.js

    • ClickOS • Clive • Drawbridge • HaLVM • IncludeOS @amirmc Unikernels
  25. Two broad approaches Consider legacy @amirmc Clean Slate Unikernels

  26. MirageOS

  27. MirageOS unikernel } @amirmc

  28. MirageOS @amirmc Target different environments

  29. MirageOS @amirmc

  30. unikernel } MirageOS Familiar development cycle Broad deployment scenarios @amirmc

  31. unikernel } MirageOS Familiar development cycle Broad deployment scenarios Target

    different environments Your usual tools @amirmc
  32. Demo:
 Build on a Mac
 Deploy to IoT @amirmc

  33. • Build and run an app in a Linux container

    • Retarget app for ARM backend • Deploy artefact onto an ARM device @amirmc
  34. Demo:
 2048 game

  35. Demo
 Guide 1 2 3 4

  36. • Built and ran an app in a Linux container!

    • Retargeted app for ARM backend! • Deployed artefact onto an ARM device! @amirmc
  37. Unikernel Recap • Highly specialised • Continuum with containers •

    Deploy to ARM devices • Everything’s a library! @amirmc
  38. Deployments

  39. Deployments

  40. Systems programming is difficult?

  41. … is just programming! Systems programming is difficult?

  42. unikernel.org Still early days!

  43. unikernel.org Still early days!

  44. Questions? Thanks for listening @amirmc