SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
Erlang on Xen
Mikhail Bortnyk, Amoniac OU
What to know
• XEN
What to know
• XEN - virtualization hypervisor, modified Linux
kernel, isolated domains, paravirtualization support
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?)
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
Typical application case
Bare
metal
Typical application case
Bare
metal
Operating system
Typical application case
Bare
metal
Operating system
Your application
Wait, everything is
about clouds currently!
Typical cloud application
case
Bare
metal
Typical cloud application
case
Bare
metal
Virtualization hypervisor
HOST OS
Typical cloud application
case
Bare
metal
Virtualization hypervisor
HOST OS
Guest OS Guest OS Guest OS
Typical cloud application
case
Bare
metal
Virtualization hypervisor
HOST OS
Guest OS Guest OS Guest OS
Your application Your application Your application
Looks pretty familiar,
huh?
And anyone is sick on
microservices now
What’s wrong with this?
• Let’s imagine: our app is like, huh, 200 kilobytes
What’s wrong with this?
• Let’s imagine: our app is like, huh, 200 KB
• It doesn’t matter - Linux kernel is ~10 MB
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
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
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
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
We all gonna die
Erlang on Xen to the
rescue!
Erlang on XEN
• Erlang VM running on XEN guest without operating
system
Erlang on XEN
• Erlang VM running on XEN guest without operating
system
• Actually named LING
Erlang on XEN
• Erlang VM running on XEN guest without operating
system
• Actually named LING
• Developed by Cloudozer
Erlang on XEN
• Erlang VM running on XEN guest without operating
system
• Actually named LING
• Developed by Cloudozer
• Performed in C and Erlang
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
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
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
Some little demo
(what can go wrong,
srsly?)
What to hack
• Code is open-sourced (look into for license details)
What to hack
• Code is open-sourced (look into for license details)
• Teach it to work with Elixir (actually, lingex)
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)
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
Thank you!
Questions?

Weitere ähnliche Inhalte

Was ist angesagt?

Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...
Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...
Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...
Simplilearn
 

Was ist angesagt? (20)

Pharo, Spec and GTK
Pharo, Spec and GTKPharo, Spec and GTK
Pharo, Spec and GTK
 
Advanced EBS Snapshot Management (STG402) | AWS re:Invent 2013
Advanced EBS Snapshot Management (STG402) | AWS re:Invent 2013Advanced EBS Snapshot Management (STG402) | AWS re:Invent 2013
Advanced EBS Snapshot Management (STG402) | AWS re:Invent 2013
 
When Tools Attack
When Tools AttackWhen Tools Attack
When Tools Attack
 
Let's Get Acquainted: Ansible! / Symfony Camp UA 2014
Let's Get Acquainted: Ansible!  / Symfony Camp UA 2014Let's Get Acquainted: Ansible!  / Symfony Camp UA 2014
Let's Get Acquainted: Ansible! / Symfony Camp UA 2014
 
Spacebrew @ SFPC
Spacebrew @ SFPCSpacebrew @ SFPC
Spacebrew @ SFPC
 
Ansible Berlin Meetup Intro talk by @danvaida
Ansible Berlin Meetup Intro talk by @danvaidaAnsible Berlin Meetup Intro talk by @danvaida
Ansible Berlin Meetup Intro talk by @danvaida
 
DockerCon SF 2015: Networking Breakout
DockerCon SF 2015: Networking BreakoutDockerCon SF 2015: Networking Breakout
DockerCon SF 2015: Networking Breakout
 
AWS Webcast - Introduction to EBS
AWS Webcast - Introduction to EBS AWS Webcast - Introduction to EBS
AWS Webcast - Introduction to EBS
 
Configuration primer
Configuration primerConfiguration primer
Configuration primer
 
Going Serverless: The Best Ops is NoOps.
Going Serverless: The Best Ops is NoOps.Going Serverless: The Best Ops is NoOps.
Going Serverless: The Best Ops is NoOps.
 
