¿Puede desarrollar una competencia decente en sistemas distribuidos por su cuenta en su computadora portátil o necesita una infraestructura distribuida real para jugar?

Tiendo a estar de acuerdo con las respuestas de Jeff Darcy y Abhishek Chanda: puedes hacer un trabajo significativo en un sistema existente, pero desarrollar una comprensión de cómo funcionan los sistemas a escala requiere, bueno, escala. Es difícil, si no totalmente imposible, juzgar el rendimiento, la carga y las características de falla de un sistema a escala hasta que ya haya estado allí y haya lidiado con muchas fallas.

Hablando de fallas, una de las cosas más importantes cuando se construye un sistema distribuido es un buen monitoreo y alerta, razón por la cual empresas como PagerDuty han tenido tanto éxito en los últimos tiempos. La peor falla posible en un sistema es de tipo silencioso, y a menos que preste mucha atención a la construcción de buenos controles de salud, es muy posible que un sistema permanezca en mal estado durante horas o incluso días. Supongo que simular ese tipo de comportamiento en una computadora portátil no es imposible con el uso inteligente de redes y contenedores virtualizados, pero si alguien ha construido un sistema de este tipo, nunca he oído hablar de él.

Necesita una infraestructura real distribuida. Es posible hacer un trabajo significativo de sistema distribuido en una sola máquina, pero solo si ya está familiarizado con todos los modos de falla del sistema, y ​​solo obtendrá esa familia en un sistema real. Desafortunadamente, no existe una solución “enlatada” que simule todos esos modos de falla para usted. Creo que tal cosa sería posible, y sería genial tenerla, pero hasta ahora no ha aparecido.

Decente, si. Genial no.

Lo que pasa con los sistemas distribuidos es que fallan de maneras inesperadas. Su computadora portátil, al ser un entorno estrictamente controlado, puede pasar por alto esas fallas. Su computadora portátil funcionará bien mientras aprende cosas, pero en algún momento debe pasar a una configuración de desarrollo que reproduzca su entorno de destino lo más cerca posible.

Sí, para aprender puedes usar tu propia computadora portátil. La mejor opción es usar Oracle VM VirtualBox. Crea tantos nodos como quieras y juega con ellos.