Как мы переписали поисковый движок и выкинули половину серверов.
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 раза (не самое главное и не цель вовсе, но звучит неплохо)
Похожие доклады
-
Разработка
Живые обои для Android. Тонкости. Продвижение
Sergey Mikhaylov
Kolesov & Mikhaylov, Основатель, программист.
-
Разработка
Как мы делаем мобильную версию интернет-магазина е96.ru
Коньшин Александр
е96.ru, Product manager
-
Разработка
Использование pinba + graphite для мониторинга производительности приложений в реальном времени, наш подход в Lingualeo
Eugene Klimov
LinguaLeo, Примуса починяю
}
- Интернет-маркетинг – 16
- Разработка – 13
- Бизнес – 8
- Дизайн – 8