Introduction to scaling your WordPress site past a single node using AWS
Introduction to scaling your WordPress site past a single node using AWSIntroduction to scaling your WordPress site past a single node using AWS
Introduction to scaling your WordPress site past a single node using AWS
 
Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...
Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...
Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...
 
Unikernel User Summit 2015: The Next Generation Cloud: Unleashing the Power o...
Unikernel User Summit 2015: The Next Generation Cloud: Unleashing the Power o...Unikernel User Summit 2015: The Next Generation Cloud: Unleashing the Power o...
Unikernel User Summit 2015: The Next Generation Cloud: Unleashing the Power o...
 
Pharo VM Performance
Pharo VM PerformancePharo VM Performance
Pharo VM Performance
 
Aws Elastic Block Storage
Aws Elastic Block StorageAws Elastic Block Storage
Aws Elastic Block Storage
 
OpenWhisk Go/Swift/Binaries Runtime
OpenWhisk Go/Swift/Binaries RuntimeOpenWhisk Go/Swift/Binaries Runtime
OpenWhisk Go/Swift/Binaries Runtime
 
Micro services architecture and service fabric
Micro services architecture and service fabricMicro services architecture and service fabric
Micro services architecture and service fabric
 
Some Thoughts on Loc/ID Separation
Some Thoughts on Loc/ID SeparationSome Thoughts on Loc/ID Separation
Some Thoughts on Loc/ID Separation
 
Auto deploy symfony app with codeship and elastic beanstalk
Auto deploy symfony app with codeship and elastic beanstalkAuto deploy symfony app with codeship and elastic beanstalk
Auto deploy symfony app with codeship and elastic beanstalk
 
Working Well Together: How to Keep High-end Game Development Teams Productive
Working Well Together: How to Keep High-end Game Development Teams ProductiveWorking Well Together: How to Keep High-end Game Development Teams Productive
Working Well Together: How to Keep High-end Game Development Teams Productive
 

Andere mochten auch

The mystique of erlang
The mystique of erlangThe mystique of erlang
The mystique of erlang
Carob Cherub
 
Erlang Practice
Erlang PracticeErlang Practice
Erlang Practice
litaocheng
 
An Erlang Game Stack
An Erlang Game StackAn Erlang Game Stack
An Erlang Game Stack
Eonblast
 

Andere mochten auch (20)

Maksym Pugach - Elixir Release and Deploy Utilities
Maksym Pugach - Elixir Release and Deploy UtilitiesMaksym Pugach - Elixir Release and Deploy Utilities
Maksym Pugach - Elixir Release and Deploy Utilities
 
GenStage and Flow - Jose Valim
GenStage and Flow - Jose Valim GenStage and Flow - Jose Valim
GenStage and Flow - Jose Valim
 
Erlang Concurrency
Erlang ConcurrencyErlang Concurrency
Erlang Concurrency
 
The mystique of erlang
The mystique of erlangThe mystique of erlang
The mystique of erlang
 
Introduction to Couchbase Server 2.0
Introduction to Couchbase Server 2.0Introduction to Couchbase Server 2.0
Introduction to Couchbase Server 2.0
 
Why erlang
Why erlangWhy erlang
Why erlang
 
Erlang on OSv
Erlang on OSvErlang on OSv
Erlang on OSv
 
Erlang Developments: The Good, The Bad and The Ugly
Erlang Developments: The Good, The Bad and The UglyErlang Developments: The Good, The Bad and The Ugly
Erlang Developments: The Good, The Bad and The Ugly
 
Exception Handler, Controller Advice Of Spring
Exception Handler, Controller Advice Of SpringException Handler, Controller Advice Of Spring
Exception Handler, Controller Advice Of Spring
 
Intro to Erlang
Intro to ErlangIntro to Erlang
Intro to Erlang
 
Erlang For Five Nines
Erlang For Five NinesErlang For Five Nines
Erlang For Five Nines
 
An introduction to erlang
An introduction to erlangAn introduction to erlang
An introduction to erlang
 
Erlang Practice
Erlang PracticeErlang Practice
Erlang Practice
 
learn you some erlang - chap 9 to chap10
learn you some erlang - chap 9 to chap10learn you some erlang - chap 9 to chap10
learn you some erlang - chap 9 to chap10
 
Erlang OTP
Erlang OTPErlang OTP
Erlang OTP
 
Intro To Erlang
Intro To ErlangIntro To Erlang
Intro To Erlang
 
Actors in erlang
Actors in erlangActors in erlang
Actors in erlang
 
An Erlang Game Stack
An Erlang Game StackAn Erlang Game Stack
An Erlang Game Stack
 
Alex Troush - IEx Cheat Sheet. Guide to Win with IEx on your Day to Day Job
Alex Troush - IEx Cheat Sheet. Guide to Win with IEx on your Day to Day JobAlex Troush - IEx Cheat Sheet. Guide to Win with IEx on your Day to Day Job
Alex Troush - IEx Cheat Sheet. Guide to Win with IEx on your Day to Day Job
 
Introduction to Erlang
Introduction to ErlangIntroduction to Erlang
Introduction to Erlang
 

Ähnlich wie Lightning Talk: Erlang on Xen - Mikhail Bortnyk

VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012
Eonblast
 
Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...
Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...
Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...
Ontico
 
KVM/ARM Nested Virtualization Support and Performance - SFO17-410
KVM/ARM Nested Virtualization Support and Performance - SFO17-410KVM/ARM Nested Virtualization Support and Performance - SFO17-410
KVM/ARM Nested Virtualization Support and Performance - SFO17-410
Linaro
 
Rails infrastructure
Rails infrastructureRails infrastructure
Rails infrastructure
qureshiomar
 

Ähnlich wie Lightning Talk: Erlang on Xen - Mikhail Bortnyk (20)

Phoenix for Rubyists
Phoenix for RubyistsPhoenix for Rubyists
Phoenix for Rubyists
 
Présentation d'Unikernel
Présentation d'UnikernelPrésentation d'Unikernel
Présentation d'Unikernel
 
You Call that Micro, Mr. Docker? How OSv and Unikernels Help Micro-services S...
You Call that Micro, Mr. Docker? How OSv and Unikernels Help Micro-services S...You Call that Micro, Mr. Docker? How OSv and Unikernels Help Micro-services S...
You Call that Micro, Mr. Docker? How OSv and Unikernels Help Micro-services S...
 
The Next Generation Cloud: Unleashing the Power of the Unikernal
The Next Generation Cloud: Unleashing the Power of the UnikernalThe Next Generation Cloud: Unleashing the Power of the Unikernal
The Next Generation Cloud: Unleashing the Power of the Unikernal
 
Eusecwest
EusecwestEusecwest
Eusecwest
 
Next Generation Cloud: Rise of the Unikernel V3 (UPDATED)
Next Generation Cloud: Rise of the Unikernel V3 (UPDATED)Next Generation Cloud: Rise of the Unikernel V3 (UPDATED)
Next Generation Cloud: Rise of the Unikernel V3 (UPDATED)
 
CPOSC2014: Next Generation Cloud -- Rise of the Unikernel
CPOSC2014: Next Generation Cloud -- Rise of the UnikernelCPOSC2014: Next Generation Cloud -- Rise of the Unikernel
CPOSC2014: Next Generation Cloud -- Rise of the Unikernel
 
SCALE13x: Next Generation of the Cloud - Rise of the Unikernel
SCALE13x: Next Generation of the Cloud - Rise of the UnikernelSCALE13x: Next Generation of the Cloud - Rise of the Unikernel
SCALE13x: Next Generation of the Cloud - Rise of the Unikernel
 
OSv: probably the best OS for cloud workloads you've never hear of
OSv: probably the best OS for cloud workloads you've never hear ofOSv: probably the best OS for cloud workloads you've never hear of
OSv: probably the best OS for cloud workloads you've never hear of
 
VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012
 
Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...
Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...
Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...
 
Linex
LinexLinex
Linex
 
Erlang - Concurrent Language for Concurrent World
Erlang - Concurrent Language for Concurrent WorldErlang - Concurrent Language for Concurrent World
Erlang - Concurrent Language for Concurrent World
 
Unikernelize your Java Application
Unikernelize your Java ApplicationUnikernelize your Java Application
Unikernelize your Java Application
 
Unikernels and docker from revolution to evolution — unikernels and docker ...
Unikernels and docker  from revolution to evolution — unikernels and docker  ...Unikernels and docker  from revolution to evolution — unikernels and docker  ...
Unikernels and docker from revolution to evolution — unikernels and docker ...
 
From Ruby to Elixir
From Ruby to ElixirFrom Ruby to Elixir
From Ruby to Elixir
 
KVM/ARM Nested Virtualization Support and Performance - SFO17-410
KVM/ARM Nested Virtualization Support and Performance - SFO17-410KVM/ARM Nested Virtualization Support and Performance - SFO17-410
KVM/ARM Nested Virtualization Support and Performance - SFO17-410
 
Rails development environment talk
Rails development environment talkRails development environment talk
Rails development environment talk
 
Rails infrastructure
Rails infrastructureRails infrastructure
Rails infrastructure
 
Nodeconf npm 2011
Nodeconf npm 2011Nodeconf npm 2011
Nodeconf npm 2011
 

Mehr von Elixir Club

Mehr von Elixir Club (20)

Kubernetes + Docker + Elixir - Alexei Sholik, Andrew Dryga | Elixir Club Ukraine
Kubernetes + Docker + Elixir - Alexei Sholik, Andrew Dryga | Elixir Club UkraineKubernetes + Docker + Elixir - Alexei Sholik, Andrew Dryga | Elixir Club Ukraine
Kubernetes + Docker + Elixir - Alexei Sholik, Andrew Dryga | Elixir Club Ukraine
 
Integrating 3rd parties with Ecto - Eduardo Aguilera | Elixir Club Ukraine
Integrating 3rd parties with Ecto -  Eduardo Aguilera | Elixir Club UkraineIntegrating 3rd parties with Ecto -  Eduardo Aguilera | Elixir Club Ukraine
Integrating 3rd parties with Ecto - Eduardo Aguilera | Elixir Club Ukraine
 
— An async template - Oleksandr Khokhlov | Elixir Club Ukraine
— An async template  -  Oleksandr Khokhlov | Elixir Club Ukraine— An async template  -  Oleksandr Khokhlov | Elixir Club Ukraine
— An async template - Oleksandr Khokhlov | Elixir Club Ukraine
 
BEAM architecture handbook - Andrea Leopardi | Elixir Club Ukraine
BEAM architecture handbook - Andrea Leopardi  | Elixir Club UkraineBEAM architecture handbook - Andrea Leopardi  | Elixir Club Ukraine
BEAM architecture handbook - Andrea Leopardi | Elixir Club Ukraine
 
You ain't gonna need write a GenServer - Ulisses Almeida | Elixir Club Ukraine
You ain't gonna need write a GenServer - Ulisses Almeida  | Elixir Club UkraineYou ain't gonna need write a GenServer - Ulisses Almeida  | Elixir Club Ukraine
You ain't gonna need write a GenServer - Ulisses Almeida | Elixir Club Ukraine
 
— Knock, knock — An async templates — Who’s there? - Alexander Khokhlov | ...
 — Knock, knock — An async templates — Who’s there? - Alexander Khokhlov  |  ... — Knock, knock — An async templates — Who’s there? - Alexander Khokhlov  |  ...
— Knock, knock — An async templates — Who’s there? - Alexander Khokhlov | ...
 
Performance measurement methodology — Maksym Pugach | Elixir Evening Club 3
Performance measurement methodology — Maksym Pugach | Elixir Evening Club 3Performance measurement methodology — Maksym Pugach | Elixir Evening Club 3
Performance measurement methodology — Maksym Pugach | Elixir Evening Club 3
 
