SlideShare a Scribd company logo
Erlang on Xen:
Redefining the cloud
software stack
erlangonxen.org

Erlang Dnipro
2014
1
Monday, 17 February 14
Today’s agenda

7 commandments of Newsoftware

+
2 project ideas
2
Monday, 17 February 14
Erlang on Xen 101
•

A new Erlang runtime, runs w/o OS

•

Conceived in 2009

•

Built from scratch, specifically to run on Xen

•

Optimised for low startup latency

•

Highly-compatible with Erlang/OTP

•

Not an open source (yet)

•

The public build service is free

•

EoX starts to exec Erlang code in 4-5 ms after the
launch

•

Sustainable spawning rate = 10 instances/sec

Monday, 17 February 14

3
7 commandements of
Newsoftware:
1) Do not assume the presence of OS underneath
2) Software must be oblivious to boundaries of physical
nodes
3) All services must share the same auto-scalable fabric
4) Run computations near the data they process
5) Child nodes get configuration from the parent only
6) Avoid 'administration' at all costs
7) SMP is abomination of cloud computing
Monday, 17 February 14
1) Do not assume the presence of OS
underneath
-A full-featured kernel is an overkill for cloud instances
-Linux is optimised for very reliable long-living servers
-Unix-like access control does not help in the cloud
-Virtual devices require much simpler drivers
-Newsoftware will often run without a traditional OS
Library OS – implement OS-level functions as a
library – Mirage OS, OSv, rump kernels
Language runtime OS – use high-level language
for OS-level functions – Erlang on Xen
5

Monday, 17 February 14
2) Software must be oblivious to
boundaries of physical nodes
-Cloud services make confines of a physical node less
relevant
-You can only scale so much vertically, horizontal is the
true scaling
-A user application should be ready to partition the
computation onto many instances
-Many services can be ephemeral – provisioned only
when needed

Current cloud stacks are not ready yet
Cloud management should become an integral
part of all standard libraries
6

Monday, 17 February 14
3) All services must share the same
auto-scalable fabric

-Running cloud management stack isn’t
different from other tasks. All animals tasks
are equal.
-Cloud services should be elastic too – it would
be only too natural to implement them using
the same auto-scalable infrastructure
Packaging of cloud services as auto-scalable
applications paves the way to autonomous
clouds with far-reaching implications
7

Monday, 17 February 14
INTERMISSION: Zerg Demo

See zerg.erlangonxen.org — instance-per-request proof of
concept and check out the table at bottom of the page
Monday, 17 February 14

8
4) Run computations near data they
process

-“Scanning” database queries shovel all data
through the network
-Especially unpleasant when joining
-The cloud storage hides the real topology too
well
-I/O traffic could congest datacenter’s networks
Storage nodes should be able to run lightweight data
processing instances
Xen provides the proper isolation for safe local data
processing
Monday, 17 February 14

9
5) Child nodes get configuration from
the parent only
-Apps are really big nowadays, and are difficult to
understand
-Configuration is a mess of config files, scripts, and
Chef recipes
-Introducing proper hierarchy and order should help
-Erlang uses supervisor-workers scheme that works
and keeps things simple and understandable
The final destination is no manual configuration at all

10

Monday, 17 February 14
6) Avoid “administration” at all costs
-Human beings can react to once-per-hour events,
not on the second (or millisecond) timescale
-Human admins do not scale well
-Apps should discover services they need and
make scaling decisions
-Traditional admin tasks go away due to simpler
Newsoftware stack
The final destination is no configuration at all
Many administration tasks can and should be automated
11

Monday, 17 February 14
7) SMP is abomination of cloud
computing

-SMP hinders VM migration
-Datacenter is the computer for the Newsoftware
-No shared memory - use message passing
-Passing messages between VMs on a local host
is as fast as shared memory/locking
-Respawn smaller VMs are much faster
Services built from single-core VMs are much more
elastic and robust
12

Monday, 17 February 14
2 project ideas:
1) Dom0 based on Erlang on Xen
2) Javascript in a Xen bottle

Monday, 17 February 14
1) Dom0 based on Erlang on Xen

“Implement Xen toolstack in Erlang, remove Linux from
Dom0”
-Dom0 toolstack reminds strongly of Erlang – events,
pattern matching, multiple processes, etc
-xl is fast, yet not fast enough for on-demand
instance provisioning
-Use Linux inside unprivileged driver domains
Current status:
A prototype instance spawning interface developed –
in C and Erlang (zerg.erlangonxen.org)
14

