HighLoad++ 2015 завершён! Ждём вас в 2016 году!

Профессиональная конференция разработчиков высоконагруженных систем

2 и 3 ноября 2015 Крокус-Экспо МОСКВА
Профессиональная конференция разработчиков высоконагруженных систем

Опыт переезда соцсети Livestreet с PHP/MySQL на NodeJS/Redis/Lua
Архитектуры

Доклад принят в Программу конференции

Руководитель разработки, архитектор. Имеет опыт создания веб-приложений на платформах EJB, .NET, LAMP и NodeJS. Отвечал за развитие и работоспособность сайтов Svyaznoy.ru, Dostavka.ru, 003.ru. Сейчас развивает собственный стартап в области хостинга блогов.

Тезисы

Мы взяли типичное веб-приложение на базе PHP/MySQL (движок социальной сети Livestreet) и убрали из него все медленное и плохое:
- постоянный маршаллинг данных PHP - MySQL - Memcached;
- процессы инициализации фреймворка при каждом вызове;
- кэши и механизмы их инвалидации;
- нормализованную структуру данных и множество операций JOIN таблиц;
- обращения к ФС, в том числе со стороны БД;
- кривые, опостылевшие и плохо поддающиеся JIT-компиляции языки программирования.

Получилось такое решение:
- NodeJS, Redis и вся логика на Lua внутри Redis (как хранимые процедуры).
- NodeJS получает JSON из Redis и без преобразований отправляет его на клиента, где он попадает в MVC фреймворк типа Ember.JS.
- Скорость выдачи страниц выросла в 30-100 раз.
- Появилась возможность push-уведомлений клиента через pub/sub в Redis.
Наш опыт
- Мы сделали это для проекта на Livestreet с 3k топиков, 20k регистраций и 10k комментариев.
- Библиотека Lua-скриптов для работы со связанными объектами в Redis будет выложена в свободный доступ на GitHub до начала конференции.

Проблемы, возможные решения, тема для дальнейшего исследования
- Redis исполняет Lua-скрипты сторого последовательно, соответственно, не масштабируется на несколько процессоров.
- При репликации Redis реплицирует полностью все скрипты, и нативная репликация бессмысленна.
- Необходим механизм репликации на программном уровне. Неплохо подходит для приложений, где преобладают операции чтения.

Другие доклады секции
Архитектуры

Rambler's Top100