Upgrade to Pro — share decks privately, control downloads, hide ads and more …

«Средства обеспечения отказоустойчивости высоконагруженных систем»

«Средства обеспечения отказоустойчивости высоконагруженных систем»

Презентация с выступления Антона Щербакова (Aviasales.ru)

HackDay Russia

September 19, 2013
Tweet

More Decks by HackDay Russia

Other Decks in Programming

Transcript

  1. Средства
    обеспечения
    отказоустойчивости
    высоконагруженных
    систем
    Антон Щербаков

    View Slide

  2. Поисковый движок

    View Slide

  3. Первые версии aviasales.ru

    View Slide

  4. Боевая конфигурация
    приложения и первые проблемы
    нагрузки.
    Ruby 1.9.2,
    Rails 3.0,
    NGINX + Phusion Passenger

    View Slide

  5. Балансировка нагрузки.

    View Slide

  6. Масштабирование базы
    данных.

    View Slide

  7. Слабая связанность
    компонентов.

    View Slide

  8. Способы достижения слабой
    связанности компонентов.

    ● Выделение независимых подсистем,
    взаимодействие с которыми
    происходит через API
    ● Использование очереди сообщений
    как системной шины

    View Slide

  9. API поиска авиабилетов.
    Взаимодействие с заграничной версией
    сайта.

    View Slide

  10. API поиска авиабилетов.
    Партнёрская программа.

    View Slide

  11. API поиска авиабилетов.
    Отделение клиентской части.

    View Slide

  12. Использование очереди
    сообщений. Преимущества.

    ● Масштабируемость
    ● Буфферизация
    ● Анализ потоков данных и выявление
    узких мест архитектуры

    View Slide

  13. Выбор библиотеки обмена
    сообщениями

    ● ZeroMQ
    ● Redis
    ● RabbitMQ

    View Slide

  14. Конфигурация RabbitMQ

    View Slide

  15. Выделение независимых
    подсистем

    View Slide

  16. Выделение системы минимальных цен
    в отдельный проект

    View Slide

  17. Проблемы изначальной
    реализации системы минимальных
    цен
    ORIGIN DESTINATION DEPART DATE RETURN DATE VALUE
    MOW LED 2013-09-17 2013-09-22 10000
    MOW LED 2013-09-17 2013-09-25 15000
    LED BKK 2013-10-05 NULL 15000
    ORIGIN DESTINATION BEGINNING ONE WAY VALUE
    MOW LED 2013-09-01 FALSE 10000
    LED BKK 2013-10-01 TRUE 15000
    MINIMAL PRICES
    BEST PRICES

    View Slide

  18. Оптимизировання конфигурация
    системы минимальных цен
    ● Передача данных через очередь
    сообщений
    ● Хранение данных в Redis
    ● Взаимодействие через публичное API

    View Slide

  19. Использование очереди при реализации
    системы PUSH-нотификаций мобильного
    приложения

    View Slide

  20. Системы мониторинга.

    View Slide

  21. Система мониторинга.
    ● New Relic
    ● Zabbix
    ● Monit
    ● Pingdom

    View Slide

  22. Выводы
    ● Разделяй и властвуй
    ● Всему свое время
    ● Aviasales не несет ответственности за
    неправильно внедренную технологию :)

    View Slide

  23. Спасибо за внимание
    Антон Щербаков
    aviasales.ru
    @anton_ferio
    Мы ищем таланты!
    [email protected]

    View Slide