Файлы мультимедиа отличаются от тех частей вашей системы, которые содержат логику приложения, тем, что обслуживание файлов мультимедиа является интенсивной задачей ввода-вывода, в то время как логика приложения обычно требует некоторой комбинации ввода-вывода и процессора (точный баланс очень зависимый). Вот почему действительно имеет смысл использовать выделенную мультимедийную систему, оптимизированную для пропускной способности диска и сети.
Некоторые общие рекомендации, если вы используете собственный выделенный сервер:
- Инвестируйте в большое количество оперативной памяти и используйте кеширование для наиболее часто используемого контента. Идея состоит в том, чтобы сэкономить время доступа к диску (теоретически ОЗУ примерно в 100 раз быстрее). Memcache - самое популярное решение в наши дни.
- Инвестируйте в быстрый дисковый ввод-вывод, устанавливайте несколько дисков и используйте RAID (чередование) для повышения пропускной способности.
- При выборе хостинг-провайдера для вашего выделенного / совместного сервера (ов), сосредоточиться на пропускной способности.
- Если возможно, вы хотите расположить файлы рядом с их потребителями, чтобы уменьшить задержки в сети. Так, например, мультимедийные файлы на бразильском португальском языке выиграют, если будут храниться на сервере в Южной Америке.
- Хороший CDN может решить практически все вышеперечисленное. По моему опыту, это снизило нагрузку на наши собственные серверы на ~ 85%. Мы используем Котендо и Акамаи. Другие провайдеры, которых вы можете посмотреть на ottomh: CDNetworks, Limelight, Level3.
Если вы только начинаете, то лучше всего использовать S3 для хранения ваших файлов с CloudFront в качестве CDN. По моему собственному опыту, это очень простое в настройке решение и довольно рентабельное при запуске - поскольку затраты растут линейно с количеством данных и использованием. За пределами определенного порога имеет смысл начать с управления собственными выделенными стойками хранения и использовать некоторые другие CDN.