Lightning Talk: Erlang on Xen - Mikhail Bortnyk
-
Upload
elixir-meetup -
Category
Software
-
view
58 -
download
0
Transcript of Lightning Talk: Erlang on Xen - Mikhail Bortnyk
![Page 1: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/1.jpg)
Erlang on XenMikhail Bortnyk, Amoniac OU
![Page 2: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/2.jpg)
What to know• XEN
![Page 3: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/3.jpg)
What to know• XEN - virtualization hypervisor, modified Linux
kernel, isolated domains, paravirtualization support
![Page 4: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/4.jpg)
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?)
![Page 5: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/5.jpg)
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
![Page 6: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/6.jpg)
Typical application case
Bare metal
![Page 7: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/7.jpg)
Typical application case
Bare metal
Operating system
![Page 8: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/8.jpg)
Typical application case
Bare metal
Operating system
Your application
![Page 9: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/9.jpg)
Wait, everything is about clouds currently!
![Page 10: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/10.jpg)
Typical cloud application case
Bare metal
![Page 11: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/11.jpg)
Typical cloud application case
Bare metal
Virtualization hypervisor HOST OS
![Page 12: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/12.jpg)
Typical cloud application case
Bare metal
Virtualization hypervisor HOST OS
Guest OS Guest OS Guest OS
![Page 13: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/13.jpg)
Typical cloud application case
Bare metal
Virtualization hypervisor HOST OS
Guest OS Guest OS Guest OS
Your application Your application Your application
![Page 14: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/14.jpg)
Looks pretty familiar, huh?
![Page 15: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/15.jpg)
And anyone is sick on microservices now
![Page 16: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/16.jpg)
![Page 17: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/17.jpg)
What’s wrong with this?• Let’s imagine: our app is like, huh, 200 kilobytes
![Page 18: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/18.jpg)
What’s wrong with this?• Let’s imagine: our app is like, huh, 200 KB
• It doesn’t matter - Linux kernel is ~10 MB
![Page 19: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/19.jpg)
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
![Page 20: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/20.jpg)
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
![Page 21: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/21.jpg)
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
![Page 22: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/22.jpg)
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
![Page 23: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/23.jpg)
We all gonna die
![Page 24: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/24.jpg)
Erlang on Xen to the rescue!
![Page 25: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/25.jpg)
Erlang on XEN• Erlang VM running on XEN guest without operating
system
![Page 26: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/26.jpg)
Erlang on XEN• Erlang VM running on XEN guest without operating
system
• Actually named LING
![Page 27: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/27.jpg)
Erlang on XEN• Erlang VM running on XEN guest without operating
system
• Actually named LING
• Developed by Cloudozer
![Page 28: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/28.jpg)
Erlang on XEN• Erlang VM running on XEN guest without operating
system
• Actually named LING
• Developed by Cloudozer
• Performed in C and Erlang
![Page 29: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/29.jpg)
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
![Page 30: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/30.jpg)
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
![Page 31: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/31.jpg)
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
![Page 32: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/32.jpg)
Some little demo (what can go wrong,
srsly?)
![Page 33: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/33.jpg)
What to hack• Code is open-sourced (look into for license details)
![Page 34: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/34.jpg)
What to hack• Code is open-sourced (look into for license details)
• Teach it to work with Elixir (actually, lingex)
![Page 35: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/35.jpg)
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)
![Page 36: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/36.jpg)
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
![Page 37: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/37.jpg)
Thank you!
![Page 38: Lightning Talk: Erlang on Xen - Mikhail Bortnyk](https://reader031.fdocuments.net/reader031/viewer/2022022413/58a2fa4a1a28ab5d1c8b6585/html5/thumbnails/38.jpg)
Questions?