Blog | Data Analytics | Data Engineering

¿Qué son y cómo funcionan los sistemas distribuidos?

Desde hace algunos años, los sistemas distribuidos se convirtieron en un estándar para quienes trabajamos con datos. En este artículo explicamos, de manera muy sencilla, qué son, cómo evolucionaron, cómo funcionan y cómo saber cuál necesitamos.

¿Qué son los sistemas distribuidos?

Los sistemas distribuidos son un conjunto de computadoras o servidores que trabajan de forma coordinada como si fueran una sola. Podríamos pensarlos como si fueran una orquesta en la cual hay diferentes instrumentos que suenan de forma armónica como un todo.

En data & analytics hoy es un estándar trabajar con sistemas distribuidos porque es la única forma que tenemos de escalar y de almacenar volúmenes casi infinitos de datos a una forma costo-efectiva.

Algunas de las tecnologías que utilizan procesamiento distribuido en la actualidad son: Databricks, Spark, Hadoop, Cloudera, Presto, entre otras.

¿Cómo evolucionaron los sistemas distribuidos?

Con el paso del tiempo, las tecnologías que usamos en data & analytics evolucionaron desde aquellas que tenían un propósito general (cuando usábamos una misma herramienta para hacer todo) a herramientas de propósito específico (una herramienta para cada tarea). Es por eso que ya no hablamos de herramientas, sino que directamente nos referimos a stacks tecnológicos.

Para simplificar la complejidad asociada al procesamiento de grandes volúmenes de datos y para dar respuesta a las necesidades de datos que hoy tienen las personas usuarias de negocio, que cada vez demandan más información, no solo tuvimos que repensar la forma de trabajo sino también las herramientas.

Los sistemas distribuidos surgen como una solución a los dos principales problemas que generó el data warehouse: la necesidad de almacenar más información (y más detallada) junto con la lentitud de reacción (en este artículo los explicamos en detalle).

Si bien los sistemas distribuidos datan de los años sesenta, fue en 2009 que surgió el proyecto Spark con el objetivo de resolver el problema de la capacidad de almacenamiento de datos y la capacidad de cómputo, ambas muy restringidas hasta el momento.

¿Cómo funciona un sistema distribuido?

Cualquier sistema distribuido es un conjunto de componentes que permiten almacenar, procesar y administrar recursos. Se dice que tienen una capacidad de almacenamiento y de procesamiento –virtualmente—infinita porque constantemente se pueden agregar nuevos servidores.

Hay dos formas de escalar:

  • Vertical: en caso que el servidor necesite más capacidad, se le agrega más memoria, más procesadores o también se puede cambiar el servidor por uno más potente.
  • Horizontal: en este caso, lo que hacemos es crear nuevos clusters (que son conjuntos de servidores más pequeños), se trata de agregar un servidor al lado del otro para que trabajen de forma coordinada como si fueran una única máquina.
Computación tradicional vs. computación distribuida
Computación tradicional vs. computación distribuida.

Veamos esto a partir de un ejemplo: en nuestra empresa solo tenemos un gran servidor y falla. En ese caso nos quedaremos sin nada hasta repararlo o reemplazarlo. Para evitar esto, decidimos tener dos servidores, uno “titular” y otro “suplente”. Esto, a priori, nos resguardaría ante eventuales fallas, sin embargo, tener un servidor de esa magnitud en desuso, sería un desperdicio de capital. Para evitar esto, lo que se puede hacer es poner los dos servidores a trabajar y, en caso de que alguno falle, nos queda el otro. Tiene sentido.

Pero, ¿qué pasa si el negocio empieza a escalar y ya no damos abasto con los dos servidores? Inevitablemente tendremos que comprar un tercer servidor o reemplazar uno de los otros por alguno con mayor capacidad. Recordemos que cada vez que hagamos algún tipo de movimiento con el o los servidores tendremos costos asociados.

En este punto los sistemas distribuidos aparecen como una solución. Pensemos que, si en lugar de tener un solo servidor muy potente tenemos muchos servidores más pequeños, si algo llegara a fallar, muy probablemente no nos enteraríamos ya que la pérdida de capacidad sería marginal. Además, cada uno de ellos tiene un costo mucho menor. Son equipos más normales y eso abarata los costos porque hace que no tengamos que invertir grandes sumas en servidores tan grandes.

Los sistemas distribuidos proponen trabajar por medio de clusters que son conjuntos de servidores que se pueden usar para diferentes propósitos. Este esquema permite:

  • Tener una gran tolerancia a fallos.
  • Ganar escalabilidad, ya que podemos agregar o quitar equipos según la necesidad.
  • Reducir de costos.
Ejemplo de procesamiento en un sistema distribuido en Hadoop
Ejemplo de procesamiento en un sistema distribuido en Hadoop.

