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.
События, события
и ещё раз события.
Опыт построения
Event Stream Processing
Strictly ConfidentialStrictly Confidential
• Ведущий разработчик Avito.
• Занимаюсь развитием системы сбора событий.
• PhD...
Strictly ConfidentialStrictly Confidential
• Проблемы сбора событий в микросервисной архитектуре
• Наш выбор и результаты
...
Strictly ConfidentialStrictly Confidential
• JSON с точки зрения программиста
• Бизнес сущность с точки зрения аналитиков
...
Strictly ConfidentialStrictly Confidential
• Комуникация
• Зоопарк технологий
• Аналитика
5
Проблемы сбора событий в микро...
Strictly ConfidentialStrictly Confidential
• Есть множество источников событий (сервисы, приложения, сайт)
• Множество тех...
Strictly ConfidentialStrictly Confidential
• Документация
• Частая синхронизация
• Кодогенерация
• Гильдия
• Единая база с...
Strictly ConfidentialStrictly Confidential
• Монолит
• Fluent для логов и событий
• MongoDB в качестве временного хранилищ...
Strictly ConfidentialStrictly Confidential
• Монолит + микросервисы
• Fluent для логов и ESP для событий
• MongoDB в качес...
Strictly ConfidentialStrictly Confidential
• Система сбора событий.
• Является единой точкой входа для событий с различных...
Strictly ConfidentialStrictly Confidential 11
Strictly ConfidentialStrictly Confidential 12
Strictly ConfidentialStrictly Confidential 13
Strictly ConfidentialStrictly Confidential 14
Strictly ConfidentialStrictly Confidential 15
Проблемы
• версионирование схем событий и окружение
• различные реализации о...
Strictly ConfidentialStrictly Confidential 16
Strictly ConfidentialStrictly Confidential 17
Strictly ConfidentialStrictly Confidential 18
Strictly ConfidentialStrictly Confidential 19
Strictly ConfidentialStrictly Confidential
• Точка синхронизации
• База всех событий и полей
• Генерация документации
• Ко...
Strictly ConfidentialStrictly Confidential
• Нет четкого маршрута событий
• Fluent не позволяет динамически подписываться ...
Strictly ConfidentialStrictly Confidential 22
Strictly ConfidentialStrictly Confidential 23
Нет четкого маршрута
событий
Strictly ConfidentialStrictly Confidential 24
Strictly ConfidentialStrictly Confidential 25
Смешение логов и
событий
Strictly ConfidentialStrictly Confidential 26
Fluent не позволяет
динамически подписаться
на часть событий
Смешение логов ...
Strictly ConfidentialStrictly Confidential 27
Strictly ConfidentialStrictly Confidential
• Распределённый и децентрализованный. Без единой точки отказа
• Горизонтальное...
Strictly ConfidentialStrictly Confidential 29
Strictly ConfidentialStrictly Confidential 30
Strictly ConfidentialStrictly Confidential 31
Strictly ConfidentialStrictly Confidential 32
Strictly ConfidentialStrictly Confidential 33
Strictly ConfidentialStrictly Confidential 34
Strictly ConfidentialStrictly Confidential 35
Strictly ConfidentialStrictly Confidential 36
Strictly ConfidentialStrictly Confidential 37
Strictly ConfidentialStrictly Confidential 38
Strictly ConfidentialStrictly Confidential 39
Strictly ConfidentialStrictly Confidential 40
Strictly ConfidentialStrictly Confidential 41
Strictly ConfidentialStrictly Confidential 42
Strictly ConfidentialStrictly Confidential 43
Strictly ConfidentialStrictly Confidential 44
Strictly ConfidentialStrictly Confidential 45
Strictly ConfidentialStrictly Confidential
Strictly ConfidentialStrictly Confidential
Strictly ConfidentialStrictly Confidential
Strictly ConfidentialStrictly Confidential
Strictly ConfidentialStrictly Confidential
Strictly ConfidentialStrictly Confidential
Strictly ConfidentialStrictly Confidential
Strictly ConfidentialStrictly Confidential
• http://nsq.io/talks_and_slides.html
53
New Simple Queue
Strictly ConfidentialStrictly Confidential 54
Strictly ConfidentialStrictly Confidential 55
Strictly ConfidentialStrictly Confidential 56
Strictly ConfidentialStrictly Confidential 57
Снижение
нагрузки на базу
Strictly ConfidentialStrictly Confidential 58
Снижение
нагрузки на базу
Скорость
Strictly ConfidentialStrictly Confidential 59
Снижение
нагрузки на базу
Скорость
Подписка на
событие по
шаблону
Strictly ConfidentialStrictly Confidential 60
Снижение
нагрузки на базу
Скорость
Подписка на
событие по
шаблону
Гибкое
мас...
Strictly ConfidentialStrictly Confidential 61
Снижение
нагрузки на базу
Скорость
Подписка на
событие по
шаблону
снижение в...
Strictly ConfidentialStrictly Confidential
• Упростить архитектуру
• Автоматизация добавления обработки новых событий
• По...
Strictly ConfidentialStrictly Confidential
• Точка связи микросервисов
• Единая база событий
• Кодогенерация
• Автодокумен...
Strictly ConfidentialStrictly Confidential
• aasukhov@avito.ru
• skype:shvilek
64
Мои контакты
White Gardens Business Center, 7 Lesnaya street, Moscow, 125047, www.avito.ruWhite Gardens Business Center, 7 Lesnaya stre...
Upcoming SlideShare
Loading in …5
×

