spacer
« Back to posts
  • Edit
  • Delete
  • Tags
  • Autopost
 

Catch the Replay - Build reliable, traceable, distributed systems with ZeroMQ

We're happy to share Jerome Petazzoni's talk from March 9th at PyCon 2012. 

  • Build reliable, traceable, distributed systems with ZeroMQ
We will show how to build simple yet powerful RPC code with ZeroMQ, with very few (if any!) modification to existing code. We will build fan-in and fan-out topologies with ZeroMQ special socket types to implement PUB/SUB patterns and scale up job-processing tasks. Thanks to introspection, the resulting services will be self-documented. Finally, we will show how to implement distributed tracing.

Abstract

We will show how to leverage ZeroMQ to build a simple yet powerful RPC for Python code. We will focus on simplicity, the goal being to expose almost any Python module or class to network calls – with very few (if any!) modification to existing code.

We will then explain the purpose and show some use-cases for ZeroMQ special socket types (PUSH/PULL, PUB/SUB, ROUTER/DEALER) to build fan-in and fan-out topologies, as well as asynchronous processing (to avoid blocking when doing long-running requests). A by-product is the ability to scale up job-processing tasks with a message queue, which can even be made broker-less (you don’t have to deploy heavy machinery if you don’t need it).

We will also demonstrate how introspection can make development and debugging easier, exposing docstrings, and provideing a few command-line helpers to poke, debug, and experiment directly from the shell.

At the end of the talk (or in a separate talk), we will explain how to implement a tracing framework for distributed RPC. By hooking into the right places, we will show how to get full tracebacks and profiling information; more precisely:

  • how each complex call (involving multiple subcalls) can be accurately traced;
  • how to handle exceptions, and know easily when and where they happened (without checking dozens of log files);
  • which complex calls take too long, and where they spend their time (distributed profiling).

Those guidelines are the result of an on-going development work at dotCloud, and actively used and implemented at the core of our leading Platform-as-a-Service offering.

We don’t expect the audience to be familiar with ZeroMQ or RPC. However, it will certainly help to have basic knowledge of serialization (e.g. pickle) and sockets.

 

Tweet
Posted March 12, 2012 by elena0314  spacer
Mar 15, 2012
spacer
odinchen said...
Looking forward to more progress of DotCloud. I wonder when the front page of DotCloud can be cooler than Heroku though.
Mar 21, 2012
spacer
MSAbramo said...
Great presentation! You guys might be interested in some notes which I recently posted for the presentation at readthedocs.org/docs/pycon-2012-notes/en/latest/dotcloud_zerorpc.html
gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.