SlideShare a Scribd company logo
1 of 35
Download to read offline
Лучшие предложения Aviasales.ru,
или как не упустить важное
среди 150 000 000 билетов в сутки.
Антон Щербаков, Senior Backend Developer, Aviasales.ru
Поисковый движок
Технологии реализации
поискового движка
•  Ruby, Ruby on Rails;
•  NGINX with Passenger;
•  HAProxy;
•  MySQL, Redis, MongoDB;
Нагрузка
•  200 000 поисковых запросов в сутки.
•  250 запросов к MySQL в секунду, 300 запросов
к MongoDB в секунду.
•  Исходящий трафик поискового движка –
25 Мбит.
•  Десятки гигабайт json c билетами в сутки.
Сервисы Aviasales.ru
Полный стек технологий
Дополнительные сервисы
Aviasales.ru
Aviasales.ru - поисковик дешевых
авиабилетов.
Календарь минимальных цен
Карта минимальных цен
Лучшие предложения
за последние 48 часов
Лучшие предложения за
последние 48 часов
Рассылка минимальных цен
Рассылка минимальных цен
Рассылка минимальных цен
•  Большие возможности пользовательской
настройки рассылки.
•  Письма отправляются сразу после
нахождения цены.
•  Ежедневно отправляется в среднем
35 тысяч писем.
Рассылка минимальных цен
•  DomainKeys Identified Mail (DKIM).
•  Sender Policy Framework (SPF).
•  Дополнительные заголовки письма
(Precedence:bulk; X-List-Unsubscribe).
Задачи
•  Упрощение логики получения информации о
минимальных ценах.
•  Упрощение схемы актуализации данных.
•  Вынесение отдельных сервисов в целях
повышения отказоустойчивости системы.
Внутренняя организация системы
хранения минимальных цен
Redis
•  Богатая модель данных.
•  Атомарные операции.
•  Транзакции.
Сохранение минимальных цен
SETEX
key: "economy:LED:BOJ:2013-06-01:2013-06-11:zero_weeks"
value: "14612:1366179887:1666"
expires_in: 172800
SETEX
key: "economy:MOW:MCX:2013-05-02:2013-05-08:zero_week"
value: "14050:1366179888:1534"
expires_in: 86400
Загрузка данных для календаря
MGET
"economy:LED:BOJ:2013-06-01:2013-06-11:zero_changes"
"economy:LED:BOJ:2013-06-01:2013-06-11:one_change"
"economy:LED:BOJ:2013-06-01:2013-06-11:two_changes"
"economy:LED:BOJ:2013-06-01:2013-06-12:zero_changes"
"economy:LED:BOJ:2013-06-01:2013-06-12:one_change"
"economy:LED:BOJ:2013-06-01:2013-06-12:two_changes"
"economy:LED:BOJ:2013-06-01:2013-06-13:zero_changes"
"economy:LED:BOJ:2013-06-01:2013-06-13:one_change"
"economy:LED:BOJ:2013-06-01:2013-06-13:two_changes"…
Загрузка минимальных цен для
сервиса лучших предложений
Загрузка минимальных цен для
сервиса лучших предложений
Загрузка минимальных цен для
сервиса лучших предложений
Загрузка минимальных цен для
сервиса лучших предложений
Загрузка минимальных цен для
сервиса лучших предложений
Загрузка минимальных цен для
сервиса лучших предложений
Загрузка минимальных цен
для карты
Загрузка минимальных цен
для карты
Схема добавления данных в
хранилище
1.  Сбор информации о минимальных ценах.
2.  Фильтрация.
3.  Сохранение цен в хранилище.
4.  Обновление соответствующих
упорядоченных наборов.
Схема добавления данных в
хранилище
Схема добавления данных в
хранилище
Нагрузка
•  3 000 000 минимальных цен в сутки.
•  2000 команд Redis в секунду.
•  700 000 запросов через API
минимальных цен в сутки.
Плюсы и минусы перехода
на Redis
Плюсы:
1.  Упростилась схема работы с устаревшими
минимальными ценами.
2.  Упростилась логика выборки данных,
необходимых для успешной работы сервисов.
3.  Возросла производительность сервисов.
4.  Упростилось решение задачи постраничной
отрисовки цен.
5.  Отпала необходимость сортировки данных для
некоторых сервисов.
Плюсы и минусы перехода
на Redis
Минусы:
1.  Значительные издержки потребления
оперативной памяти.
2.  Риск потери данных при отключении физической
машины.
Выводы
Спасибо за внимание!