Si tenemos, por ejemplo, tres archivos que almacenar, el sistema distribuido los divide y envía cada uno de ellos a un bloque. A su vez, esos bloques los divide en diferentes nodos. Entonces cada bloque forma parte de varios nodos, por ende, si se pierde un nodo, no perdemos información y ahí radica lo más interesante de esta forma de almacenamiento.

De esta manera, los tiempos de lectura son mucho más rápidos y el sistema es más eficiente. Sin embargo, no todo es tan simple ya que administrar y configurar este tipo de clusters es complejo.

La nube nos ayuda a resolver esto al ofrecer el software como servicio (SaaS), de esta manera la complejidad de la configuración no es nuestro problema sino del proveedor de servicios en la nube que utilicemos (Microsoft, AWS, Google, etc.) Nosotros simplemente tenemos que dar instrucciones: qué tipo de cluster necesitamos, qué cantidad de nodos, en qué horario tiene que funcionar, qué storage, etc. De esta manera, con solo algunos clics, ya tendremos el cluster listo para funcionar y lo único que tendremos que hacer es empezar a cargar con datos.

¿Cómo saber qué tipo de sistema distribuido necesito?

Hoy en día hay muchos tipos de sistemas distribuidos. Al momento de evaluar cuál es el más apropiado para la empresa, no hay una respuesta única ya que todo va a depender del tipo de organización, del propósito principal, de los volúmenes de datos, los picos de demanda, etc.

Al momento de empezar a pensar esto, recomendamos responder las siguientes preguntas:

  • ¿Cuál es el volumen de los datos que tengo?
  • ¿Cuál es el presupuesto disponible?
  • ¿Cómo tenemos pensado escalar?
  • ¿Cómo serán los ambientes?
  • ¿Cómo son los picos de demanda?
  • ¿Cuál es el mínimo y el máximo que necesito?
  • ¿Tengo restricciones en el tiempo de procesamiento?
  • ¿Cuáles son las ventanas de baja demanda?

Definir todo esto al comienzo es clave. Tengamos en cuenta que, después todo esto habrá que administrarlo.
No importa el tamaño de la empresa, hoy cualquiera puede acceder a una capacidad de procesamiento que, antes, estaba reservada para muy pocos. Antes era necesario hacer grandes inversiones, hoy solo necesitamos la tarjeta de crédito, saber configurar el cluster y —lo más difícil— contar con el talento y la visión de negocio necesarios para desarrollar este tipo de proyectos.


* Este contenido fue publicado originalmente en Datalytics.com. Datalytics y Lovelytics se fusionaron en enero de 2025.

Author

Artículos relacionados

Nov 19 2025

Por qué el equipo de LATAM elige trabajar en Lovelytics

El equipo de Lovelytics LATAM está formado por personas de distintos países, culturas y zonas horarias que —desde Cali hasta la Patagonia— trabajan en equipo para...
Sep 04 2025

Databricks reconoce a Lovelytics LATAM como el partner del año en Unity Catalog

En la edición 2025 del LATAM Partner Forum celebrado en Brasil, Databricks reconoció a Lovelytics LATAM como el partner del año en la categoría Unity Catalog....
Ago 26 2025

Nueva marca, a partir de hoy somos Lovelytics LATAM

Hoy cambiamos el nombre de nuestra marca. Desde ahora somos Lovelytics LATAM.  Oficializamos el cambio que anticipamos en enero después de meses de...
Jun 24 2025

¿Qué es y cómo usar AI/BI Genie de Databricks?

AI/BI Genie es un agente que nos permite conversar con los datos. En este artículo explicamos qué desafíos resuelve, cuánto cuesta y explicamos cómo usarla a partir de...
May 07 2025

¿Qué es AI/BI Dashboard de Databricks?

En este artículo explicamos qué es AI/BI Dashboard de Databricks, para qué tipo de perfiles está pensada, en qué circunstancias conviene usarla y cuándo es recomendable...
Ene 21 2025

¿Qué es Apache Spark y cómo funciona?

Apache Spark es un tipo de tecnología que utiliza sistemas distribuidos. En este artículo explicamos qué es, cuáles son los conceptos clave a tener en cuenta y te...
Dic 06 2024

¿Qué es Staff Augmentation?

En este artículo explicamos qué es el Staff Augmentation de equipos de datos, qué problemas viene a resolver y cuáles son sus principales beneficios. ¿Qué problemas...
Nov 26 2024

Ingeniería de datos: ¿Cómo hacer un plan de pruebas?

En este artículo explicamos cómo hacer un plan de pruebas mínimo en ingeniería de datos. Hablamos de la importancia de asegurar la calidad de los procesos con un plan...
Nov 14 2024

Arquitectura de datos moderna con AWS, ¿Cómo construirla?

En este artículo explicamos cómo construir una arquitectura de datos moderna con AWS. Además, describimos cómo es el ecosistema de servicios que ofrece para los...
Oct 07 2024

¿Qué es un data lakehouse?

En este artículo explicamos qué es un data lakehouse, qué problemas viene a resolver y cuáles son sus principales características. Además, desarrollamos el concepto de...