Monday, 17 February 14
2) Javascript in a Xen bottle

“Evaluate all web scripts inside a separate
Xen domain”
-Increase security of web browsing
-Use languages other than Javascript
-Run web scripts faster – native speed

15

Monday, 17 February 14
2) Javascript in a Xen bottle

“Evaluate all web scripts inside a separate Xen domain”
-Increase security of web browsing
-Use languages other than Javascript
-Run web scripts faster – native speed

API calls

Browser
domain

Callbacks

Engine
domain
Spidermonkey
16

Monday, 17 February 14
Thank you. Questions?

17
Monday, 17 February 14

More Related Content

PPTX
The HaLVM: A Simple Platform for Simple Platforms
PDF
OSv presentation from Linux Foundation Collaboration Summit
PPTX
OSv: probably the best OS for cloud workloads you've never hear of
PDF
Erlang on OSv
PDF
From Monolith to Docker Distributed Applications
PDF
Divide and Conquer: Easier Continuous Delivery using Micro-Services
PDF
From Docker Swarm to OCCS and Wercker: Live-hacking at Oracle CODE Mexico 2017
PDF
Erlang on Xen: Redefining the cloud software stack
The HaLVM: A Simple Platform for Simple Platforms
OSv presentation from Linux Foundation Collaboration Summit
OSv: probably the best OS for cloud workloads you've never hear of
Erlang on OSv
From Monolith to Docker Distributed Applications
Divide and Conquer: Easier Continuous Delivery using Micro-Services
From Docker Swarm to OCCS and Wercker: Live-hacking at Oracle CODE Mexico 2017
Erlang on Xen: Redefining the cloud software stack

What's hot (20)

PDF
CI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
PDF
CloudOpen 2013: Developing cloud infrastructure: from scratch: the tale of an...
PDF
Testing Distributed Micro Services. Agile Testing Days 2017
PDF
Live migrating a container: pros, cons and gotchas
PDF
CIF16: Building the Superfluid Cloud with Unikernels (Simon Kuenzer, NEC Europe)
PPTX
Docker Swarm scheduling in 1.12
PDF
Windsor: Domain 0 Disaggregation for XenServer and XCP
PPTX
Data Management and Streaming Strategies in Drakensang Online
PDF
Automated Deployment with Capistrano
PDF
Docker-Vancouver Meetup - March 18, 2014 - Contain(erize) the tests - Mark Ei...
PDF
Using Containers for Building and Testing: Docker, Kubernetes and Mesos. FOSD...
PDF
Switch as a Server - PuppetConf 2014 - Leslie Carr
PPTX
A Survey of Container Security in 2016: A Security Update on Container Platforms
PDF
Luciano Fiandesio - Docker 101 | Codemotion Milan 2015
PDF
OWF: Xen - Open Source Hypervisor Designed for Clouds
PDF
CI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
PDF
Jacopo Nardiello - Monitoring Cloud-Native applications with Prometheus - Cod...
PPTX
Windows Server and Docker - The Internals Behind Bringing Docker and Containe...
PDF
Docker serverless v1.0
PDF
Mesos ♥ Docker
CI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
CloudOpen 2013: Developing cloud infrastructure: from scratch: the tale of an...
Testing Distributed Micro Services. Agile Testing Days 2017
Live migrating a container: pros, cons and gotchas
CIF16: Building the Superfluid Cloud with Unikernels (Simon Kuenzer, NEC Europe)
Docker Swarm scheduling in 1.12
Windsor: Domain 0 Disaggregation for XenServer and XCP
Data Management and Streaming Strategies in Drakensang Online
Automated Deployment with Capistrano
Docker-Vancouver Meetup - March 18, 2014 - Contain(erize) the tests - Mark Ei...
Using Containers for Building and Testing: Docker, Kubernetes and Mesos. FOSD...
Switch as a Server - PuppetConf 2014 - Leslie Carr
A Survey of Container Security in 2016: A Security Update on Container Platforms
Luciano Fiandesio - Docker 101 | Codemotion Milan 2015
OWF: Xen - Open Source Hypervisor Designed for Clouds
CI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
Jacopo Nardiello - Monitoring Cloud-Native applications with Prometheus - Cod...
Windows Server and Docker - The Internals Behind Bringing Docker and Containe...
Docker serverless v1.0
Mesos ♥ Docker
Ad

Similar to Erlang On Xen: Redefining the Cloud Software Stack (20)

PDF
XPDS13: Erlang on Xen - Redefining the Cloud Software Stack - Victor Sovietov...
PDF
Erlang On Xen @ Kiev Functional Programming event, Aug 3 2013
PDF
An operating system for multicore and clouds: mechanism and implementation
PDF
Implementing Parallelism in PostgreSQL - PGCon 2014
 
PPTX
DOE Magellan OpenStack user story
PDF
[NetApp Managing Big Workspaces with Storage Magic
PDF
OSAC16: Unikernel-powered Transient Microservices: Changing the Face of Softw...
PDF
Research computing at ILRI
PPTX
Distributed computation
PPTX
Repeating History...On Purpose...with Elixir
PDF
ResumeJagannath
PDF
Rtos part2
PPTX
Xen and the art of virtualization
PDF
EEEM048_Lecture5_Software platforms and services .pdf
PPTX
Elixir Phoenix
PDF
At the Crossroads of HPC and Cloud Computing with Openstack
PPTX
Data Analytics Using Container Persistence Through SMACK - Manny Rodriguez-Pe...
PDF
Using DC/OS for Continuous Delivery - DevPulseCon 2017
PDF
Transforming Data Architecture Complexity at Sears - StampedeCon 2013
PDF
Threads lecture slides for operating systems
XPDS13: Erlang on Xen - Redefining the Cloud Software Stack - Victor Sovietov...
Erlang On Xen @ Kiev Functional Programming event, Aug 3 2013
An operating system for multicore and clouds: mechanism and implementation
Implementing Parallelism in PostgreSQL - PGCon 2014
 
DOE Magellan OpenStack user story
[NetApp Managing Big Workspaces with Storage Magic
OSAC16: Unikernel-powered Transient Microservices: Changing the Face of Softw...
Research computing at ILRI
Distributed computation
Repeating History...On Purpose...with Elixir
ResumeJagannath
Rtos part2
Xen and the art of virtualization
EEEM048_Lecture5_Software platforms and services .pdf
Elixir Phoenix
At the Crossroads of HPC and Cloud Computing with Openstack
Data Analytics Using Container Persistence Through SMACK - Manny Rodriguez-Pe...
Using DC/OS for Continuous Delivery - DevPulseCon 2017
Transforming Data Architecture Complexity at Sears - StampedeCon 2013
Threads lecture slides for operating systems
Ad

More from Viktor Sovietov (7)

PDF
TEDx KPI 2015 Blockchain
PDF
Ling on PIC32 microcontroller
PDF
Java in High Frequency Trading
PDF
Optimizing Erlang Code for Speed
KEY
Erlang Pro Ef Sf Presentation
KEY
Virtual Supercomputer
KEY
Massive Solutions Clustrx Os
TEDx KPI 2015 Blockchain
Ling on PIC32 microcontroller
Java in High Frequency Trading
Optimizing Erlang Code for Speed
Erlang Pro Ef Sf Presentation
Virtual Supercomputer
Massive Solutions Clustrx Os

Recently uploaded (20)

PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Encapsulation theory and applications.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Spectroscopy.pptx food analysis technology
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Electronic commerce courselecture one. Pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Machine learning based COVID-19 study performance prediction
Understanding_Digital_Forensics_Presentation.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
The Rise and Fall of 3GPP – Time for a Sabbatical?
Encapsulation theory and applications.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Spectroscopy.pptx food analysis technology
Spectral efficient network and resource selection model in 5G networks
Electronic commerce courselecture one. Pdf
Network Security Unit 5.pdf for BCA BBA.
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
MIND Revenue Release Quarter 2 2025 Press Release
The AUB Centre for AI in Media Proposal.docx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Review of recent advances in non-invasive hemoglobin estimation
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Empathic Computing: Creating Shared Understanding
Unlocking AI with Model Context Protocol (MCP)
sap open course for s4hana steps from ECC to s4
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Machine learning based COVID-19 study performance prediction

Erlang On Xen: Redefining the Cloud Software Stack

  • 1. Erlang on Xen: Redefining the cloud software stack erlangonxen.org Erlang Dnipro 2014 1 Monday, 17 February 14
  • 2. Today’s agenda 7 commandments of Newsoftware + 2 project ideas 2 Monday, 17 February 14
  • 3. Erlang on Xen 101 • A new Erlang runtime, runs w/o OS • Conceived in 2009 • Built from scratch, specifically to run on Xen • Optimised for low startup latency • Highly-compatible with Erlang/OTP • Not an open source (yet) • The public build service is free • EoX starts to exec Erlang code in 4-5 ms after the launch • Sustainable spawning rate = 10 instances/sec Monday, 17 February 14 3
  • 4. 7 commandements of Newsoftware: 1) Do not assume the presence of OS underneath 2) Software must be oblivious to boundaries of physical nodes 3) All services must share the same auto-scalable fabric 4) Run computations near the data they process 5) Child nodes get configuration from the parent only 6) Avoid 'administration' at all costs 7) SMP is abomination of cloud computing Monday, 17 February 14
  • 5. 1) Do not assume the presence of OS underneath -A full-featured kernel is an overkill for cloud instances -Linux is optimised for very reliable long-living servers -Unix-like access control does not help in the cloud -Virtual devices require much simpler drivers -Newsoftware will often run without a traditional OS Library OS – implement OS-level functions as a library – Mirage OS, OSv, rump kernels Language runtime OS – use high-level language for OS-level functions – Erlang on Xen 5 Monday, 17 February 14
  • 6. 2) Software must be oblivious to boundaries of physical nodes -Cloud services make confines of a physical node less relevant -You can only scale so much vertically, horizontal is the true scaling -A user application should be ready to partition the computation onto many instances -Many services can be ephemeral – provisioned only when needed Current cloud stacks are not ready yet Cloud management should become an integral part of all standard libraries 6 Monday, 17 February 14
  • 7. 3) All services must share the same auto-scalable fabric -Running cloud management stack isn’t different from other tasks. All animals tasks are equal. -Cloud services should be elastic too – it would be only too natural to implement them using the same auto-scalable infrastructure Packaging of cloud services as auto-scalable applications paves the way to autonomous clouds with far-reaching implications 7 Monday, 17 February 14
  • 8. INTERMISSION: Zerg Demo See zerg.erlangonxen.org — instance-per-request proof of concept and check out the table at bottom of the page Monday, 17 February 14 8
  • 9. 4) Run computations near data they process -“Scanning” database queries shovel all data through the network -Especially unpleasant when joining -The cloud storage hides the real topology too well -I/O traffic could congest datacenter’s networks Storage nodes should be able to run lightweight data processing instances Xen provides the proper isolation for safe local data processing Monday, 17 February 14 9
  • 10. 5) Child nodes get configuration from the parent only -Apps are really big nowadays, and are difficult to understand -Configuration is a mess of config files, scripts, and Chef recipes -Introducing proper hierarchy and order should help -Erlang uses supervisor-workers scheme that works and keeps things simple and understandable The final destination is no manual configuration at all 10 Monday, 17 February 14
  • 11. 6) Avoid “administration” at all costs -Human beings can react to once-per-hour events, not on the second (or millisecond) timescale -Human admins do not scale well -Apps should discover services they need and make scaling decisions -Traditional admin tasks go away due to simpler Newsoftware stack The final destination is no configuration at all Many administration tasks can and should be automated 11 Monday, 17 February 14
  • 12. 7) SMP is abomination of cloud computing -SMP hinders VM migration -Datacenter is the computer for the Newsoftware -No shared memory - use message passing -Passing messages between VMs on a local host is as fast as shared memory/locking -Respawn smaller VMs are much faster Services built from single-core VMs are much more elastic and robust 12 Monday, 17 February 14
  • 13. 2 project ideas: 1) Dom0 based on Erlang on Xen 2) Javascript in a Xen bottle Monday, 17 February 14
  • 14. 1) Dom0 based on Erlang on Xen “Implement Xen toolstack in Erlang, remove Linux from Dom0” -Dom0 toolstack reminds strongly of Erlang – events, pattern matching, multiple processes, etc -xl is fast, yet not fast enough for on-demand instance provisioning -Use Linux inside unprivileged driver domains Current status: A prototype instance spawning interface developed – in C and Erlang (zerg.erlangonxen.org) 14 Monday, 17 February 14
  • 15. 2) Javascript in a Xen bottle “Evaluate all web scripts inside a separate Xen domain” -Increase security of web browsing -Use languages other than Javascript -Run web scripts faster – native speed 15 Monday, 17 February 14
  • 16. 2) Javascript in a Xen bottle “Evaluate all web scripts inside a separate Xen domain” -Increase security of web browsing -Use languages other than Javascript -Run web scripts faster – native speed API calls Browser domain Callbacks Engine domain Spidermonkey 16 Monday, 17 February 14