Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra...

73
Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 1 / 73

Transcript of Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra...

Page 1: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Sistemas Distribuidos: ¿Para Qué?Mariano Guerra @warianoguerra

instadeq.com @instadeq

Erlang Factory Light

Buenos Aires 2017

1 / 73

Page 2: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

2 / 73

Page 3: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

3 / 73

Page 4: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Disclaimer

4 / 73

Page 5: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

New boring CRUD app, how can we make it exciting?

5 / 73

Page 6: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

6 / 73

Page 7: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

What could possibly go wrong?Well ... let's see

7 / 73

Page 8: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

A = foo()B = bar(A)do_something(A, B)

8 / 73

Page 9: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Tracing/MetricsDapper, a Large-Scale Distributed Systems TracingInfrastructure

Open Tracing/zipkinErlang gh:project-fifo/otters

9 / 73

Page 10: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

LogsCollection, Centralization, Search, Correlation

ELK, Splunk, flume, fluentd, "hadoop"

10 / 73

Page 11: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Timeouts, Retries, Exponential Backo�gh:Netflix/Histrix

Latency and Fault Tolerance

Stop cascading failures.

Fallbacks and graceful degradation.

Circuit Breakers.

11 / 73

Page 12: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Timeouts, Retries, Exponential Backo�gh:Netflix/Histrix

Realtime Operations

Realtime monitoring and configuration changes.

Watch service and property changes take effect immediately.

12 / 73

Page 13: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Timeouts, Retries, Exponential Backo�gh:Netflix/Histrix

Concurrency

Parallel execution.

13 / 73

Page 14: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

New Kinds of ErrorsLeaky Abstractions

Timeouts

Transport Errors

Encoding/Parsing Errors

API Versioning

14 / 73

Page 15: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Beware of the Distributed Monolith

15 / 73

Page 16: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Fallacies of Distributed ComputingThe network is reliable.Latency is zero.Bandwidth is infinite.The network is secure.Topology doesn't change.There is one administrator.Transport cost is zero.The network is homogeneous.

16 / 73

Page 17: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Partial Failure

17 / 73

Page 18: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Gray FailureWhen at least one app makes the observation

That the system is unhealthy

But the observer observes

That the system is healthy.

18 / 73

Page 19: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Two Generals ProblemPitfalls and design challenges of attempting to coordinate an

action by communicating over an unreliable link.

19 / 73

Page 20: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

First computer communication problem to be proved to beunsolvable.

20 / 73

Page 21: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

FLP Imposibility ResultIn an asynchronous network

21 / 73

Page 22: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

FLP Imposibility ResultIn an asynchronous network

Where messages may be delayed but not lost

22 / 73

Page 23: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

FLP Imposibility ResultIn an asynchronous network

Where messages may be delayed but not lost

There is no consensus algorithm that is guaranteed toterminate in every execution for all starting conditions

23 / 73

Page 24: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

FLP Imposibility ResultIn an asynchronous network

Where messages may be delayed but not lost

There is no consensus algorithm that is guaranteed toterminate in every execution for all starting conditions

If at least one node may fail-stop.

24 / 73

Page 25: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

It's about consensus

Deals with ‘faulty nodes’

Nodes that aren’t receiving the messages that are being sent tothem are failed (Exempt from having to achieve consensus)

Partitioned node in FLP does not have to achieve consensus,

Since it is considered failed, but the same node in CAP must

25 / 73

Page 26: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Therefore it’s not possible to say whether a processor hascrashed or is simply taking a long time to respond.

The FLP result shows that in an asynchronous setting, whereonly one processor might crash,

There is no distributed algorithm that solves the consensusproblem.

26 / 73

Page 27: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

CAP theorem

27 / 73

Page 28: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

CAP theorem

28 / 73

Page 29: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Brewer’s Conjecture and the Feasibility of Consistent,Available, Partition-Tolerant Web ServicesIn an asynchronous network

Where messages may be lost

It is impossible to implement a sequentially consistent atomicread/write register

That responds eventually to every request under everypattern of message loss.

29 / 73

Page 30: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

It's about serialized atomic objects (registers)

Deals with ‘partitions’

Nodes that aren’t receiving the messages that are being sent tothem are only partitioned

A CAP solution requires that any live node be able to correctlyserve requests, even if it has not received any messages

30 / 73

Page 31: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

That A, it doesn't mean what you thing it meansAvailability refers to a liveness property of an algorithmwhere every request to a non-failing node must eventuallyreturn a valid response.

Not Availability of the system, the system can fail for otherreasons.

Don’t Settle For Eventual Consistency

The Limits of the CAP Theorem

31 / 73

Page 32: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Scalability! But at what COST?COST of distributed systems: the Configuration that

Outperforms a Single Thread

32 / 73

Page 33: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

33 / 73

Page 34: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

34 / 73

Page 35: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Scalability! But at what COST?Many published systems have unbounded COST

(They never outperform the best single threaded application)

Others are orders of magnitude slower even when usinghundreds of cores.

35 / 73

