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

Go Unikernels

Go Unikernels

The first half challenges the audience with questions as to why unikernels have been cropping up lately and the second half covers Go unikernels.

B3860e5f7d69df921650d2263ea047fd?s=128

Ian Eyberg

May 18, 2016
Tweet

Transcript

  1. Go Unikernels

  2. None
  3. cross-compile existing applications down into small light-weight secure virtual machines

  4. single address space single process

  5. history

  6. None
  7. where does virtualization come from? IBM - 1960s

  8. lost in the wilderness

  9. 1999

  10. where do containers come from?

  11. bill joy/chroot - 1979

  12. freebsd jails Poul- Henning Kamp - 1996

  13. solaris - 2005

  14. lxc - 2008

  15. why did virtualization win?

  16. containers are not virtualization

  17. rationale

  18. None
  19. None
  20. IT Systems Administrator Devops SRE probably doesn’t code probably codes

    The Ops Spectrum
  21. should this even exist?

  22. What is Configuration Management Really?

  23. None
  24. Is IoT connected toasters or?

  25. Shit VCs Say "I don’t think server sales are growing."

  26. 400 Million New Servers Needed by 2020

  27. future

  28. You’re Running Linux on That Thing?

  29. None
  30. None
  31. New Paradigm

  32. Deploy Software Not Systems

  33. Configure Software Not Systems

  34. and now for something completely different

  35. unikernel spectrum "posix" language specific domain specific osv rump kernel

    mirage clickos
  36. None
  37. None
  38. None
  39. None
  40. None
  41. None
  42. None
  43. None
  44. Go Unikernels

  45. the search for a go unikernel

  46. None
  47. None
  48. None
  49. RumpKernel

  50. putting the pieces together

  51. import "syscall"

  52. import "liquor"

  53. stuck at 1.5

  54. bootstrap

  55. new goos - rump run

  56. Build Tags

  57. auto-generated

  58. matching upstream

  59. Problems

  60. virtual memory

  61. Memory "Protection" a.k.a 30-40% Performance Tax process 1 process 2

    process 3 process 4 process 5 Physical Virtual
  62. thread local storage

  63. goroutines

  64. testing

  65. Go is a Great Fit

  66. Dynamic Libraries

  67. Single Statically Compiled Binary

  68. Small Size

  69. no fork

  70. sudo apt-get install gorump

  71. None
  72. Dependencies are a WIP

  73. future

  74. no confidence on merging

  75. rumpkernel.org github.com/deferpanic/gorump github.com/deferpanic/packages https://github.com/deferpanic/dpcli https://github.com/deferpanic/gorumpdeb https://deferpanic.net