More Related Content

Viewers also liked

«Механизмы обновления платформы и окружений пользователей в Jelastic»
«Механизмы обновления платформы и окружений пользователей в Jelastic»«Механизмы обновления платформы и окружений пользователей в Jelastic»
«Механизмы обновления платформы и окружений пользователей в Jelastic»Nata_Churda
 
Александр Семенов, КОРУС Консалтинг
Александр Семенов, КОРУС КонсалтингАлександр Семенов, КОРУС Консалтинг
Александр Семенов, КОРУС КонсалтингNata_Churda
 
Александра Алябьева "Поиск IT-специалистов. Шагнем за рамки привычного?"
Александра Алябьева "Поиск IT-специалистов. Шагнем за рамки привычного?"Александра Алябьева "Поиск IT-специалистов. Шагнем за рамки привычного?"
Александра Алябьева "Поиск IT-специалистов. Шагнем за рамки привычного?"Nata_Churda
 
Александр Ильин, Oracle
Александр Ильин, OracleАлександр Ильин, Oracle
Александр Ильин, OracleNata_Churda
 
Введение в maven
Введение в mavenВведение в maven
Введение в mavenDmitry Zinushin
 
Алексей Аболмасов "Критерии сильного HR-решения"
Алексей Аболмасов "Критерии сильного HR-решения"Алексей Аболмасов "Критерии сильного HR-решения"
Алексей Аболмасов "Критерии сильного HR-решения"Nata_Churda
 
Maven 3 : уличная магия
Maven 3 : уличная магияMaven 3 : уличная магия
Maven 3 : уличная магияAleksey Solntsev
 

Viewers also liked (7)

«Механизмы обновления платформы и окружений пользователей в Jelastic»
«Механизмы обновления платформы и окружений пользователей в Jelastic»«Механизмы обновления платформы и окружений пользователей в Jelastic»
«Механизмы обновления платформы и окружений пользователей в Jelastic»
 
Александр Семенов, КОРУС Консалтинг
Александр Семенов, КОРУС КонсалтингАлександр Семенов, КОРУС Консалтинг
Александр Семенов, КОРУС Консалтинг
 
Александра Алябьева "Поиск IT-специалистов. Шагнем за рамки привычного?"
Александра Алябьева "Поиск IT-специалистов. Шагнем за рамки привычного?"Александра Алябьева "Поиск IT-специалистов. Шагнем за рамки привычного?"
Александра Алябьева "Поиск IT-специалистов. Шагнем за рамки привычного?"
 
Александр Ильин, Oracle
Александр Ильин, OracleАлександр Ильин, Oracle
Александр Ильин, Oracle
 
Введение в maven
Введение в mavenВведение в maven
Введение в maven
 
Алексей Аболмасов "Критерии сильного HR-решения"
Алексей Аболмасов "Критерии сильного HR-решения"Алексей Аболмасов "Критерии сильного HR-решения"
Алексей Аболмасов "Критерии сильного HR-решения"
 
Maven 3 : уличная магия
Maven 3 : уличная магияMaven 3 : уличная магия
Maven 3 : уличная магия
 

Similar to «Лучшие предложения aviasales.ru, или как не упустить важное среди 150 миллионов билетов в сутки»

Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»Tanya Denisyuk
 
NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...Ontico
 
Презентация нашего нового продукта!
Презентация нашего нового продукта!Презентация нашего нового продукта!
Презентация нашего нового продукта!ALPHONE.RU
 
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...Coub - как мы строили аналитическую платформу на несколько миллиардов событий...
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...Ontico
 
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцКак мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцMikhail Tabunov
 
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцМихаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцTanya Denisyuk
 
BRMS – блиц-игра по Вашим правилам
BRMS – блиц-игра по Вашим правиламBRMS – блиц-игра по Вашим правилам
BRMS – блиц-игра по Вашим правиламКРОК
 
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow Vadim Nesterov
 
