SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
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
11.
Typical cloud application
case
Bare
metal
Virtualization hypervisor
HOST OS
12.
Typical cloud application
case
Bare
metal
Virtualization hypervisor
HOST OS
Guest OS Guest OS Guest OS
13.
Typical cloud application
case
Bare
metal
Virtualization hypervisor
HOST OS
Guest OS Guest OS Guest OS
Your application Your application Your application
16.
What’s wrong with this?
• Let’s imagine: our app is like, huh, 200 kilobytes
17.
What’s wrong with this?
• Let’s imagine: our app is like, huh, 200 KB
• It doesn’t matter - Linux kernel is ~10 MB
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
• Typical Linux image is ~ 400 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
• Multiply this on amount of instances
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
• More than 500MB overhead for 200 KB application
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
• Overheating, war for resources, depression, death
24.
Erlang on XEN
• Erlang VM running on XEN guest without operating
system
25.
Erlang on XEN
• Erlang VM running on XEN guest without operating
system
• Actually named LING
26.
Erlang on XEN
• Erlang VM running on XEN guest without operating
system
• Actually named LING
• Developed by Cloudozer
27.
Erlang on XEN
• Erlang VM running on XEN guest without operating
system
• Actually named LING
• Developed by Cloudozer
• Performed in C and Erlang
28.
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
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
• Minimal memory requirement to run: 20 MB per guest
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
• Spawns pretty fast - from 0.2 to 1 s
32.
What to hack
• Code is open-sourced (look into for license details)
33.
What to hack
• Code is open-sourced (look into for license details)
• Teach it to work with Elixir (actually, lingex)
34.
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)
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)
• Just have fun with some hacking and getting into
internals of Erlang and BEAM