Page 36: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

36 / 73

Page 37: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Lord, grant me the strength to accept systems that can run inone node/process,

37 / 73

Page 38: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Lord, grant me the strength to accept systems that can run inone node/process,

the courage to handle the distributed systems I have to,

38 / 73

Page 39: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Lord, grant me the strength to accept systems that can run inone node/process,

the courage to handle the distributed systems I have to,

and the wisdom to know the difference.

39 / 73

Page 40: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

But ...

40 / 73

Page 41: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Cars are distributed systems"Analysts predict that the on-board computing power of anormal saloon will increase by 100x from 2016 to 2025,powering ADAS and IVI functions."

"ADAS combines information from the many sensors dottedall over the car, feeding into a large processing unit thatmakes sense of the data, and makes decisions in real time.These sensors include radar, lidar, ultrasonic and cameras"

The future of automotive is coming faster than you think

41 / 73

Page 42: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

What is this?"Each core has an integrated network interface and a router,with each router connected to the four routers around it ....There are algorithms designed to reduce congestion, ... but abasic system will have buffers and queues and will knowhow busy the local network congestion is."

42 / 73

Page 43: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

What is this?"Each core has an integrated network interface and a router,with each router connected to the four routers around it ....There are algorithms designed to reduce congestion, ... but abasic system will have buffers and queues and will knowhow busy the local network congestion is."

Your new CPU

Intel Skylake-X: The New Core-to-Core CommunicationParadigm

43 / 73

Page 44: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

You need at least 2 computers for availability

44 / 73

Page 45: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Other Distributed SystemsData Store*Mobile AppsData Processing Pipeline*IoTMicroservicesCurrency*Games*

45 / 73

Page 46: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

What to do about those?We have to answer at least this questions:

Who Does This?Who Knows This?When did This Happen?

And detect problems as soon as posible

46 / 73

Page 47: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Who Does This?

47 / 73

Page 49: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Shameless PlugThe Little Riak Core Book

49 / 73

Page 50: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Distributed Virtual ActorsOrleans - Virtual Actors

Erlang: gh:SpaceTime-IoT/erleans

50 / 73

Page 51: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Distributed "Transactions"Sagas

gh:mrallen1/gisla

51 / 73

Page 52: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Spark - Resilient Distributed Datasets: A Fault-TolerantAbstraction for In-Memory Cluster Computing

Spark Streaming - Discretized Streams: Fault-TolerantStreaming Computation at Scale

52 / 73

Page 53: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Who Knows This?

53 / 73

Page 55: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

HyParView a membership protocol for reliable gossip-basedbroadcast

Erlang: lasp/partisan

Epidemic Broadcast Trees

Erlang: plumtree

55 / 73

Page 57: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

A Conflict-Free Replicated JSON Datatype

57 / 73

Page 58: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Lasp

Lasp is a suite of libraries aimed at providing acomprehensive programming system for planetary scale Elixirand Erlang applications.

@cmeik

58 / 73

Page 59: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Merkle TreesGit, IPFS, riak_core_metadata AAE

How does node 3 gets the values broadcasted while he wasdown?

Gossip protocols, Epidemic Broadcast and EventualConsistency in Practice

59 / 73

Page 60: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

60 / 73

Page 61: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Distributed Hash Tables

Bittorrent, IPFS, Erlang global*

Also: Consistent Hashing

gh:jlouis/dht

61 / 73

Page 62: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

When did This Happen?

62 / 73

Page 63: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Time, clocks and the ordering of events in a distributedsystem

Virtual Time and Global States of Distributed Systems

Dotted Version Vectors: Efficient Causality Tracking forDistributed Key-Value Stores

ACM: Why Logical Clocks are Easy

63 / 73

Page 64: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Atomic Clocks!Inside Cloud Spanner and the CAP Theorem

64 / 73

Page 65: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Avoiding Problems

65 / 73

Page 66: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Simple testing can prevent most critical failures

Early detection of configuration errors to reduce failuredamage

66 / 73

Page 68: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Learn TLA

TLA+ in Practice and Theory Part 1: The Principles of TLA+

68 / 73

Page 69: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

A = foo()B = bar(A)do_something(A, B)

Life was simpler, wasn't it?

Let's enjoy single node systems... while we can :)

69 / 73

Page 70: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

ResourcesAphyr's Distributed Systems Class Notes

Designing Data-Intensive Applications

70 / 73

Page 71: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

PeopleAdrian Colyer @adriancolyer

Aphyr @aphyr

Christopher Meiklejohn @cmeik

Eric Brewer @eric_brewer

Peter Alvaro @palvaro

Peter Bailis @pbailis

71 / 73

Page 72: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Thanks

72 / 73

Page 73: Sistemas Distribuidos: ¿Para Qué?€¦ · Sistemas Distribuidos: ¿Para Qué? Mariano Guerra @warianoguerra instadeq.com @instadeq Erlang Factory Light Buenos Aires 2017 F

Swarm Intelligence: http://ncase.me/fireflies/

73 / 73