ИТ-консалтинг, или каждый должен заниматься своим делом
ИТ-консалтинг, или каждый должен заниматься своим деломИТ-консалтинг, или каждый должен заниматься своим делом
ИТ-консалтинг, или каждый должен заниматься своим деломActiveCloud
 
презентация
презентацияпрезентация
презентацияDaria Olenina
 
Никита Селиванов: 8 правил эффективного взаимодействия с подрядчиком при созд...
Никита Селиванов: 8 правил эффективного взаимодействия с подрядчиком при созд...Никита Селиванов: 8 правил эффективного взаимодействия с подрядчиком при созд...
Никита Селиванов: 8 правил эффективного взаимодействия с подрядчиком при созд...Ruslan Begaliev
 
Внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...
Внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...Внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...
Внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...Дмитрий Карпенко
 
внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...
внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...
внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...Дмитрий Карпенко
 
преимущества отдельного сайта мгмн Арктел
преимущества отдельного сайта мгмн Арктелпреимущества отдельного сайта мгмн Арктел
преимущества отдельного сайта мгмн АрктелЯрослав Гаврилов
 
Vblock от VCE: опыт первого внедрения в Украине.
Vblock от VCE: опыт первого внедрения в Украине. Vblock от VCE: опыт первого внедрения в Украине.
Vblock от VCE: опыт первого внедрения в Украине. Cisco Russia
 
Обеспечение DR в новых экономических условиях
Обеспечение DR в новых экономических условияхОбеспечение DR в новых экономических условиях
Обеспечение DR в новых экономических условияхКРОК
 

Similar to «Лучшие предложения aviasales.ru, или как не упустить важное среди 150 миллионов билетов в сутки» (20)

Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
 
NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...
 
Diplom
DiplomDiplom
Diplom
 
Презентация нашего нового продукта!
Презентация нашего нового продукта!Презентация нашего нового продукта!
Презентация нашего нового продукта!
 
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...Coub - как мы строили аналитическую платформу на несколько миллиардов событий...
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...
 
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцКак мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
 
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцМихаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
 
Гравицапа
ГравицапаГравицапа
Гравицапа
 
Принцип достаточности
Принцип достаточностиПринцип достаточности
Принцип достаточности
 
BRMS – блиц-игра по Вашим правилам
BRMS – блиц-игра по Вашим правиламBRMS – блиц-игра по Вашим правилам
BRMS – блиц-игра по Вашим правилам
 
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
 
ИТ-консалтинг, или каждый должен заниматься своим делом
ИТ-консалтинг, или каждый должен заниматься своим деломИТ-консалтинг, или каждый должен заниматься своим делом
ИТ-консалтинг, или каждый должен заниматься своим делом
 
презентация
презентацияпрезентация
презентация
 
mGate
mGatemGate
mGate
 
Никита Селиванов: 8 правил эффективного взаимодействия с подрядчиком при созд...
Никита Селиванов: 8 правил эффективного взаимодействия с подрядчиком при созд...Никита Селиванов: 8 правил эффективного взаимодействия с подрядчиком при созд...
Никита Селиванов: 8 правил эффективного взаимодействия с подрядчиком при созд...
 
Внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...
Внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...Внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...
Внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...
 
внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...
внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...
внедрение программно аппаратных комплексов Vblock - опыт компании инком; алек...
 
преимущества отдельного сайта мгмн Арктел
преимущества отдельного сайта мгмн Арктелпреимущества отдельного сайта мгмн Арктел
преимущества отдельного сайта мгмн Арктел
 
Vblock от VCE: опыт первого внедрения в Украине.
Vblock от VCE: опыт первого внедрения в Украине. Vblock от VCE: опыт первого внедрения в Украине.
Vblock от VCE: опыт первого внедрения в Украине.
 
Обеспечение DR в новых экономических условиях
Обеспечение DR в новых экономических условияхОбеспечение DR в новых экономических условиях
Обеспечение DR в новых экономических условиях
 

More from Nata_Churda

