En nuestro afán de traerte todas las definiciones del mundillo de la tecnología hemos contratado un sherpa, con gemelos de acero, que recorre los confines del Himalaya recabando la información más exclusiva e inaccesible de templo en templo. Porque lo sabe todo quisqui, los mayores secretos de la tecnología los guardan los monjes de monasterios como los de Rizong, Jammu o Cachemira, no Internet. Por eso, hoy, en el blog de Pandora FMS, recién llegado desde el subcontinente indio, te revelamos la verdad sobre los sistemas distribuidos.
Sistemas distribuidos: características y mejores prácticas
Abrimos el polvoriento pergamino de Sherpi, El Sherpa, y ¡Al lío!
Un sistema distribuido es un entorno informático que abarca múltiples dispositivos, coordinando sus esfuerzos para completar un trabajo de forma mucho más eficiente que si fuera con un solo dispositivo.
Los sistemas distribuidos ofrecen muchas ventajas sobre los entornos informáticos tradicionales, como la reducción de riesgos al evitar un único punto de fallo, la mejora de la fiabilidad y el aumento de la escalabilidad.
Sin embargo, también conllevan su propio conjunto de riesgos y desafíos.
Elementos de los sistemas distribuidos
Los sistemas distribuidos están diseñados para operar a través de Internet, y las implementaciones más comunes implican el uso de la computación en nube.
Un sistema distribuido comienza con una tarea, que es gestionada por una aplicación que la divide en partes.
Por ejemplo, un editor de vídeo en un ordenador cliente puede dar a una docena de ordenadores diferentes (o nodos) un fotograma de un vídeo para completar el renderizado.
Una vez completado el fotograma, la aplicación gestora da al nodo un nuevo fotograma en el que trabajar.
Este proceso continúa hasta que el vídeo está terminado y todas las piezas vuelven a juntarse.
Este sistema puede escalarse hasta cientos o miles de nodos, que pueden completar en minutos una tarea que a un solo ordenador le habría llevado días.
Tipos de sistemas distribuidos
Existen muchos modelos y arquitecturas de sistemas distribuidos, incluidos los sistemas client-server, las redes entre iguales, las redes de telefonía móvil y las instancias de servidor virtual basadas en la nube.
Los sistemas client-server son el tipo más tradicional y sencillo de sistema distribuido, en el que varios ordenadores conectados en red interactúan con un servidor central para almacenar datos, procesarlos o realizar cualquier otro objetivo común.
Las redes de telefonía móvil son un tipo avanzado de sistema distribuido que comparte cargas de trabajo entre terminales, sistemas de conmutación y dispositivos basados en Internet.
Las redes peer-to-peer distribuyen cargas de trabajo entre cientos o miles de ordenadores que ejecutan el mismo software.
Las instancias de servidor virtual basadas en la nube son las formas más comunes de sistemas distribuidos en la empresa hoy en día, ya que transfieren cargas de trabajo a decenas de instancias de servidor virtual basadas en la nube que se crean según sea necesario y se terminan cuando la tarea se ha completado.
Características clave de los sistemas distribuidos
Los sistemas distribuidos se caracterizan por su:
- Escalabilidad.
- Concurrencia.
- Disponibilidad/tolerancia a fallos.
- Transparencia.
- Heterogeneidad.
- Replicación.
Como sabes, la escalabilidad es la capacidad de crecer a medida que aumenta el tamaño de la carga de trabajo, lo que se consigue añadiendo unidades de procesamiento o nodos adicionales a la red según sea necesario.
La concurrencia alude a los componentes del sistema distribuido que se ejecutan simultáneamente, caracterizándose por la falta de un “reloj global”, donde las tareas ocurren fuera de secuencia y a diferentes ritmos.
La disponibilidad/tolerancia a fallos nos habla de que si un nodo falla, los nodos restantes pueden seguir funcionando sin interrumpir el cálculo global.
Transparencia significa que un programador externo o un usuario final ve un sistema distribuido como una única unidad computacional y no como sus partes subyacentes.
Heterogeneidad, que los nodos y componentes son a menudo asíncronos, con hardware, middleware, software y sistemas operativos diferentes.
La replicación permite compartir información y mensajes, garantizando la coherencia entre recursos redundantes, como componentes de software o hardware, mejorando la tolerancia a fallos, la fiabilidad y la accesibilidad.
Rastreo distribuido
-Sigue leyendo, Sherpi:
*Traducción literal de una mística y remota lengua tibetana:
-“El rastreo distribuido es un método para monitorizar aplicaciones construidas sobre una arquitectura de microservicios que se despliegan habitualmente en sistemas distribuidos.
Un sistema de seguimiento supervisa el proceso paso a paso, ayudando a los desarrolladores a descubrir errores, cuellos de botella, latencia u otros problemas con la aplicación.
El seguimiento distribuido es necesario debido a la complejidad de las arquitecturas de software modernas.
Está diseñado para operar en una infraestructura de servicios distribuidos, donde puede rastrear múltiples aplicaciones y procesos simultáneamente a través de numerosos nodos y entornos informáticos concurrentes.”
-Gracias, Sherpi.
-A mandar.
Riesgos y ventajas de los sistemas distribuidos
Como hemos visto, este tipo de sistemas ofrecen muchas y variadas ventajas, como una mayor eficiencia, escalabilidad, fiabilidad…
Sin embargo, también conllevan riesgos, como las vulnerabilidades de seguridad, el aumento de la complejidad y la posibilidad de pérdida de datos.
-“Las vulnerabilidades de seguridad pueden surgir debido a la naturaleza distribuida del sistema, lo que hace más difícil asegurar y supervisar todos los componentes”.
-Muy bien explicado, Sherpi.
-Tshe lo.
Dijo finalmente el sherpa desapareciendo entre una nube de humo explosivo.
Conclusión
Puede parecer que los sistemas distribuidos extienden demasiado la potencia de cálculo, pero en realidad la hacen llegar más lejos.
Con la capacidad de escalar rápidamente y coordinar múltiples nodos, los sistemas distribuidos son como el ejercicio definitivo de formación de equipos para ordenadores.
Y seamos sinceros, si los ordenadores tuvieran que participar en esos ejercicios de pérdida de confianza que los humanos tenemos que soportar en los eventos de formación de equipos, probablemente fracasarían estrepitosamente.
Así que limitémonos a los sistemas distribuidos y dejemos las pérdidas de confianza para los humanos.

Dimas P.L., de la lejana y exótica Vega Baja, CasiMurcia, periodista, redactor, taumaturgo del contenido y campeón de espantar palomas en los parques. Actualmente resido en Madrid donde trabajo como paladín de la comunicación en Pandora FMS y periodista freelance cultural en cualquier medio que se ofrezca. También me vuelvo loco escribiendo y recitando por los círculos poéticos más profundos y oscuros de la ciudad.
Dimas P.L., from the distant and exotic Vega Baja, CasiMurcia, journalist, editor, thaumaturgist of content and champion of scaring pigeons in parks. I currently live in Madrid where I work as a communication champion in Pandora FMS and as a freelance cultural journalist in any media offered. I also go crazy writing and reciting in the deepest and darkest poetic circles of the city.