Демонстрация работы Авито на примере пути объявления

Пристрой

кота

Проследи путь объявления и узнай, как устроена работа Авито

Авито — это 150 000 000 актуальных объявлений: животные, квартиры, машины, резюме, техника и тысячи других вещей.

Но это не просто доска объявлений — за ней стоит работа большой команды.

  • 2000сервисов
  • 5500сотрудников
  • 4дата-центра
  • 100+релизов в день

Подать объявление на Авито проще простого, пара кликов — и готово!

Но за простыми кликами скрывается куча процессов и людей. Сейчас ты всё узнаешь.

  • Москва
  • Животные
  • Кошки
  • Не породистые

Отдам кота

Добавить в избранное

Интересуется технологиями, любит жать на кнопки.

Как продать что-нибудь ненужное?

Hужно купить что-нибудь ненужное, нужны отлаженные процессы и функциональность. Поэтому в Авито всё построено на взаимодействии горизонталей и вертикалей.

Структура Авито

Вертикали пилят уникальные фичи с тонкими настройками под определённые категории и особенности объявлений.

Goods & Transactions
Товары
размеры
Re, Jobs, Services & Auto
Работа
офис /
удалёнка
Недвижимость
количество
комнат
Услуги
дома /
в салоне
Авто
марки
авто
Кластер из горизонтали добавил фильтры для поиска
Вертикали добавили спецификацию
Вау, получились идеальные фильтры!

Горизонтали создают инструменты, модели и функциональность, которые используются во всех объявлениях.

Advertising / Monetization
Search & Recommendation
Trust & Safety
Tech Platform

Работая сообща, они пилят идеальные фичи. Например, кластер из горизонтали сделал фильтры для поиска, а вертикали добавили спецификацию.

Goods & Transactions
Товары
размеры
Re, Jobs, Services & Auto
Работа
офис /
удалёнка
Недвижимость
количество
комнат
Услуги
дома /
в салоне
Авто
марки
авто

Идеальные фильтры

фильтры
Search & Recommendation

Платформа

Путь объявления начинается с Tech Platform — глобальной технической базы, которая обеспечивает работу всей экосистемы Авито.

1. Tech Platform

Включаем сотни микросервисов

Когда человек создаёт объявление на мобильном устройстве, оно попадает в кластер Mobile.

Кластер Mobile

Гарантируем производительность мобильной разработки

Кластер Mobile фокусируется на мобильной платформе Авито: команды разрабатывают и продвигают общие архитектурные подходы, стандарты качества кода и поддержку платформенных библиотек.

Кластер предоставляет продуктовым командам инструменты для разработки, развивает CI/CD и улучшает Developer Experience.

Каждое изменение в коде запускает десятки тысяч тестов. Команды распределяют эту нагрузку между сотней билд-серверов и пишут софт для оптимизации этих процессов.

Где рекомендательное письмо?

Скоро меня будет легко найти в поиске или через рекомендации. Но прежде чем объявление попадёт туда, оно пройдёт через балансировщики, сеть, инфраструктуру и сервисы архитектуры.

Кластер Infrastructure

Строим надёжную инфраструктуру

Кластер Infrastructure развивает железную, сетевую, виртуальную и облачную инфраструктуру из тысяч серверов, сотен терабайт и тысячи инстансов БД, в которой хранятся все данные Авито: от уровня Bare Metal до уровня сервисов.

Задачи разнятся от деплоя новых инстансов и мониторинга до проектирования геораспределённых гибридных сетапов и разработки автоматизированных систем управления, aka IaaS.

Уверен, в таких делах не обойтись без планирования...

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

А что с оптимизацией?

Исследуем всё, что может оптимизировать и упростить работу. Например, изучаем новые версии баз данных или придумываем, как автоматизировать инфраструктуру.

А вы разбираетесь в архитектуре?

Работа объявления (и моя судьба) зависят от разных сервисов. Какой из них нужен — определяет обращение к архитектуре. В подаче объявления это, например, сервисы кластера Seller X.

Кластер Architecture

Обеспечиваем стабильность и масштабируемость

Кластер Architecture развивает высокоуровневую архитектуру, чтобы с ростом компании не замедлялась скорость доставки продуктовых фич и их техническое качество.

Мы избавляем разработчиков от рутины и снижаем когнитивную нагрузку с помощью PaaS, формируем архитектурные принципы, разрабатываем сервисы для хранения данных. Словом, создаем архитектуру всего Авито.

Dev tools

  • PааS CLI
  • PaaS Dashboard
  • libraries
  • minikube
  • dotenv
  • reloader
  • brief

Runtime tools

  • Elastic
  • prometheus
  • jaeger
  • sentRy
  • harbor

Cloud, Provisioning, Runtime

  • jide
  • Redis Operator
  • Helm
  • ingress controller
  • data-bus
  • kafka
  • navigator
  • Netramesh
  • VAULT
  • soc
  • fluentbit
  • kubernetes
  • calico
  • Docker
  • debian
  • puppet
«

У нас 2000+ микросервисов, несколько дата-центров, больше 10 000 000 запросов в минуту — здесь важна стабильность, масштабируемость и в то же время простота и удобство для использования на множестве платформ.

»

Именно здесь инициировали и распилили монолит! РАСПИЛИЛИ МОНОЛИТ! со стороны бэка и не дали ему заглохнуть:

  • перевели легаси в k8s
  • организовали локальное взаимодействие
  • к минимуму свели важность монолита для компании

2019 год: все 1,7 млн запросов в минуту идут на монолит

2023 год: 10 млн запросов в минуту распределяются по микросервисам

МОНОЛИТ

Кластер Seller Experience

Делаем жизнь продавцов проще

Кластер Seller Experience делает удобную, быструю, надёжную подачу и управление объявлениями через личный кабинет. Это горизонтальная команда, поэтому работает сразу со всеми вертикалями и учитывает интересы пользователей каждой. В таких задачах нужны сложные технически, но простые с точки зрения пользователя решения.

Анимация: иконки движутся по кругу

Это магия какая-тоКаждый день на Авито можно найти 150+ млн активных объявлений — именно ребята из Seller X делают это возможным.

150 000 000активных
объявлений

градиент

Кластер Information Security

Поддерживаем стабильную работу
Авито

Кластер Information Security занимается безопасностью Авито.

Мы разрабатываем сканеры, которые автоматически находят уязвимости в коде до того, как они попадут в продакшн.

Наши системы защиты отражают атаки из интернета, борются с парсерами и другими ботами, которые пытаются собирать данные пользователей.

Кластер Information Security

Поддерживаем стабильную работу
Авито

Кластер Information Security занимается безопасностью Авито.

Мы разрабатываем сканеры, которые автоматически находят уязвимости в коде до того, как они попадут в продакшн.

Наши системы защиты отражают до 3 млн. атак из интернета в месяц и блокируют парсеров и других ботов, которые пытаются собирать данные пользователей.

Кластер DS SWAT

Обрабатываем и извлекаем информацию из картинок

Кластер DS SWAT анализирует картинки на соответствие правилам. А ещё именно благодаря этому кластеру Авито предсказывает категории в момент подачи объявления: по картинке и описанию объявления.

  • Москва
  • Животные
  • Кошки
  • Не породистые

Отдам кота

Добавить в избранное

Интересуется технологиями, любит жать на кнопки.

  • Москва
  • Животные
  • Кошки
  • Не породистые

Продам кота

Добавить в избранное

Интересуется технологиями, любит жать на кнопки.

Ура, фото добавлено! Продолжаем путешествие по Tech Platform!

Кластер Analytics Platform

Анализируем
события

Кластер Analytics Platform разрабатывает платформу, с помощью которой аналитики, инженеры и менеджеры продукта смогут решать аналитические задачи быстро и самостоятельно.

Кластер Analytics Platform

Анализируем
события

Кластер Analytics Platform создает бигдата-фреймворки для
оптимизации продуктов Авито и разрабатывает платформу, с помощью которой аналитики, инженеры и менеджеры продукта могут решать аналитические задачи быстро и самостоятельно. В результате продуктовая культура команды улучшается, а рутинные задачи аналитиков сводятся к нулю.

