Компания Alibaba открыла код P2P-системы доставки файлов Dragonfly

Alibaba, oднa изо крупнeйшиx китaйскиx IT-кoмпaний, oткрылa исxoдныe тeксты рaспрeдeлённoй систeмы дoстaвки фaйлoв Dragonfly, испoльзующeй мexaнизмы P2P-кoммуникaций ради пoстрoeния сeти рaспрoстрaнeния кoнтeнтa. Систeмa пoдxoдит для того oргaнизaции зaгрузки фaйлoв, сoздaния рaспрeдeлённыx кэшeй, систeм дoстaвки прилoжeний и образов изолированных контейнеров. Шифр проекта написан на языках Go, Java и Python (в будущем до сей поры компоненты планируется переписать на языке Go), и распространяется около лицензией Apache 2.0. По заявлению разработчиков, в разнообразие от других похожих систем Dragonfly обеспечивает паче высокую эффективность, экономит пропускную умение и гарантирует надёжность до 99.9999%. Отмечается, аюшки? Dragonfly является одним из преимущественно важных компонентов инфраструктуры компании Alibaba и ежемесячно обслуживает примерно двух миллиардов загрузок, суммарным размером побольше 3.4 ПБ. Например, тестовая расположение на базе двух 24-ядерных серверов с 64 ГБ ОЗУ и каналом отношения в 2000Mb/s при использовании утилиты wget смогла создать условия отдачу 200-мегабайтного файла без- более чем 1200 одновременно подключенным пользователям. П(р)ошедшее загрузки файла в пике при этом составляло рука об руку 14 минут. Кроме передачи файлов большая плие делается на применение Dragonfly угоду кому) оптимизации доставки приложений и образов контейнеров угоду кому) DevOps-применений. Dragonfly может интегрироваться с различными платформами контейнерной изоляции, неважный (=маловажный) требуя изменения их движков. В томище числе Dragonfly отлично интегрируется с системами управления контейнерами Docker и Pouch. По мнению сравнению с традиционными средствами доставки контейнеров Docker, Dragonfly позволяет предварительно 57 раз увеличить пропускную гений и на 99.5% сократить трафик, изнемогающий от реестра контейнеров. Базовые компоненты Dragonfly: Supernode - набросанный на языке Java менеджер кластера, выполняющий образ P2P-сервера, отвечающего за планирование P2P-задач и сотворение кэша CDN. Supernode разбивает файл бери блоки и определяет какие узлы/клиенты (peer) будут принимать участие в доставке этих блоков; Dfdaemon (dfget) - накорябанный на языке Go процесс для распространения файлов али образов, который работает на стороне клиента (peer) и участвует из первых рук в доставке запрошенных блоков файла. Dfdaemon и может выполнить функции зеркала репозитория неужели прокси для Docker; Getter - списанны на Python модуль, отвечающий по (по грибы) передачу файлов и организацию совместного доступа к ним. Основные особенности: Употребление P2P-технологии для передачи файлов - произвольный клиент Dragonfly является звеном, транслирующим сейчас полученные данные другим клиентам. Всякий файл разбивается на несколько блоков, которые вразбивку передаются между разными узлами (peer). Режим каждого узла P2P-сети обеспечивается отдельным клиентом. Сильноцентрализованный менеджер кластера имеет информацию о разбивке файлов и о фолиант, какие блоки имеются на каком клиенте, а равно как осуществляет первичную загрузку файлов изо исходного файлового сервера; Возможность интеграции с инструментариями контейнерной изоляции ради организации распределённой доставки образов контейнеров; Право ограничения суммарной пропускной способности сверху уровне всего хоста, а не всего на уровне отдельных соединений; Страдная) пора в форме пассивной сети доставки контента (CDN), позволяющей избежать повторяющихся удаленных загрузок; Гарантированное заклад целостности передаваемых файлов, без необходимости дополнительной проверки пользователем контрольных сумм; Оптимальное оставление данных на диске и эффективный гермоввод/вывод. Например, применяются такие техники, равно как предварительная проверка дискового пространства, отложенная синхронизирование, запись блоков в оптимальном порядке, разбивание операций сетевого чтения и записи получи диск; Высокая производительность: система управления кластером (звено Cluster Manager) замкнут на самом себя и не зависит от внешних СУБД и распределённых кэшей; Автоматическая изолирование сбойных узлов для повышения стабильности всей яруча доставки файлов; Отсутствие нагрузки в базовый сервер, который предоставляет исходные файлы - в соответствии с сути нагрузка на такой сервер сводится к нескольким загрузкам файла менеджером кластера; Подпора штатных HTTP-заголовков, в том числе допустимость подстановки информации об аутентификации от HTTP-заголовки; Эффективное управление нагрузкой для реестр аутентификации (Registry Auth Service); Простая упорядочение, для начала работы необходимо вписать минимальные изменения в конфигурацию. Для развёртывания крылена требуется создание сервера с менержером кластера и сборка на каждый клиент специального Соответственно. Источник: http://www.opennet.ru/opennews/art.shtml?num=48773