The document discusses running Erlang applications directly on the Xen hypervisor without an operating system. It notes that traditionally Erlang applications run within a Linux virtual machine on Xen, which introduces significant overhead. As an alternative, it describes "LING", an Erlang virtual machine developed by Cloudozer that runs on Xen without an OS, reducing the memory footprint to around 8 MB per instance plus 20 MB of memory to run. LING offers a more lightweight way to run Erlang applications in the cloud without traditional operating system overhead.
3. What to know
• XEN - virtualization hypervisor, modified Linux
kernel, isolated domains, paravirtualization support
4. What to know
• XEN - virtualization hypervisor, modified Linux
kernel, isolated domains, paravirtualization support
• Erlang - functional concurrent programming
language (all you guys know about it, right?)
5. What to know
• XEN - virtualization hypervisor, modified Linux
kernel, isolated domains, paravirtualization support
• Erlang - functional concurrent programming
language (all you guys know about it, right?)
• Linux - Unix-like operating system created by Linus
Torvalds
17. What’s wrong with this?
• Let’s imagine: our app is like, huh, 200 kilobytes
18. What’s wrong with this?
• Let’s imagine: our app is like, huh, 200 KB
• It doesn’t matter - Linux kernel is ~10 MB
19. What’s wrong with this?
• Let’s imagine: our app is like, huh, 200 KB
• It doesn’t matter - Linux kernel is ~10 MB
• Typical Linux image is ~ 400 MB
20. What’s wrong with this?
• Let’s imagine: our app is like, huh, 200 KB
• It doesn’t matter - Linux kernel is ~10 MB
• Typical Linux image is ~ 400 MB
• Multiply this on amount of instances
21. What’s wrong with this?
• Let’s imagine: our app is like, huh, 200 KB
• It doesn’t matter - Linux kernel is ~10 MB
• Typical Linux image is ~ 400 MB
• Multiply this on amount of instances
• More than 500MB overhead for 200 KB application
22. What’s wrong with this?
• Let’s imagine: our app is like, huh, 200 KB
• It doesn’t matter - Linux kernel is ~10 MB
• Typical Linux image is ~ 400 MB
• Multiply this on amount of instances
• More than 500MB overhead for 200 KB application
• Overheating, war for resources, depression, death
25. Erlang on XEN
• Erlang VM running on XEN guest without operating
system
26. Erlang on XEN
• Erlang VM running on XEN guest without operating
system
• Actually named LING
27. Erlang on XEN
• Erlang VM running on XEN guest without operating
system
• Actually named LING
• Developed by Cloudozer
28. Erlang on XEN
• Erlang VM running on XEN guest without operating
system
• Actually named LING
• Developed by Cloudozer
• Performed in C and Erlang
29. Erlang on XEN
• Erlang VM running on XEN guest without operating
system
• Actually named LING
• Developed by Cloudozer
• Performed in C and Erlang
• Footprint is pretty small: 1.2 MB of low-level code + 2
MB of C stack + 2 MB of imported modules + 2 MB of
network buffers = ~ 8 MB
30. Erlang on XEN
• Erlang VM running on XEN guest without operating system
• Actually named LING
• Developed by Cloudozer
• Performed in C and Erlang
• Footprint is pretty small: 1.2 MB of low-level code + 2 MB
of C stack + 2 MB of imported modules + 2 MB of network
buffers = ~ 8 MB
• Minimal memory requirement to run: 20 MB per guest
31. Erlang on XEN
• Erlang VM running on XEN guest without operating system
• Actually named LING
• Developed by Cloudozer
• Performed in C and Erlang
• Footprint is pretty small: 1.2 MB of low-level code + 2 MB of C stack
+ 2 MB of imported modules + 2 MB of network buffers = ~ 8 MB
• Minimal memory requirement to run: 20 MB per guest
• Spawns pretty fast - from 0.2 to 1 s
33. What to hack
• Code is open-sourced (look into for license details)
34. What to hack
• Code is open-sourced (look into for license details)
• Teach it to work with Elixir (actually, lingex)
35. What to hack
• Code is open-sourced (look into for license details)
• Teach it to work with Elixir (actually, lingex)
• Make LING alive again! (last commit - Oct 2015)
36. What to hack
• Code is open-sourced (look into for license details)
• Teach it to work with Elixir (actually, lingex)
• Make LING alive again! (last commit - Oct 2015)
• Just have fun with some hacking and getting into
internals of Erlang and BEAM