Что позволяет делать аналитическая платформа

  • Clickstream

    логировать аналитические события и обогащать их на потоке, строить realtime-аналитику.

  • Integration

    настроить регулярную загрузку данных в DWH, интегрировать свой сервис с аналитическими данными.

  • Datamart

    настроить регулярный расчёт данных в DWH, пересчитать их в историю.

  • Usage

    найти данные, написать запросы, построить дашборд, определить аномалии в данных.

  • AB

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

  • Clickstream

    логировать аналитические события и обогащать их на потоке, строить realtime-аналитику.

  • Integration

    настроить регулярную загрузку данных в DWH, интегрировать свой сервис с аналитическими данными.

  • Datamart

    настроить регулярный расчёт данных в DWH, пересчитать их в историю.

  • Usage

    найти данные, написать запросы, построить дашборд, определить аномалии в данных.

  • AB

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

Кластер Trust&Safety

Поддерживаем безопасность

Кластер Trust&Safety делает сервисы Авито надёжными и безопасными. Вход в профиль, распознавание хорошего пользователя от недобросовестного или робота, сбор мнения об объявлении, получение 5 звёзд за продажу — это часть того, что делают ребята из кластера T&S.

Moderation

Техплатформа отработала на отлично.

Объявление летит дальше, на очереди — модерация.

Модерация

2. Модерация

Модерация запущена

Тишина! идёт модерация
Объявление 1
Объявление 2
Объявление 3
Объявление 4
Объявление 5
Объявление 6
Объявление 7
Объявление 8
Первый этап
Второй этап
Наш кот такой один, объявление идёт дальше!
А вот объявление 6 и 8 подозрительны: названия разные, а вот фото и описание — один в один. Это дубликаты! Они не проходят модерацию.
Объявление 1 не прошло проверку, служба модерации отклоняет его.
А мы ничего «запрещённого» не продаём, объявление с котиком едет дальше.
Хорошее описание и классные фото — никакая модерация не устоит! Переходим к публикации.

Кластер Moderation

Проверяем объявление

Кластер Moderation автоматически блокирует 95% неразрешённого контента до публикации. Остальные 5%, которые попробовали обхитрить систему, быстро обнаруживаются командой и блокируются.

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

Мы защищаем площадку и добросовестных юзеров, а ещё создаём инструменты автоматизации для модераторов. Например, через сложные ML-алгоритмы система ищет дубли среди 150 000 000 объявлений.

Мы отслеживаем изменения законодательной и технической сферы, чтобы при необходимости корректировать код.

Ещё вчера самогонные аппараты было нельзя продавать, а сегодня уже можно (вот сюрприз!), и наоборот — продажа сертификатов вакцинации появилась неожиданно, и реагировать на это нужно сразу же.

Благодаря развитой аналитике и постоянному анализу платформы и пользовательского опыта, большинство объявлений проходят модерацию с первого раза!

Публикация объявления

3. Публикация

Я — сантехник!

Отдам Кота

Отдам картину

с котиками

Новая собака

Продам утюг

Клетка

для котиков

Набираю популярность!

После модерации объявление обо мне попадает в базу данных и индексируется поисковиками. Для оценки популярности начинают логироваться аналитические события. Несколько ML-моделей обрабатывают публикацию, чтобы она попала в разные каналы рекомендаций для пользователей.

Вы видели, какой потрясающий кот? Я знаю, кто должен его увидеть!

Набираю популярность!

После модерации объявление обо мне попадает в базу данных и индексируется поисковиками. Для оценки популярности начинают логироваться аналитические события. Несколько ML-моделей обрабатывают публикацию, чтобы она попала в разные каналы рекомендаций для пользователей.

Кластер Search&Recommendations

Настраиваем алгоритмы рекомендаций

Кластер Search&Recommendations обеспечивает работоспособность и гибкость инфраструктуры поиска, чтобы команды безопасно шипили продуктовые изменения. Но главное, мы делаем так, чтобы покупатели встретились с продавцами.

В основе сайта лежит свой собственный поисковый движок на C++, который оперирует сотнями миллионов документов на кластерах машин.

Сейчас лента персональных рекомендаций — это смешение нескольких моделей, одна из которых берёт объявления, похожие на те, что пользователь смотрел, и ранжирует их.

