Алгоритмы сети доставки контента, примеры, код

Какие проектные соображения необходимо учитывать при написании программного обеспечения для систем распространения контента, например, для управления синхронизацией и распределением данных, перенаправлением загрузок на ближайшие серверы и т. д.?

Я также ищу примеры программного обеспечения CDN (сети доставки контента) с открытым исходным кодом. Я могу вспомнить два проекта: CoralCDN и OpenCDN.

Обратите внимание, что CDN - это не только пропускная способность оборудования. CDN - это комбинация программного обеспечения и.

Я бы хотел использовать программное обеспечение для потоковой передачи мультимедиа, а также статические ресурсы. Мне сложно понять, как правильно синхронизировать потоковые мультимедиа между серверами (поскольку доступ к файлам может быть довольно случайным), в то время как статические ресурсы кажутся немного проще, поскольку это одноразовый запрос.

Повторное открытие, потому что это связано с программированием. CDN - это не просто набор веб-серверов с балансировкой нагрузки, особенно для сетей CDN, которые обслуживают не только HTTP (подумайте о CDN потокового видео).

Michael Stum 22.11.2008 20:14

Закрытие, потому что теперь дубликат stackoverflow.com/questions/311538/open-source-cdn

Michael Stum 22.11.2008 20:16

Извините, мне не удалось открыть это самостоятельно, поэтому созданный дублировал сообщение. спасибо за твою помощь

joshjdevl 22.11.2008 20:17

Пометка ответов, которые вам не понравились, как оскорбительных - это не то, для чего предназначен этот сайт.

FlySwat 22.11.2008 20:24

Откатите его, затем отредактируйте снова, чтобы удалить оскорбительный голос. Тем не менее, это все равно не вопрос программирования. Однако спамить первую страницу с одним и тем же вопросом снова и снова - оскорбительно.

Adam Davis 22.11.2008 20:26

Я изменил формулировку вопроса, чтобы попытаться сделать его немного менее ... нежелательным?

dbr 22.11.2008 20:29

@dbr: Похоже, у нас была та же идея, но в разных сообщениях :) Давайте оставим этот как «настоящий», так как а) на него больше ответов, б) лучше теги и в) был опубликован первым.

Michael Stum 22.11.2008 20:37

(добавлен вопрос, чтобы различать потоковые мультимедиа и статические ресурсы - подпадает под тег шаблона проектирования)

joshjdevl 22.11.2008 20:40
Повышение качества Laravel с помощью принципов SOLID: Лучшие практики и примеры
Повышение качества Laravel с помощью принципов SOLID: Лучшие практики и примеры
Когда мы говорим о том, как сделать следующий шаг в качестве разработчика, мы должны понимать, что качество кода всегда является основным фокусом на...
Принципы SOLID - лучшие практики
Принципы SOLID - лучшие практики
SOLID - это аббревиатура, обозначающая пять ключевых принципов проектирования: принцип единой ответственности, принцип "открыто-закрыто", принцип...
7
8
7 580
3

Ответы 3

Вы понимаете, что ценность сети доставки контента заключается исключительно в количестве серверов, которыми они владеют, и близости серверов к конечным пользователям?

Вы уверены, что идете правильным путем?

Вы не сразу получите CDN, купив 200 серверов. Для управления всеми этими данными (помимо прочего) необходимо наличие как планирования, так и (что наиболее важно для этого вопроса) програмное обеспечение!

dbr 22.11.2008 20:40

@dbr: ты прав. Однако подразумевается, что если вы потенциально тратите миллионы на оборудование, то вопрос о том, является ли программный пакет открытым или нет, является спорным, поскольку у вас должны быть средства, чтобы получить все, что вам нужно.

NotMe 23.11.2008 00:16

Между прочим, текущий вопрос радикально отличается от исходного, на который я ответил.

NotMe 23.11.2008 00:18

CDN - это не часть программного обеспечения. Пожалуйста, хотя бы погуглите или поищите это в вики. http://en.wikipedia.org/wiki/Content_Delivery_Network

Хотя я не знаю ни одного проекта с открытым исходным кодом, может быть, стоит подытожить, что такое CDN на самом деле? В конце концов, просто взяв несколько веб-серверов, вы никуда не денетесь.

Ключевые проблемы, которые необходимо решить CDN Software:

  • Синхронизация. Итак, у вас есть все аккуратные фермы в США, Европе и Азии, но как убедиться, что все они имеют одинаковые версии файлов, которые вы пытаетесь обслуживать? И если на одной из ферм не установлена ​​текущая версия, как вы сообщите подсистеме балансировки нагрузки, какую ферму использовать вместо нее?
  • Логирование. В CDN вы обычно хотите выставлять счет своему клиенту, поэтому вам нужно измерять трафик и доступ к файлам. Но с несколькими фермами и несколькими веб-серверами в каждой ферме вам нужно как-то централизовать ведение журнала.
  • Аутентификация. В конце концов, CDN - это не просто веб-сервер, доставляющий всем HTTP-контент. Что делать, если у вас есть CDN для потокового видео, который фактически ограничивает доступ только определенным пользователям?
  • Балансировки нагрузки. Хотя обычно это делается отдельно, это также связано с частью синхронизации. Итак, я пользователь из Южной Кореи, пытающийся получить доступ к контенту. Балансировщик нагрузки обнаруживает, что ферма в Сеуле является ближайшей, но, к сожалению, на ферме в Сеуле еще нет контента. Таким образом, CDN и Load Balancer должны определить ближайшую ферму с содержимым. Посмотрим ... И в Париже, Франции, и в Лос-Анджелесе, США есть контент. Какой из них должен служить?

Каждая проблема сама по себе не является проблемой исключительно для CDN, но программное обеспечение CDN по сути представляет собой комбинацию этих методов. Есть еще что-нибудь, что я забыл?

Из комментариев:

  • Определение, какие файлы нужно реплицировать где. Японский Центр обновления Windows может быть очень популярен в Японии и, возможно, в некоторых других азиатских странах, но в Европе и США может быть меньше запросов к нему, поэтому этот файл, возможно, не нужно реплицировать на каждой ферме в CDN.

Уровень резервирования? Аналогично точке синхронизации и будет зависеть от размера CDN. Может варьироваться от наличия всех данных на ферме до выборочного копирования данных в страну, в которой они наиболее популярны? Например, arkami, вероятно, не нуждается в высокой доступности win98.update123.japan.exe в США.

dbr 22.11.2008 20:59

Другие вопросы по теме