presents erlang/otp · you need tools. you need otp. some text. what is middleware? are design...

60
ERLANG/OTP presents FRANCESCO CESARINI Francesco Cesarini Erlang Solutions @FrancescoC [email protected] www.erlang-solutions.com

Upload: others

Post on 11-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

ERLANG/OTPpresents

FRANCESCO CESARINI

Francesco CesariniErlang Solutions

@[email protected]

Page 2: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES
Page 3: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

WHAT IS SCALABILITY?

Page 4: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES
Page 5: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

WHAT IS (MASSIVE) CONCURRENCY?

Page 6: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES
Page 7: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

WHAT IS HIGH AVAILABILITY?

Page 8: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES
Page 9: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

WHAT IS FAULT TOLERANCE?

Page 10: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES
Page 11: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

WHAT IS DISTRIBUTION TRANSPARENCY?

Page 12: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES
Page 13: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

YES, PLEASE!!!Do you need a distributed system? Do you need a scalable system? Do you need a reliable system? Do you need a fault-tolerant system? Do you need a massively concurrent system? Do you need a distributed system? Do you need a scalable

system? Do you need a reliable system? Do you need a fault-tolerant system? Dodistributed system? Do you need a scalable system? Do you need a reliable system? Do you need a fault-tolerant system? Do you need a massively

Page 14: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

TO THE RESCUE

Page 15: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

• OPEN SOURCE

• CONCURRENCY-ORIENTED

• LIGHTWEIGHT PROCESSES

• ASYNCHRONOUS MESSAGE PASSING

• SHARE-NOTHING MODEL

• PROCESS LINKING / MONITORING

• SUPERVISION TREES AND RECOVERY STRATEGIES

• TRANSPARENT DISTRIBUTION MODEL

• SOFT-REAL TIME

• LET-IT-FAIL PHILOSOPHY

• HOT-CODE UPGRADES

WHAT IS ERLANG

Page 16: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

WELL, IN FACT YOU NEED MORE.

Page 17: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

ERLANG IS JUSTA PROGRAMMING LANGUAGE.

Page 18: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

YOU NEED ARCHITECTURE PATTERNS.YOU NEED MIDDLEWARE.

YOU NEED LIBRARIES.YOU NEED TOOLS.

Page 19: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

YOU NEED OTP.

Page 20: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

SOME TEXT

Page 21: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

WHAT IS MIDDLEWARE?

Page 22: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

MIDDLEWARE

DESIGN PATTERNS

FAULT TOLERANCE

DISTRIBUTION

UPGRADES

PACKAGING

Page 23: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

WHAT ARE LIBRARIES?

Page 24: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

LIBRARIES

STORAGE

O&MINTERFACES

COMMUNICATION

Page 25: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

WHAT TOOLS?

Page 26: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

OTP TOOLS

DEVELOPMENT

TEST FRAMEWORKS

RELEASE & DEPLOYMENT

DEBUGGING & MONITORING

Page 27: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

PART OF THE ERLANG DISTRIBUTION

OPEN SOURCE

OTP IS

Page 28: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

OTPServersFinite State MachinesEvent HandlersSupervisorsApplications

Less CodeLess Bugs

More Solid CodeMore Tested Code

More Free Time

Page 29: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

BEHAVIOURS

Page 30: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

SPECIFICCALLBACKMODULE

GENERICBEHAVIOUR

MODULE

Server

process

Page 31: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

OTPServersFinite State MachinesEvent HandlersSupervisorsApplications

Less CodeLess Bugs

More Solid CodeMore Tested Code

More Free Time

Page 32: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

call(Name, Message) -> Name ! {request, self(), Message}, receive {reply, Reply} -> Reply end.

reply(Pid, Reply) -> Pid ! {reply, Reply}.

Client Server

{request, Pid, Message}

{reply, Reply}

Page 33: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

Client Server

{request, Pid, Message}

{reply, Reply}

Server 2

{reply, Reply}

call(Name, Msg) -> Ref = make_ref(), Name ! {request, {Ref, self()}, Msg}, receive {reply, Ref, Reply} -> Reply end.

reply({Ref, Pid}, Reply) -> Pid ! {reply, Ref, Reply}.

{request, {Ref, self()}, Message}

{reply, Ref, Reply}

{reply, ???, Reply}

Page 34: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

PidA PidB

{request, {Ref, PidA}, Msg}

call(Name, Msg) -> Ref = erlang:monitor(process, Name), Name ! {request, {Ref, self()}, Msg}, receive! {reply, Ref, Reply} ->! erlang:demonitor(Ref),! Reply;! {'DOWN', Ref, process, _Name, _Reason} ->! {error, no_proc} end.

Page 35: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

PidA PidB

{request, {Ref, PidA}, Msg}

call(Name, Msg) -> Ref = erlang:monitor(process, Name), Name ! {request, {Ref, self()}, Msg}, receive! {reply, Ref, Reply} ->! erlang:demonitor(Ref, [flush]),! Reply;! {'DOWN', Ref, process, _Name, _Reason} ->! {error, no_proc} end.

{reply, Ref, Reply}

{'DOWN', Ref, process, PidB, Reason}

Page 36: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

BEHAVIOURS

TIMEOUTS

DEADLOCKSTRACING

MONITORING

DISTRIBUTION

Page 37: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

Your Heading

Page 38: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