Erlang cluster. How is it? Production experience. — Valerii Vasylkov | Elixi...
Erlang cluster. How is it? Production experience. —  Valerii Vasylkov | Elixi...Erlang cluster. How is it? Production experience. —  Valerii Vasylkov | Elixi...
Erlang cluster. How is it? Production experience. — Valerii Vasylkov | Elixi...
 
Promo Phx4RailsDevs - Volodya Sveredyuk
Promo Phx4RailsDevs - Volodya SveredyukPromo Phx4RailsDevs - Volodya Sveredyuk
Promo Phx4RailsDevs - Volodya Sveredyuk
 
Web of today — Alexander Khokhlov
Web of today —  Alexander KhokhlovWeb of today —  Alexander Khokhlov
Web of today — Alexander Khokhlov
 
ElixirConf Eu 2018, what was it like? – Eugene Pirogov
ElixirConf Eu 2018, what was it like? – Eugene PirogovElixirConf Eu 2018, what was it like? – Eugene Pirogov
ElixirConf Eu 2018, what was it like? – Eugene Pirogov
 
Implementing GraphQL API in Elixir – Victor Deryagin
Implementing GraphQL API in Elixir – Victor DeryaginImplementing GraphQL API in Elixir – Victor Deryagin
Implementing GraphQL API in Elixir – Victor Deryagin
 
WebPerformance: Why and How? – Stefan Wintermeyer
WebPerformance: Why and How? – Stefan WintermeyerWebPerformance: Why and How? – Stefan Wintermeyer
WebPerformance: Why and How? – Stefan Wintermeyer
 
GenServer in Action – Yurii Bodarev
GenServer in Action – Yurii Bodarev   GenServer in Action – Yurii Bodarev
GenServer in Action – Yurii Bodarev
 
Russian Doll Paradox: Elixir Web without Phoenix - Alex Rozumii
Russian Doll Paradox: Elixir Web without Phoenix - Alex RozumiiRussian Doll Paradox: Elixir Web without Phoenix - Alex Rozumii
Russian Doll Paradox: Elixir Web without Phoenix - Alex Rozumii
 
Practical Fault Tolerance in Elixir - Alexei Sholik
Practical Fault Tolerance in Elixir - Alexei SholikPractical Fault Tolerance in Elixir - Alexei Sholik
Practical Fault Tolerance in Elixir - Alexei Sholik
 
Phoenix and beyond: Things we do with Elixir - Alexander Khokhlov
Phoenix and beyond: Things we do with Elixir - Alexander KhokhlovPhoenix and beyond: Things we do with Elixir - Alexander Khokhlov
Phoenix and beyond: Things we do with Elixir - Alexander Khokhlov
 
Monads are just monoids in the category of endofunctors - Ike Kurghinyan
Monads are just monoids in the category of endofunctors - Ike KurghinyanMonads are just monoids in the category of endofunctors - Ike Kurghinyan
Monads are just monoids in the category of endofunctors - Ike Kurghinyan
 
Craft effective API with GraphQL and Absinthe - Ihor Katkov
Craft effective API with GraphQL and Absinthe - Ihor KatkovCraft effective API with GraphQL and Absinthe - Ihor Katkov
Craft effective API with GraphQL and Absinthe - Ihor Katkov
 
Elixir in a service of government - Alex Troush
Elixir in a service of government - Alex TroushElixir in a service of government - Alex Troush
Elixir in a service of government - Alex Troush
 

Kürzlich hochgeladen

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Kürzlich hochgeladen (20)

%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 

Lightning Talk: Erlang on Xen - Mikhail Bortnyk

  • 1. Erlang on Xen Mikhail Bortnyk, Amoniac OU
  • 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
  • 9. Wait, everything is about clouds currently!
  • 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
  • 15. And anyone is sick on microservices now
  • 16.
  • 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
  • 24. Erlang on Xen to the rescue!
  • 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
  • 32. Some little demo (what can go wrong, srsly?)
  • 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