Los sistemas distribuidos son sistemas informáticos en los que varios sistemas informáticos trabajan juntos de manera efectiva como una sola unidad. Los ejemplos de sistemas distribuidos incluyen redes de distribución de contenido utilizadas para servir sitios web y videos en línea, supercomputadoras construidas con múltiples procesadores matemáticos potentes y bases de datos distribuidas utilizadas en muchos sistemas en línea. Los sistemas distribuidos pueden ser más resistentes, más potentes y más rápidos que los sistemas de una sola computadora, pero también pueden requerir más mantenimiento y una cuidadosa reflexión sobre la organización y los problemas que pueden salir mal.

Vista superior a través del cristal del ingeniero informático que trabaja con una computadora portátil en un centro de datos lleno de servidores activos en rack

Ventajas de un sistema distribuido

Existen varias ventajas potenciales al usar un sistema distribuido. Una de las más fáciles de entender es la redundancia y la resistencia. Si una empresa está prestando servicios a su sitio web desde un conjunto distribuido de servidores, en lugar de un solo servidor, puede mantenerse activa incluso si un servidor falla físicamente. Si los datos se distribuyen entre múltiples servidores o discos, una ocurrencia común en los sistemas distribuidos modernos, puede que no haya ninguna pérdida de datos, incluso si un dispositivo de almacenamiento deja de funcionar.

Distribución de velocidad y contenido

Los sistemas distribuidos también pueden ser más rápidos que los sistemas de una sola computadora. Una de las ventajas de una base de datos distribuida es que las consultas se pueden enrutar a un servidor con la información de un usuario en particular, en lugar de que todas las solicitudes tengan que ir a una sola máquina que se pueda sobrecargar.

Las solicitudes también se pueden enrutar a servidores físicamente cercanos o en una conexión de red rápida a quien quiera los datos, lo que puede significar menos tiempo y otros recursos asignados para tratar el tráfico de red y los cuellos de botella. Esa es una ocurrencia común en las redes de distribución de contenido utilizadas para los medios en línea.

Escalado y Paralelismo

Una vez que los sistemas distribuidos están configurados para distribuir datos entre los servidores involucrados, también pueden ser fácilmente escalables. Si están bien diseñados, puede ser tan simple como agregar un nuevo hardware y decirle a la red que lo agregue al sistema distribuido.

Los sistemas distribuidos también pueden diseñarse para el paralelismo. Esto es común en operaciones matemáticas para cosas como el modelado del clima y la computación científica, donde múltiples procesadores poderosos pueden dividir partes independientes de simulaciones complejas y obtener la respuesta más rápido de lo que lo harían en serie.

Retos de computación distribuida

Un gran desafío con la informática distribuida es que puede ser difícil para los programadores razonar. Puede haber desafíos en cómo distribuir datos para garantizar que se cumplan los requisitos de resistencia en diversas condiciones inesperadas.

Si los dispositivos necesitan sincronizarse, puede haber errores difíciles de detectar que provocan que se esperen unos a otros para transmitir datos o accidentalmente intenten leer o escribir el mismo dato al mismo tiempo, causando errores.

La seguridad y la privacidad también pueden convertirse en un problema con los sistemas distribuidos, ya que los datos de las personas se almacenan en varias computadoras, a veces en múltiples ubicaciones físicas. Los sistemas distribuidos también pueden ser excesivos para algunas tareas, utilizando más recursos físicos y tiempo de ingeniería del necesario.