«PRFLR - OpenSource инструмент для анализа производительности кода»
«PRFLR - OpenSource инструмент для анализа производительности кода»«PRFLR - OpenSource инструмент для анализа производительности кода»
«PRFLR - OpenSource инструмент для анализа производительности кода»Nata_Churda
 
«Делимся опытом разработки высоконагруженных мобильных приложений на примере ...
«Делимся опытом разработки высоконагруженных мобильных приложений на примере ...«Делимся опытом разработки высоконагруженных мобильных приложений на примере ...
«Делимся опытом разработки высоконагруженных мобильных приложений на примере ...Nata_Churda
 
«Как ради производительности высоконагруженного приложения мы разработали соб...
«Как ради производительности высоконагруженного приложения мы разработали соб...«Как ради производительности высоконагруженного приложения мы разработали соб...
«Как ради производительности высоконагруженного приложения мы разработали соб...Nata_Churda
 
«Облачная платформа Windows Azure для высоконагруженных проектов»
«Облачная платформа Windows Azure для высоконагруженных проектов»«Облачная платформа Windows Azure для высоконагруженных проектов»
«Облачная платформа Windows Azure для высоконагруженных проектов»Nata_Churda
 
Белогрудов Владислав, EMC
Белогрудов Владислав, EMCБелогрудов Владислав, EMC
Белогрудов Владислав, EMCNata_Churda
 
Анна Ященко, Google
Анна Ященко, GoogleАнна Ященко, Google
Анна Ященко, GoogleNata_Churda
 
Акулов Егор, Mail.ru Group
Акулов Егор, Mail.ru GroupАкулов Егор, Mail.ru Group
Акулов Егор, Mail.ru GroupNata_Churda
 
Екатерина Евсеева, ITmozg
Екатерина Евсеева, ITmozgЕкатерина Евсеева, ITmozg
Екатерина Евсеева, ITmozgNata_Churda
 
Павел Савинкин, Sell Solutions
Павел Савинкин, Sell SolutionsПавел Савинкин, Sell Solutions
Павел Савинкин, Sell SolutionsNata_Churda
 

More from Nata_Churda (9)

«PRFLR - OpenSource инструмент для анализа производительности кода»
«PRFLR - OpenSource инструмент для анализа производительности кода»«PRFLR - OpenSource инструмент для анализа производительности кода»
«PRFLR - OpenSource инструмент для анализа производительности кода»
 
«Делимся опытом разработки высоконагруженных мобильных приложений на примере ...
«Делимся опытом разработки высоконагруженных мобильных приложений на примере ...«Делимся опытом разработки высоконагруженных мобильных приложений на примере ...
«Делимся опытом разработки высоконагруженных мобильных приложений на примере ...
 
«Как ради производительности высоконагруженного приложения мы разработали соб...
«Как ради производительности высоконагруженного приложения мы разработали соб...«Как ради производительности высоконагруженного приложения мы разработали соб...
«Как ради производительности высоконагруженного приложения мы разработали соб...
 
«Облачная платформа Windows Azure для высоконагруженных проектов»
«Облачная платформа Windows Azure для высоконагруженных проектов»«Облачная платформа Windows Azure для высоконагруженных проектов»
«Облачная платформа Windows Azure для высоконагруженных проектов»
 
Белогрудов Владислав, EMC
Белогрудов Владислав, EMCБелогрудов Владислав, EMC
Белогрудов Владислав, EMC
 
Анна Ященко, Google
Анна Ященко, GoogleАнна Ященко, Google
Анна Ященко, Google
 
Акулов Егор, Mail.ru Group
Акулов Егор, Mail.ru GroupАкулов Егор, Mail.ru Group
Акулов Егор, Mail.ru Group
 
Екатерина Евсеева, ITmozg
Екатерина Евсеева, ITmozgЕкатерина Евсеева, ITmozg
Екатерина Евсеева, ITmozg
 
Павел Савинкин, Sell Solutions
Павел Савинкин, Sell SolutionsПавел Савинкин, Sell Solutions
Павел Савинкин, Sell Solutions
 

«Лучшие предложения aviasales.ru, или как не упустить важное среди 150 миллионов билетов в сутки»