Let It Failconvert(Day) -> case Day of monday -> 1; tuesday -> 2; wednesday -> 3; thursday -> 4; friday -> 5; saturday -> 6; sunday -> 7; Other -> {error, unknown_day} end.

Page 39: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

Let It Failconvert(Day) -> case Day of monday -> 1; tuesday -> 2; wednesday -> 3; thursday -> 4; friday -> 5; saturday -> 6; sunday -> 7

end.

Page 40: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

ISOLATE THE ERROR!

Page 41: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

PROPAGATING EXIT SIGNALSExit Signals

PidA PidB

{'EXIT', PidA, Reason}

PidC

{'EXIT', PidB, Reason}

Page 42: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

Trap ExitTRAPPING AN EXIT SIGNAL

PidA

{'EXIT', PidA, Reason}

PidC

PidB

Page 43: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

Supervisors

PidA

PidC

PidBSupervisor

Workers

Application

Page 44: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

ReleasesRelease

Mongoose

IM folsom lager

snmp mnesia stdlib

SASL kernel ERTS

Page 45: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

AUTOMATIC TAKEOVER AND FAILOVER

Page 46: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

N1

{myApp, 2000, {n1@host, {n2@host, n3@host}]}

N2 N3

ApplicationMaster

Application

n1@host dies Application Masters on failover nodes

Page 47: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

N2 N3

n2@host diesApplication is restarted on n2@host

{myApp, 2000, {n1@host, {n2@host, n3@host}]}

Page 48: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

N1 N3

n1@host comes back up Application is restarted on n3@host

{myApp, 2000, {n1@host, {n2@host, n3@host}]}

Page 49: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

N1 N3

N1 takes over N3

{myApp, 2000, {n1@host, {n2@host, n3@host}]}

Page 50: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

RELEASE STATEMENT OF AIMS

“To scale the radical concurrency-oriented programming paradigm to build reliable general-purpose software, such as server-based systems, on massively parallel machines (10^5 cores).”

Page 51: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

The Runtime QueuesErlang VM

Scheduler #1

Scheduler #2

run queue

Scheduler #2

Scheduler #N

run queue

run queue

migration logic

migration logic

Page 52: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES
Page 53: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

WP4 Scalable Infrastructure

WP3 SD Erlang Language

WP2 Virtual Machine

WP5 Tools

WP6 C

ase Studies

LIMITATIONS ARE PRESENT AT THREE LEVELS

Page 54: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

• PUSH THE RESPONSIBILITY FOR SCALABILITY FROM THE PROGRAMMER TO THE VM

• ANALYZE PERFORMANCE AND SCALABILITY

• IDENTIFY BOTTLENECKS AND PRIORITIZE CHANGES AND EXTENSIONS

• TACKLE WELL-KNOWN SCALABILITY ISSUES• ETS TABLES (SHARED GLOBAL DATA STRUCTURE)• MESSAGE PASSING, COPYING AND FREQUENTLY COMMUNICATING PROCESSES

VM LANGUAGE INFRASTRUCTURE

Page 55: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

VM LANGUAGE INFRASTRUCTURE

• TWO MAJOR ISSUES• FULLY CONNECTED CLUSTERS

• EXPLICIT PROCESS PLACEMENT

• SCALABLE DISTRIBUTED (SD) ERLANG• NODES GROUPING

• NON-TRANSITIVE CONNECTIONS

• IMPLICIT PROCESS PLACEMENT

• PART OF THE STANDARD ERLANG/OTP PACKAGE

• NEW CONCEPTS INTRODUCED• LOCALITY, AFFINITY AND DISTANCE

Page 56: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

• MIDDLEWARE LAYER

• SET OF ERLANG APPLICATIONS

• CREATE AND MANAGE CLUSTERS OF (HETEROGENEOUS) ERLANG NODES

• API TO MONITOR AND CONTROL ERLANG DISTRIBUTED SYSTEMS

• EXISTING TRACING/LOGGING/DEBUGGING TOOLS PLUGGABLE

• BROKER LAYER BETWEEN USERS AND CLOUD PROVIDERS

• AUTO-SCALING

VM LANGUAGE INFRASTRUCTURE

Wombat O&M

... AND MUCH MORE

Page 57: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

CONCLUSIONS

Page 58: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

USE ERLANG

Do you need a distributed system? Do you need a scalable system? Do you need a reliable system? Do you need a fault-tolerant system? Do you need a massively concurrent system? Do you need a distributed system? Do you need a scalable

system? Do you need a reliable system? Do you need a fault-tolerant system? Dodistributed system? Do you need a scalable system? Do you need a reliable system? Do you need a fault-tolerant system? Do you need a massively

Page 59: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

USE ERLANG/OTP

Do you need a distributed system? Do you need a scalable system? Do you need a reliable system? Do you need a fault-tolerant system? Do you need a massively concurrent system? Do you need a distributed system? Do you need a scalable

system? Do you need a reliable system? Do you need a fault-tolerant system? Dodistributed system? Do you need a scalable system? Do you need a reliable system? Do you need a fault-tolerant system? Do you need a massively

Page 60: presents ERLANG/OTP · YOU NEED TOOLS. YOU NEED OTP. SOME TEXT. WHAT IS MIDDLEWARE? ARE DESIGN PATTERNS FAULT TOLERANCE DISTRIBUTION UPGRADES PACKAGING. WHAT ARE LIBRARIES? LIBRARIES

@ fr a n ce s co C

QUESTIONS?