Quiero construir una aplicación informática distribuida en Python. ¿Cómo aprendo y por dónde empiezo?

Hay muchas partes en una aplicación distribuida eficiente. No tomaré la ruta fácil y te diré que aprendas Go u Rust, ya que no tengo la intención de comenzar un idioma. Me atendré a Python para asesorarte.

  1. Cola de tareas : así es como almacenará las tareas para hacer. La estructura de datos de la cola es FIFO (Primero en entrar, primero en salir), por lo que será perfecto para realizar un seguimiento de las tareas que debe realizar en la red distribuida. Un buen lugar para comenzar es el apio [1]. El apio mismo se distribuye, lo que debería jugar en su arquitectura de sistemas distribuidos.
  2. Thread Spawner : en cada máquina, querrá que se ejecuten varias cosas al mismo tiempo (paralelización). Para esto, puede usar la biblioteca de multiprocesamiento de Python [2]. Es muy bueno en lo que hace.
  3. Balanceador de carga : este componente es crucial. Toma tareas de la cola de tareas y las asigna a una máquina (que luego generará engendro). Lo hace para equilibrar la carga de trabajo. (Esto a menudo se integra con las colas de tareas).
  4. Conocimiento de cómo hacer que Python funcione : hay muchas técnicas que aceleran Python en una cantidad tremenda, como Generadores e Iteradores. Aprende estos. Para este tema, sugeriría leer Python de alto rendimiento.

Notas al pie

[1] Apio: Cola de tareas distribuidas

[2] 16.6. multiprocesamiento – Interfaz de “subprocesos” basada en procesos – Documentación de Python 2.7.14rc1

La forma más fácil de hacer esto es llevar a cuestas encima de un marco que resuelva los problemas profundos por usted.
Su mejor apuesta para un primer paso, entonces, es ejecutar algunos tutoriales para codificar trabajos por lotes apache spark en python.

Comience aprendiendo Erlang … la herramienta adecuada para el trabajo correcto.