События, события и ещё раз события / Антон Сухов (Avito)

610 views

Published on

РИТ++ 2017
Зал Сан-Паулу, 5 июня, 13:00

Тезисы:
http://ritfest.ru/2017/abstracts/2652.html

BI-аналитикам необходимо собирать множество различных событий из разных источников - с сайта, мобильных устройств и микросервисов. Чем больше событий - тем лучше. Нужная шина, способная пропускать через себя миллионы событий в минуту.

Из доклада вы узнаете, как устроен Event Stream Processing (ESP) в Avito. В том числе я расскажу, какие требования были заложены на этапе проектирования, почему мы были вынуждены отказаться от fluent в пользу NSQ, как реализован единый регистр типов событий и окружений для всех команд, как экспортировать схемы событий в различные форматы, как мы боремся за эффективное расходование железа и масштабируем ESP.

Прослушав доклад, вы узнаете, как создать отказоустойчивую, масштабируемую систему сбора событий с высокой пропускной способностью.

Published in: Engineering
  • Be the first to comment

События, события и ещё раз события / Антон Сухов (Avito)

  1. 1. События, события и ещё раз события. Опыт построения Event Stream Processing
  2. 2. Strictly ConfidentialStrictly Confidential • Ведущий разработчик Avito. • Занимаюсь развитием системы сбора событий. • PhD • Занимался развитем картографического сервиса, поисковых систем. 2 Антон Сухов
  3. 3. Strictly ConfidentialStrictly Confidential • Проблемы сбора событий в микросервисной архитектуре • Наш выбор и результаты • Как мы этого достигли • Итого 3 План
  4. 4. Strictly ConfidentialStrictly Confidential • JSON с точки зрения программиста • Бизнес сущность с точки зрения аналитиков 4 Событие
  5. 5. Strictly ConfidentialStrictly Confidential • Комуникация • Зоопарк технологий • Аналитика 5 Проблемы сбора событий в микросервисной архитектуре
  6. 6. Strictly ConfidentialStrictly Confidential • Есть множество источников событий (сервисы, приложения, сайт) • Множество технологий • Необходимо всё это агрегировать, хранить и обрабатывать • Одно событие должно быть доступно для обработки параллельно и асинхронно 6 Что такое система сбора событий и зачем вот это всё
  7. 7. Strictly ConfidentialStrictly Confidential • Документация • Частая синхронизация • Кодогенерация • Гильдия • Единая база событий • Тех. радар 7 Как же быть?
  8. 8. Strictly ConfidentialStrictly Confidential • Монолит • Fluent для логов и событий • MongoDB в качестве временного хранилища 8 Что было
  9. 9. Strictly ConfidentialStrictly Confidential • Монолит + микросервисы • Fluent для логов и ESP для событий • MongoDB в качестве временного хранилища • CI/CD на основеTeamcity • Kubernetes для управления контейнерами 9 Что есть
  10. 10. Strictly ConfidentialStrictly Confidential • Система сбора событий. • Является единой точкой входа для событий с различных источников (сайт, мобильные платформы, внутренние сервисы) • Является единым источником событий для дальнейшей обработки (анализа) • Предоставляет средство коммуникации между командами • Речь в большей степени идет про события бизнес сущностей • Гибко масштабируется в зависимости от нагрузки 10 Что такое ESP
  11. 11. Strictly ConfidentialStrictly Confidential 11
  12. 12. Strictly ConfidentialStrictly Confidential 12
  13. 13. Strictly ConfidentialStrictly Confidential 13
  14. 14. Strictly ConfidentialStrictly Confidential 14
  15. 15. Strictly ConfidentialStrictly Confidential 15 Проблемы • версионирование схем событий и окружение • различные реализации одного и того же. • мониторинг событий • время доставки сообщений • нет единого источника бизнес требований
  16. 16. Strictly ConfidentialStrictly Confidential 16
  17. 17. Strictly ConfidentialStrictly Confidential 17
  18. 18. Strictly ConfidentialStrictly Confidential 18
  19. 19. Strictly ConfidentialStrictly Confidential 19
  20. 20. Strictly ConfidentialStrictly Confidential • Точка синхронизации • База всех событий и полей • Генерация документации • Кодогенерация • … • PROFIT! 20 Реестр событий
  21. 21. Strictly ConfidentialStrictly Confidential • Нет четкого маршрута событий • Fluent не позволяет динамически подписываться на события • Смешение логов и событий • Отсутствие гибкости масштабирования 21 Тяжелое наследия
  22. 22. Strictly ConfidentialStrictly Confidential 22
  23. 23. Strictly ConfidentialStrictly Confidential 23 Нет четкого маршрута событий
  24. 24. Strictly ConfidentialStrictly Confidential 24
  25. 25. Strictly ConfidentialStrictly Confidential 25 Смешение логов и событий
  26. 26. Strictly ConfidentialStrictly Confidential 26 Fluent не позволяет динамически подписаться на часть событий Смешение логов и событий
  27. 27. Strictly ConfidentialStrictly Confidential 27
  28. 28. Strictly ConfidentialStrictly Confidential • Распределённый и децентрализованный. Без единой точки отказа • Горизонтальное масштабирование • Написан на GO • Легко встраивается • Легко настраивается 28 Почему NSQ?
  29. 29. Strictly ConfidentialStrictly Confidential 29
  30. 30. Strictly ConfidentialStrictly Confidential 30
  31. 31. Strictly ConfidentialStrictly Confidential 31
  32. 32. Strictly ConfidentialStrictly Confidential 32
  33. 33. Strictly ConfidentialStrictly Confidential 33
  34. 34. Strictly ConfidentialStrictly Confidential 34
  35. 35. Strictly ConfidentialStrictly Confidential 35
  36. 36. Strictly ConfidentialStrictly Confidential 36
  37. 37. Strictly ConfidentialStrictly Confidential 37
  38. 38. Strictly ConfidentialStrictly Confidential 38
  39. 39. Strictly ConfidentialStrictly Confidential 39
  40. 40. Strictly ConfidentialStrictly Confidential 40
  41. 41. Strictly ConfidentialStrictly Confidential 41
  42. 42. Strictly ConfidentialStrictly Confidential 42
  43. 43. Strictly ConfidentialStrictly Confidential 43
  44. 44. Strictly ConfidentialStrictly Confidential 44
  45. 45. Strictly ConfidentialStrictly Confidential 45
  46. 46. Strictly ConfidentialStrictly Confidential
  47. 47. Strictly ConfidentialStrictly Confidential
  48. 48. Strictly ConfidentialStrictly Confidential
  49. 49. Strictly ConfidentialStrictly Confidential
  50. 50. Strictly ConfidentialStrictly Confidential
  51. 51. Strictly ConfidentialStrictly Confidential
  52. 52. Strictly ConfidentialStrictly Confidential
  53. 53. Strictly ConfidentialStrictly Confidential • http://nsq.io/talks_and_slides.html 53 New Simple Queue
  54. 54. Strictly ConfidentialStrictly Confidential 54
  55. 55. Strictly ConfidentialStrictly Confidential 55
  56. 56. Strictly ConfidentialStrictly Confidential 56
  57. 57. Strictly ConfidentialStrictly Confidential 57 Снижение нагрузки на базу
  58. 58. Strictly ConfidentialStrictly Confidential 58 Снижение нагрузки на базу Скорость
  59. 59. Strictly ConfidentialStrictly Confidential 59 Снижение нагрузки на базу Скорость Подписка на событие по шаблону
  60. 60. Strictly ConfidentialStrictly Confidential 60 Снижение нагрузки на базу Скорость Подписка на событие по шаблону Гибкое масштабирование
  61. 61. Strictly ConfidentialStrictly Confidential 61 Снижение нагрузки на базу Скорость Подписка на событие по шаблону снижение времени доставки события Гибкое масштабирование
  62. 62. Strictly ConfidentialStrictly Confidential • Упростить архитектуру • Автоматизация добавления обработки новых событий • Полное избавление от недостатков старого наследия 62 Планы
  63. 63. Strictly ConfidentialStrictly Confidential • Точка связи микросервисов • Единая база событий • Кодогенерация • Автодокументация • CI/CD • Масштабирование • Автоматизация • Обработка параллельно и асинхронно 63 Итого
  64. 64. Strictly ConfidentialStrictly Confidential • aasukhov@avito.ru • skype:shvilek 64 Мои контакты
  65. 65. White Gardens Business Center, 7 Lesnaya street, Moscow, 125047, www.avito.ruWhite Gardens Business Center, 7 Lesnaya street, Moscow, 125047, www.avito.ru Thank you for
 your attention! White Gardens Business Center, 7 Lesnaya street, Moscow, 125047, www.avito.ru

×