Как мы переписали поисковый движок и выкинули половину серверов.
500 000 поисков в день, до 10 поисков одновременно в пике. Каждый поиск - опрос до 40 сервисов, ответ одного сервиса - от 200 KB до 2 MB JSON или XML. Кеширование невозможно, выдача постоянно меняется. Парсинг и мерджинг 13 GB JSON/XML в минуту.
До:
Ruby on Rails приложение, 1 инстанс: 350 MB, обслуживание 1 поиска одновременно, 10 секунд на старт приложения.
После:
SOA архитектура, поисковые цепочки, состоящие из отдельных юнитов, описанные DSL. Python3 с tornado, 1 инстанс: 250 MB, до 10 поисков одновременно, 0.1 секунды на старт.
Profit:
- Простота разработки.
- Гибкое конфигурирование на лету в модном веб-интерфейсе.
- Отказоустойчивость (независимость от MySQL в т.ч.)
- Сокращение количества серверов в 2 раза (не самое главное и не цель вовсе, но звучит неплохо)
Похожие доклады
-
Разработка
Придумываем мобильные приложения для своего бизнеса
Сергей Кулешов
«1С-Битрикс», Руководитель отдела продаж
-
Разработка
Использование Sass и Compass для созданиях командных Styleguide-ов
Александр Гончаров
Фрилансер
-
Разработка
Разработка фронтенда: от кузницы до металлургического завода. (ЯндексМаркет)
Дмитрий Поляков
Яндекс, разработчик интерфейсов Яндекс.Маркета
}
- Интернет-маркетинг – 16
- Разработка – 13
- Бизнес – 8
- Дизайн – 8