Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Highload
на PHP/MySQL
Сравнительный шоппинг
выбрать
товар
купить
выбрать
магазин
Каталог hotline.ua
◉1500 товарных каталогов
◉2 млн. карточек товаров (+10 тыс. в
день)
◉10 млн. наименований автозапчастей
База прайс-листов hotline.ua
◉3 тыс. активных клиентских
аккаунтов
◉12 млн. товарных предложений
◉35 млн. предложений авто...
Посещаемость hotline.ua
◉3,5 млн. посетителей в месяц
◉200 тыс. в день
В 2006-м - 75 тыс. посетителей в месяц
75 000 000Загрузок и обновлений прайс-строк
20 000 000Запросов к веб-серверу (без статики)
В сутки
Серверная архитектура
◉7 серверов БД
◉4 веб-сервера
◉3 сервера приложений
Все под Gentoo Linux
App-сервер
◉Redis
◉memcached
◉Sphinx
◉crontab
Сервер БД
◉MySQL 5.5
◉MariaDB 10.1
Веб-сервер
◉Nginx
◉Apache
(mod_php,
mod_s...
Серверная архитектура
◉Экономить на серверах не стоит
◉Необходим запас мощности
◉Планы бэкапа и восстановления
◉Сложные в ...
Intel SSD
Intel S3700 SSD Intel P3600 NVMe SSD
Чтение/запись 500 / 460 MBPs 2600 / 1700 MBPs
IOPS 75 K / 36 K 450 K / 70 K...
Обработка фидов данных
Используем элементы
◉<Рубрика магазина>
◉<id товара>
◉<Вендор>
◉<Код товара>
◉<Наименование>
Обработка фидов данных
Обработка прайс-строки
◉Определение каталога hotline
◉База истории обработки
◉Привязка товара к кар...
Redis
◉Key-value, Sets, Sorted sets, Lists,
Hashes
◉Управление очередью
◉Репликация данных
◉Логирование(системные операции...
Sphinx
Disk-based индексы
◉7 индексов
◉5000000 записей
◉2500000 поисковых запросов в сутки
◉~0.02 секунды поиск по всем
ин...
Sphinx
Real-time индекс
◉12000000 записей
◉700000 поисковых запросов в сутки
◉~0.1 секунда время запроса
Sphinx
Live индекс предложений фирм
◉Очередь обработки прайсов
◉Обновление разницы с предыдущим
состоянием прайса
Код
◉Проектирование схемы хранения
данных
◉Проектирование кода (SOLID)
◉Code review
Hotline Checkout
Требования к системе
◉Двухстадийное списание
◉Подбор корзины из разных магазинов
◉Ввод данных карты на ho...
Hotline Checkout
◉Разделение серверов БД и Web
◉2 файрволла Fortigate (под ними всё
на “серых” IP)
◉Видеонаблюдение в дата...
Что еще используем
◉Redmine + Agile плагин
◉Trello - доска задач
◉GTM + Measurement
Protocol - аналитика
◉Mandrill - рассы...
Вопросы ?
Пишите нам
«Обратная связь» на hotline.ua
Благодарим за внимание!
admin@hotline.ua
Upcoming SlideShare
Loading in …5
×

Архитектура hotline.ua: быстрый пересчет большого количества данных, внутренние сервисы аналитики и организация checkout, Владимир Возняк, CTO hotline.ua

179 views

Published on

В рамках доклада были рассмотрены конкретные задачи, которые ставил бизнес компании и их решение, особенности реализации сервисов, а также инструменты, которые использовались в процессе развития проекта.

Также речь идет о checkout, о быстром пересчете большого количества данных, о сервисах аналитики, т.е. о всех интересных моментах по реализации нескольких модулей.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Архитектура hotline.ua: быстрый пересчет большого количества данных, внутренние сервисы аналитики и организация checkout, Владимир Возняк, CTO hotline.ua

  1. 1. Highload на PHP/MySQL
  2. 2. Сравнительный шоппинг выбрать товар купить выбрать магазин
  3. 3. Каталог hotline.ua ◉1500 товарных каталогов ◉2 млн. карточек товаров (+10 тыс. в день) ◉10 млн. наименований автозапчастей
  4. 4. База прайс-листов hotline.ua ◉3 тыс. активных клиентских аккаунтов ◉12 млн. товарных предложений ◉35 млн. предложений автозапчастей В 2006 году - 130 магазинов, 60 тыс. предложений
  5. 5. Посещаемость hotline.ua ◉3,5 млн. посетителей в месяц ◉200 тыс. в день В 2006-м - 75 тыс. посетителей в месяц
  6. 6. 75 000 000Загрузок и обновлений прайс-строк 20 000 000Запросов к веб-серверу (без статики) В сутки
  7. 7. Серверная архитектура ◉7 серверов БД ◉4 веб-сервера ◉3 сервера приложений Все под Gentoo Linux
  8. 8. App-сервер ◉Redis ◉memcached ◉Sphinx ◉crontab Сервер БД ◉MySQL 5.5 ◉MariaDB 10.1 Веб-сервер ◉Nginx ◉Apache (mod_php, mod_security, mod_rewrite etc) ◉php 5.6 Серверная архитектура
  9. 9. Серверная архитектура ◉Экономить на серверах не стоит ◉Необходим запас мощности ◉Планы бэкапа и восстановления ◉Сложные в поддержке решения - только если это оправдано
  10. 10. Intel SSD Intel S3700 SSD Intel P3600 NVMe SSD Чтение/запись 500 / 460 MBPs 2600 / 1700 MBPs IOPS 75 K / 36 K 450 K / 70 K Латентность 50/65 µs 20 µs
  11. 11. Обработка фидов данных Используем элементы ◉<Рубрика магазина> ◉<id товара> ◉<Вендор> ◉<Код товара> ◉<Наименование>
  12. 12. Обработка фидов данных Обработка прайс-строки ◉Определение каталога hotline ◉База истории обработки ◉Привязка товара к карточке ◉Обновление цены ◉Пересчет данных
  13. 13. Redis ◉Key-value, Sets, Sorted sets, Lists, Hashes ◉Управление очередью ◉Репликация данных ◉Логирование(системные операции, пользовательские запросы) ◉Счетчики, топы
  14. 14. Sphinx Disk-based индексы ◉7 индексов ◉5000000 записей ◉2500000 поисковых запросов в сутки ◉~0.02 секунды поиск по всем индексам
  15. 15. Sphinx Real-time индекс ◉12000000 записей ◉700000 поисковых запросов в сутки ◉~0.1 секунда время запроса
  16. 16. Sphinx Live индекс предложений фирм ◉Очередь обработки прайсов ◉Обновление разницы с предыдущим состоянием прайса
  17. 17. Код ◉Проектирование схемы хранения данных ◉Проектирование кода (SOLID) ◉Code review
  18. 18. Hotline Checkout Требования к системе ◉Двухстадийное списание ◉Подбор корзины из разных магазинов ◉Ввод данных карты на hotline.ua Необходимость соответствия стандартам PCI DSS
  19. 19. Hotline Checkout ◉Разделение серверов БД и Web ◉2 файрволла Fortigate (под ними всё на “серых” IP) ◉Видеонаблюдение в датацентре и в серверной в офисе ◉OSSIM (сбор событий безопасности) ◉Регулярные тесты на проникновение
  20. 20. Что еще используем ◉Redmine + Agile плагин ◉Trello - доска задач ◉GTM + Measurement Protocol - аналитика ◉Mandrill - рассылки, транзакционные письма Logstash + Kibana - сбор логов Munin, Zabbix - мониторинг, алерты rsnapshot, Bacula - бэкап
  21. 21. Вопросы ? Пишите нам «Обратная связь» на hotline.ua Благодарим за внимание! admin@hotline.ua

×