Я хочу иметь возможность распространять пакеты файлов, около 500 МБ на пакет, на все машины в корпоративной «экстрасети» (которая в основном представляет собой несколько локальных сетей, подключенных с использованием различных частных механизмов, включая выделенные линии и VPN).
Общее количество хостов составляет примерно 100, и цель состоит в том, чтобы надежно, быстро и эффективно получить копию пакета с одного хоста на все другие хосты. Одна важная проблема заключается в том, что некоторые хосты группируются в одной быстрой локальной сети, и в этом случае сетевой ввод-вывод должен выполняться один раз из одной группы в другую, а затем в каждой группе между всеми узлами. Это в отличие от строгой системы центрального сервера, где несколько хостов могут получать один и тот же пакет по медленному каналу, а не один раз по медленному каналу, а затем между собой быстро.
Новый пакет будет создаваться каждые несколько дней, а иногда старые пакеты будут удаляться (но эту проблему можно решить отдельно).
На рассматриваемых машинах установлены последние версии Linux, но бонусные баллы будут предоставляться решениям, которые хотя бы несколько кроссплатформенны (в этом случае комплект может отличаться для разных платформ, но, возможно, может использоваться один и тот же механизм).
Вот и все. Я не против написания некоторого кода, чтобы справиться с этим, но было бы предпочтительнее, если бы это был bash, Python, Ruby, Lua, C или C ++.