Как мы переписали поисковый движок и выкинули половину серверов.

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 раза (не самое главное и не цель вовсе, но звучит неплохо)

UWDC 2014, секция Разработка

  • Начало 30 мая 07:40
  • Зал 1
  • Продолжительность: 40 минут

Комментариев ещё нет — будьте первым!

Посты этого мероприятия

Произошла ошибка. Необходимо обновить страницу. Обновить 🗙