Рад представить вам 48-й выпуск SDCast’а! У меня в гостях Михаил Тюрин, главный системный архитектор AVITO.ru. В этом выпуске речь идет об архитектуре AVITO в целом, как оно работает изнутри и на каких технологиях базируется.
Миша работает в AVITO с основания, поэтому кому, как не ему знать как там все устроено. Мы не углублялись далеко в технические подробности, но обсуждали архитектуру системы в целом, затрагивая различные ключевые вопросы и компоненты. Миша рассказал про стек используемых технологий, как с точки зрения разработки, так и про используемые сервисы, серверы приложений, баз данных и т. д.
Мы довольно подробно разобрали, как система обрабатывает запрос, начиная от нажатия кнопки «Submit» в браузере, что происходит с данными запроса в бэкенде, какие сервисы участвуют в обработке, в какие очереди раскладываются задачи и заканчивая тем, каким образом обновляются данные во всей системе для других пользователей.
Не обошли мы стороной и вопросы отказоустойчивости, масштабирования и безопасности системы в целом, и некоторых ключевых компонентов в частности.
Так же довольно подробно пообщались про базы данных и PostgreSQL в частности. Затронули вопросы взаимодействия клиентского кода приложений с БД, обновления и миграции данных.
Миша является активным участником сообщества #PostgreSQLRussia, он сам активно выступает на разных конференциях и встречах, равно как и ребята из его команды, так что мы пообщались и на эту тему тоже.
Ссылки на ресурсы по темам выпуска:
- Слайды доклада Михаила Тюрина с Highload++ 2015 “Где живут Ваши объявления”
- Слайды доклада Михаила Тюрина “Большая база объявлений”
- Слайды доклада Константина Евтеева с PgConf.Russia 2016 “Поток данных в Авито”
- Слайды доклада Сергея Бурладяна с PgConf.Russia 2016 “Администрирование PostgreSQL в Avito” (слайды, pdf)
- Доклад Сергея Бурладяна с Highload++ 2015 “Реализация восстановления после аварий”
- Статья “Event-Driven Data Management for Microservices”
- Заметки в блоге Nginx про микросервисы
- Видео со встреч сообщества #PostgreSQLRussia в AVITO: