18
Erlang: Bring cloud to your application Ngoc Dao

Cloud Erlang

Embed Size (px)

DESCRIPTION

You normally think of virtualization as virtualization at the operating system level. But with Erlang, you can do virtualization at application level.

Citation preview

Page 1: Cloud Erlang

Erlang:Bring cloud to your application

Ngoc Dao

Page 2: Cloud Erlang

Normally, you bring

your application → cloud

Erlang lets you bring

cloud → your application

Page 3: Cloud Erlang

Normally,cloud is at OS level

Erlang lets you create and controlcloud at application level,your application

Page 4: Cloud Erlang

It’s because Erlang feels like an OS

You can control the OS in your application

Page 5: Cloud Erlang

ps → pman:start().

Page 6: Cloud Erlang

top → etop:start().

Page 7: Cloud Erlang

applications → applicationsappmon:start().webtool:start().observer:start().

Page 8: Cloud Erlang

“We are dropping appmon, and replacing it with observer instead.”

Page 9: Cloud Erlang

observer:start().

Page 10: Cloud Erlang

webtool alternative: BigWig

Page 11: Cloud Erlang

debugger:start().

Page 12: Cloud Erlang

Let’s create a cloud

Page 13: Cloud Erlang

mynode1

Erlang processErlang processErlang process

mynode2

Erlang processErlang processErlang process

Guestmachine

Hostmachine

Guestmachine

Page 14: Cloud Erlang

Create 2 nodes

$ erl -sname mynode1 -setcookie mypassword1 -detached

$ erl -sname mynode2 -setcookie mypassword2 -detached

Page 15: Cloud Erlang

Check if the nodes are on

$ ps aux

[output]epmd -daemonbeam.smp ... -sname mynode1 -setcookie mypassword1 -noshell -noinputbeam.smp ... -sname mynode2 -setcookie mypassword2 -noshell -noinput

Guestmachine

Guestmachine

Hostmachine

Page 16: Cloud Erlang

epmd

mynode1

Erlang processErlang processErlang process

mynode2

Erlang processErlang processErlang process

Guestmachine

Hostmachine

Guestmachine

Page 17: Cloud Erlang

Login to mynode1

$ erl -sname mynode3 -setcookie mypassword1 -remsh mynode1@ngoc

From here, to stop mynode1: init:stop(). or q().

To quit without stoping mynode1:Ctrl+C

Page 18: Cloud Erlang

More topics

• Deploy code to nodes• Connect nodes together• Hot code swap