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

Переход к SoA архитектуре

HappyDev'13
December 07, 2013

Переход к SoA архитектуре

Антон Плешивцев

HappyDev'13

December 07, 2013
Tweet

More Decks by HappyDev'13

Other Decks in Programming

Transcript

  1. Intro • 20 000 запросов в час • 13 гигабайт

    данных в минуту • 6000+ билетов в сутки • 60 одновременных запросов
  2. Legacy • 1 RoR приложение • Множество функций • Поиск

    • Сбор статистики • Сбор информации о ценах • Рассылки • …
  3. RoR search • 350 mb памяти на процесс • Blocking

    io • Запуск Rails-приложения до 15 секунд
  4. Вариант #1 Оставить как есть 0 175 350 525 700

    Июль Август Сентябрь Октябрь Ноябрь Декабрь
  5. Наш рецепт • Больше явности • Легкий движок • DSL

    для конфигурирования • RESTful-компоненты • SoA-архитектура
  6. Поддерживаем DSL {"rt_search": { "s": [ "params_validator" "countries_extender", { "p":

    [ {"s": ["ozon_gate"]}, {"s": ["eviterra_gate"]}, {"s": ["onetwotrip_throttler","onetwotrip_gate"]}] }, "merge" ]}};
  7. Прикладной пример #2 (…) add [2, 3, -15] ? (345

    - 99 * a) + (77 + 234 * b) + c add 5 (…)
  8. Данные в системе • Справочники • курсы валют • аэропорты

    • Логи • поиски • клики • Динамические данные • диплинки • результаты поиска
  9. Справочники • ФС или kyotocabinet, mmap для экономии памяти •

    Синхронизация данных - inotify • Синхронизация внутри кластера - rsync
  10. Итого • С системой может работать не программист • Отладка

    упростилась в разы • Система разворачивается двумя командами • Экономия на ресурсах