Как работает система похожих объявлений?

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

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

  • Москва
  • Животные
  • ·
  • Кошки
  • Не породистые
  • Отдам кота
  • 0 ₽
  • Москва
  • Животные
  • ·
  • Кошки
  • Не породистые
  • Продам кота
  • 10 ₽

У них одинаковая локация, близкая стоимость и порода.

Чтобы понять, какие объявления похожи, на помощь приходят данные — параметры, которые совпадают у объявлений, которые пользователи Авито смотрят вместе.

На основе этих данных, наши умные модели определяют, какие параметры важнее, и находят «похожие» объявления.

Как работают рекомендации?

  • Шаг 1

    Передаём данные умным моделям. Они созданы по категориям объявлений, всего 14 штук.

  • Шаг 2

    Переводим данные в 128-мерный вектор. Подробнее читай в нашей статье.

  • Шаг 3

    Помещаем векторы-представления в базу данных.

  • Шаг 4

    По запросу в базу данных мы ранжируем объявления по близости векторов.

  • Шаг 5

    Выводим список похожих объявлений. Модель считает похожими те, которые лежат ближе друг к другу.

  • Шаг 1

    Передаём данные умным моделям. Они созданы по категориям объявлений, всего 14 штук.

  • Шаг 2

    Переводим данные в 128-мерный вектор. Подробнее читай в нашей статье.

  • Шаг 3

    Помещаем векторы-представления в базу данных.

  • Шаг 4

    По запросу в базу данных мы ранжируем объявления по близости векторов.

  • Шаг 5

    Выводим список похожих объявлений. Модель считает похожими те, которые лежат ближе друг к другу.

Объявления, которые пользователи смотрят вместе, Авито считает похожими. Это технология item2item — она не зависит от того, что юзер делал на сайте. Похожие объявления одинаковы для всех.

Объявления, которые пользователи смотрят вместе, Авито считает похожими. Это технология item2item — она не зависит от того, что юзер делал на сайте. Похожие объявления одинаковы для всех.

Поверх этого алгоритма работают умные подсказки, которые учитывают множество языковых моделей. Например, они различают 64 варианта слова «комбинезон». Или поймут, что человек ищет «ксерокс», как бы он его ни написал.

Найти того самого не так-то просто

Если рекомендаций недостаточно, то можно обратиться к внутреннему поиску Авито.

Над функциональностью поиска сообща работают кластеры Search&Recommendations и Buyer Experience.

Лайк!

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

1 000 000

звонков проходит через систему за сутки! Количество растёт кратно, и скоро система выйдет на уровень небольших операторов связи.

Телефон
пользователя

Оператор сотовой
связи

Микросервис
обработки звонков

Кластер Search&Recommendations

Фундамент поиска

Кластер Search& Recommendations делает фундамент поиска. Разработка движка на C++ в целом, расчёт сигналов ранжирования в частности, доставка кучи данных, оперирование нескольких кластеров (и основной поиск сайта, и ещё несколько больших и важных) — это всё мы.

Кластер Buyer Experience

Улучшаем опыт покупателей

Кластер Buyer Experience улучшает опыт покупателей в целом.

Задача кластера — улучшить жизнь покупателей на всём пути до совершения сделки. Мы добиваемся этого за счёт улучшения интерфейсов, создания новых механик поиска, потребления контента и совершения сделок.

Здесь делают все карты — это одна из самых востребованных функций для поиска. А ещё отдельные команды помогают объявлениям индексироваться в поисковиках, чтобы их можно было найти не только внутри Авито.

Мы активно адаптируем новые технологии. Например, сейчас в сервисе избранных объявлений мы перешли на CockroachDB, облачную базу данных с поддержкой ACID. А в будущем планируем перенести туда весь функционал по отложенному спросу: подборки, сохраненные поиски, всё то, что можно полайкать.

Кластер Communications

Развиваем платформу коммуникации

Кластер Communications развивает самописную платформу звонков и мессенджер.

Мессенджер — самый популярный способ коммуникации на площадке, через него проходят миллиарды сообщений. Можно сказать, вечный хайлоад. Пользователи общаются онлайн напрямую, поэтому здесь особенно важно, чтобы чаты оставались консистентны, а система работала быстро.

