Делаем дешевый видео-хостинг в условиях кризиса Сергей Нековаль Денис Елданди «Грамант»

Содержание

Слайд 2

Вступление

Сервис позволяет пользователям бесплатно загружать и просматривать видео-контент (японский аналог YouTube);
Работает

Вступление Сервис позволяет пользователям бесплатно загружать и просматривать видео-контент (японский аналог YouTube);
более 9 лет
Основной источник дохода – реклама.
Показов в сутки – более 18 млн., 5 ТБ трафика
Зарегистрированных пользователей – более 150 тыс.

Слайд 5

Проблемы?

Проблемы?

Слайд 6

Регулярные проблемы с доступностью (до 2 «крушений» в неделю)
Расширяемость. Исходный код –

Регулярные проблемы с доступностью (до 2 «крушений» в неделю) Расширяемость. Исходный код
месиво из Perl, PHP, Ruby и даже Scheme.
Попытки решить проблему с помощью «Page generation».

Слайд 7

Экономика должна быть экономной!

Сократить издержки
Увеличить время доступности (а значит, и

Экономика должна быть экономной! Сократить издержки Увеличить время доступности (а значит, и
рекламный трафик)
Привести систему в состояние, позволяющее её развивать и монетизировать сервис

Слайд 8

Наши цели

Экономия на стоимости разработки
Экономия трудозатрат на поддержку
Экономия железа и трафика

Наши цели Экономия на стоимости разработки Экономия трудозатрат на поддержку Экономия железа и трафика

Слайд 9

Разработка

Разработка

Слайд 10

Принцип АК-47

Принцип АК-47

Слайд 11

Принцип АК-47

Простота в изготовлении и обслуживании
Избегаем изобретать велосипеды и используем готовый софт
«Правило

Принцип АК-47 Простота в изготовлении и обслуживании Избегаем изобретать велосипеды и используем
5 минут» - грубая, но эффективная стрельба

Слайд 12

Жизненно важные органы

Файловое хранилище
База данных
Веб-серверы

Жизненно важные органы Файловое хранилище База данных Веб-серверы

Слайд 13

Файловое хранилище

Файловое хранилище

Слайд 15

Файловое хранилище

lighttpd 1.4 + mod_flv_streaming
FTP + HTTP
Репликация
Garbage Collection
Видео-файлы бывают дорогие и дешёвые!

Файловое хранилище lighttpd 1.4 + mod_flv_streaming FTP + HTTP Репликация Garbage Collection

Слайд 16

База данных

PostgreSQL 8.3
Skytools 2.1.10
memcached

База данных PostgreSQL 8.3 Skytools 2.1.10 memcached

Слайд 17

Падаем красиво

Падение encoding-процесса
Падение БД
Падение всего, кроме web-сервера

Падаем красиво Падение encoding-процесса Падение БД Падение всего, кроме web-сервера

Слайд 19

Кэширование

Кэширование

Слайд 20

Веб-сервер

Контроль памяти (Ruby)
Регулировка Fast CGI-пула

Веб-сервер Контроль памяти (Ruby) Регулировка Fast CGI-пула

Слайд 21

Поддержка

Поддержка

Слайд 22

Вкалывают роботы, а не человек!

Автоматический мониторинг
Самолечение
«Упал-отжался»

Вкалывают роботы, а не человек! Автоматический мониторинг Самолечение «Упал-отжался»

Слайд 23

Мониторинг

Logs (syslog)
Alerts (Tenshi + Zenoss Core)
Performance Data (Zenoss Core)

Мониторинг Logs (syslog) Alerts (Tenshi + Zenoss Core) Performance Data (Zenoss Core)

Слайд 25

Железо и Трафик

Железо и Трафик

Слайд 26

Сервер железный – он выдержит!

CPU – больше рабочих процессов (Encoding)
Память – больше

Сервер железный – он выдержит! CPU – больше рабочих процессов (Encoding) Память
кэш (memcached)
Лишние диски – продать!
Трафик – направляем туда, где он дешевле

Слайд 27

Управление трафиком
Серверы media - $$$
Серверы smedia - $$
CDN (FreParNet) - $

Управление трафиком Серверы media - $$$ Серверы smedia - $$ CDN (FreParNet) - $

Слайд 29

Результаты

Радикально снижена нагрузка на БД
Encoding Server – усовершенствованная очередь, использует 100% CPU
Web

Результаты Радикально снижена нагрузка на БД Encoding Server – усовершенствованная очередь, использует
Server – выровнены напильником многочисленные проблемы lighttpd

Слайд 30

Результаты

Быстрая разработка и развитие сервиса в стиле AK-47
Существенное удешевление поддержки
Существенное удешевление трафика

Результаты Быстрая разработка и развитие сервиса в стиле AK-47 Существенное удешевление поддержки Существенное удешевление трафика