Делаем дешевый видео- хостинг в условиях кризиса Сергей Нековаль Денис Елданди «Грамант»
Вступление Сервис позволяет пользователям бесплатно загружать и просматривать видео-контент (японский аналог YouTube); Работает более 9 лет Основной источник дохода – реклама. П оказов в сутки – более 18 млн., 5 ТБ трафика З арегистрированных пользователей – более 150 тыс.
Проблемы?
Регулярные проблемы с доступностью (до 2 «крушений» в неделю) Расширяемость. Исходный код – месиво из Perl, PHP, Ruby и даже Scheme. Попытки решить проблему с помощью «Page generation».
Экономика должна быть экономной! Сократить издержки Увеличить время доступности (а значит, и рекламный трафик) Привести систему в состояние, позволяющее её развивать и монетизировать сервис
Наши цели Экономия на стоимости разработки Экономия трудозатрат на поддержку Экономия железа и трафика
Разработка
Принцип АК-47
Простота в изготовлении и обслуживании Избегаем изобретать велосипеды и используем готовый софт «Правило 5 минут» - грубая, но эффективная стрельба
Жизненно важные органы Файловое хранилище База данных Веб-серверы
Файловое хранилище
lighttpd mod_flv_streaming FTP + HTTP Репликация Garbage Collection Видео-файлы бывают дорогие и дешёвые!
База данных PostgreSQL 8.3 Skytools memcached
Падаем красиво Падение encoding-процесса Падение БД Падение всего, кроме web-сервера
Кэширование
Веб-сервер Контроль памяти (Ruby) Регулировка Fast CGI-пула
Поддержка
Вкалывают роботы, а не человек! Автоматический мониторинг Самолечение «Упал-отжался»
Мониторинг Logs (syslog) Alerts (Tenshi + Zenoss Core) Performance Data (Zenoss Core)
Железо и Трафик
Сервер железный – он выдержит! CPU – больше рабочих процессов (Encoding) Память – больше кэш (memcached) Лишние диски – продать! Трафик – направляем туда, где он дешевле
Управление трафиком Серверы media - $$$ Серверы smedia - $$ CDN (FreParNet) - $
Результаты Радикально снижена нагрузка на БД Encoding Server – усовершенствованная очередь, использует 100% CPU Web Server – выровнены напильником многочисленные проблемы lighttpd
Результаты Быстрая разработка и развитие сервиса в стиле AK-47 Существенное удешевление поддержки Существенное удешевление трафика
Вопросы? Сергей Нековаль / Денис Елданди /