Il message-passing per più di dieci anni è stata la soluzione di riferimento per affrontare le sfide e l'implementazione di un sistema distribuito: problemi di rete, forte accoppiamento fra nodi, eterogeneità delle applicazioni (diversi linguaggi di programmazione).
Questo talk tratterà le soluzioni per costruire un'architettura orientata ai servizi (SOA) ed effettuare message-passing in maniera performante ed affidabile; ripercorreremo insieme i concetti e le tecnologie principali che sono alla base dei sistemi distribuiti.
3. Agenda
● Who funk is Andrea Rabbaglietti
● Disclaimer
● Pre-requisites
○ Agentful vs. Agentless
○ Scale Up Vs. Scale Out
○ Sync Vs. Async
● IPC / Language interoperability
● Channel
○ HTTP RESTful
○ Custom
● Use Case: Facebook
● One (working & in-production) example
4. Who funk is Andrea Rabbaglietti
● Computer Science @ DIB alumnus
● ex-CTO Bauzaar.it
● co-founder Serverable.io
● founder JetDeploy.io
● Django Framework contributor
● Software/System Engineer
● Business coach & tutor
9. Scale up
● Make a single node as fast as possible
● Increase clock speed
● Add RAM
● Make disk I/O go faster
10. Scale out
● Make many nodes work together
● Manage the distributed nodes
● Let the system be fault-tolerant
● Learn how to divide your problems into
independent subproblems
But is that
possible?
11. Stateful Vs. Stateless
class MyClass:
i = 12345
def f(self):
return 'hello world: ' + self.i
class MyClass:
def f(self):
i = 1234
return 'hello world: ' + self.i