Входящий вызов
Тот самый человек

Когда кота увидит Тот Самый Человек, то сразу же сможет написать или позвонить через внутренние сервисы Авито, а мы подменим его номер телефона, чтобы его не узнали злоумышленники.

Чтобы всё корректно работало, кластер Quality следит за качеством всех разработок в Авито.

Кластер Quality

Помогаем
программистам

Кластер Quality предоставляет инструменты, методологии и компетенции, которые обеспечивают качество продукта. Например, чтобы тесты не приходилось сначала писать, а потом автоматизировать в коде, мы сделали возможность хранения и выгрузки тестов в тестовую модель сразу из кода. На всех поддерживаемых языках программирования в компании!

«

Здесь мы разработали систему мониторинга, которая среди тысячи метрик автоматом вычисляет сломанную, а затем находит среди 5 500 сотрудников Авито того, кто может
это исправить.

»

Кластер Marketplace

Приближаем пользовательский опыт к покупкам в интернет-магазинах

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

Большая часть наших пользователей привыкли покупать и продавать, встречаясь лично в метро. Мы изобретаем способы помочь людям переосмыслить эту привычку и, в итоге, доверить свой товар Авито Доставке, сэкономив своё время.

Я в корзину не полезу!

На этом этапе продавец может указать, сколько вещей у него в наличии, а покупатель — выбрать в корзине несколько товаров от разных продавцов и оплатить их одной транзакцией. Но котика в корзину не добавишь — только из рук в руки. К тому же меня отдают бесплатно.

Я в корзину не полезу!

На этом этапе продавец может указать, сколько вещей у него в наличии, а покупатель — выбрать в корзине несколько товаров от разных продавцов и оплатить их одной транзакцией. Но котика в корзину не добавишь — только из рук в руки. К тому же меня отдают бесплатно.

Кластер Logistics

Делаем логистику как платформу

Кластер Logistics отвечает за Авито Доставку и решает множество задач: от работы со службами доставки до обработки претензий и арбитражных кейсов.

А как службы доставки интегрируются в Авито?

Мы прошли долгий путь от кастомных интеграций до единого общего API на нашей стороне, который позиционируем как оптимальный способ IT-взаимодействия с логистикой Авито. Новым партнёрам предоставляем необходимую документацию и отдельно договариваемся о технических SLA.

Для выбора удобной службы доставки продавцу и покупателю нужно договариваться?

Нет. Сейчас доступна кросс-доставка: продавец выбирает удобный способ отправки при публикации объявления, а покупатель выбирает тот, что больше подходит ему.

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

Как в целом следите, чтобы всё хорошо работало?

Мы научились предупреждать пользователей о сбоях, чтобы спасти нервы клиентов и сэкономить время поддержки. Следим за uptime метриками ключевых сценариев, бизнес-показателями и ставим перед собой амбициозные цели по SLA внутренних сервисов. Ещё договариваемся об уровне качества интеграций со службами доставки.

Ну и, разумеется, под каждый сервис и продукт собираем дашборды для постоянного мониторинга. «Хорошо» для логистики — это заказы, доставленные вовремя по минимальной цене и с прозрачными коммуникациями для покупателя и продавца.

Коты против пластика! Готовьте нал.

Меня отдают в добрые руки бесплатно. Но вообще таких, как я, можно оплатить только наличкой. А вот игрушки и лежанку можно заранее оплатить онлайн и получить курьерской доставкой.

Коты против пластика! Готовьте нал.

Меня отдают в добрые руки бесплатно. Но вообще таких, как я, можно оплатить только наличкой. А вот игрушки и лежанку можно заранее оплатить онлайн и получить курьерской доставкой.

Кластер Financial Marketplace

Выстраиваем систему транзакций

В Кластере Financial marketplace
мы занимаемся двумя важными вещами: помогаем людям платить и помогаем не платить сразу — занимаемся кредитными продуктами.

Особое внимание уделяют бесшовности взаимодействия в работе с платежами и для пользователей, и для внутренних команд.

Объявление проходит заключительный шаг пользовательского сценария.

И для кота, и для пользователя он безопасный и быстрый.