cloud erlang

18
Erlang: Bring cloud to your application Ngoc Dao

Upload: ngoc-dao

Post on 05-Dec-2014

3.120 views

Category:

Technology


1 download

DESCRIPTION

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

TRANSCRIPT

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