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

Adventures In Building Unikernel Clouds

B3860e5f7d69df921650d2263ea047fd?s=47 Ian Eyberg
February 04, 2017

Adventures In Building Unikernel Clouds

Unikernels are often touted as being the building blocks of next generation of cloud infrastructure. However, even the process of compiling and booting them remains daunting for the average developer let alone building out infrastructure for them to live on. In this talk we'll dive deep into the various layers of infrastructure one needs to understand in order to build out their own infrastructure for unikernels. What might seem simple at first quickly becomes difficult as one needs to cast aside preconceived notions of what an operating system and application are and how they might interact together. We'll approach everything from hypervisor orchestration to filesystems, networking and best practices for CI and testing. The attendee should be comfortable exploring unikernel cloud concepts by the end of the talk.

B3860e5f7d69df921650d2263ea047fd?s=128

Ian Eyberg

February 04, 2017
Tweet

Transcript

  1. Adventures in Building Unikernel Clouds

  2. what’s not covered

  3. not a high- level or evangelism talk

  4. let me google that for you

  5. nothing about IoT

  6. not about NFV

  7. compilation orchestration

  8. if you can’t find code they’ve written for unikernels online

  9. github.com/ deferpanic/ virgo By the end of the talk attendees

    should feel comfortable in writing tools to interact with unikernels like testing/ system administration/ volume manipulation and more.
  10. what is an operating system?

  11. None
  12. None
  13. what is an application?

  14. None
  15. None
  16. why is this important?

  17. http://a16z.com/2016/12/16/the-end-of-cloud-computing/

  18. so what makes unikernel clouds special?

  19. None
  20. None
  21. None
  22. L2 —> L7

  23. Hardware?

  24. None
  25. Programmatic Hypervisor Usage

  26. debugging networking volume manipulation higher level service orchestration why

  27. Just Use Qemu!

  28. dev test staging production automated repeatable fast painless

  29. hypervisors qemu/kvm virtualbox xhyve

  30. manageability

  31. higher level orchestration

  32. service discovery

  33. load balancing

  34. resource aware scheduling 4 cores 32G 4 cores 8G 2

    cores 8G 2 cores 8G 2 cores 16G 4 cores 8G 2 cores 8G host 1 host N
  35. deploying

  36. None
  37. fail over

  38. None
  39. multiboot or disk image

  40. egrep '(vmx|svm)' /proc/cpuinfo

  41. hypervisor situation on osx

  42. None
  43. gdb

  44. None
  45. None
  46. None
  47. networking

  48. http://downloads.sourceforge.net/ tuntaposx/tuntap_20150118.tar.gz sudo kextstat | grep tap tuntap

  49. pfctl nat on en0 from tap1:network to any -> (en0)

  50. ethernet vs wireless

  51. S S L

  52. DNS

  53. dnsmasq dns dhcp

  54. volumes

  55. filesystems

  56. Immutable

  57. Mutable TMP FILES DATABASE LOGS UPLOADS …

  58. Mounting FileSystems

  59. Single Volume

  60. Multiple Volumes Maybe interpreted language don’t have to rebuild base

    kernel each deploy? Maybe want to dynamically attach/ de-tach volumes for configuration?
  61. Base Volume

  62. Volume Copies persistence live migration …..

  63. e2fs hdiutil osx-fuse

  64. [~] $ mkfs

  65. logs

  66. STDOUT && STDERR

  67. Remote Syslog

  68. Block Device

  69. serial -serial file:/tmp/bobs.log

  70. None
  71. workflows

  72. configuration management

  73. None
  74. volume deploy workflow

  75. mount base volume

  76. None
  77. what will you build?