Skip to content

Авито нн автомобили: купить, продать и обменять машину

Итоги национальной премии «АВТОДИЛЕР ГОДА – 2020»

28 мая 2020 года

Аналитическое агентство «АВТОСТАТ» и Авито Авто озвучили итоги 6-й национальной премии «АВТОДИЛЕР ГОДА – 2020». Учитывая сложившуюся ситуацию, церемония награждения победителей проводилась в режиме онлайн (на сайте autodealerawards.ru). Генеральный партнер премии – ЛУКОЙЛ Смазочные материалы.

Целью национальной премии «АВТОДИЛЕР ГОДА» является определение наиболее передовых дилерских центров и холдингов в сфере организации продаж и сервиса. К участию в ней были приглашены абсолютно все официальные дилерские центры со всей России (около 3,3 тысячи). На основе анализа деятельности нескольких сотен дилерских центров экспертами агентства «АВТОСТАТ» (на базе полученной интегральной оценки в баллах) были определены лидеры 2020 года.

Как и прежде, в общероссийский рейтинг вошли лидеры рынка авторитейла. При этом все дилерские центры были сгруппированы не только по трем сегментам (массовый, премиум, Luxury), но и по месту географического расположения. В массовом сегменте – отдельно «соревновались» Москва, Санкт-Петербург, Центральный регион (ЦФО и СЗФО), Приволжский регион (ПФО), Южный регион (ЮФО и СКФО), Восточный регион (УФО, СФО и ДФО). В премиальном – Москва и Санкт-Петербург, регионы. В Luxury – вся Россия.

Что касается холдингов, то их эксперты тоже разделили на три группы, в зависимости от масштаба бизнеса: до 10 дилерских контрактов; 10 – 20 дилерских контрактов; более 20 дилерских контрактов. В каждой группе были названы победители в следующих номинациях:

— лучший дилер / холдинг по организации продаж новых автомобилей;
— лучший дилер / холдинг по организации продаж автомобилей с пробегом;
— лучший дилер / холдинг по организации сервиса.

Кроме того, второй год подряд Авито Авто определяет победителя в номинации «Маркетинг – Автомобили с пробегом», в которой участвовали как официальные, так и независимые дилерские центры со всей России. Эта номинация представляет собой рейтинг дилерских центров, составленных на основе анализа данных по размещению объявлений на Авито. Здесь были рассчитаны следующие показатели:

— оборачиваемость склада дилерского центра для автомобилей с пробегом сегмента масс-маркет;
— оборачиваемость капитала дилерского центра для автомобилей с пробегом премиум-сегмента.

Также в рамках проекта были определены лучшие дилерские сети в специальной номинации «Доверие потребителей» (в массовом и премиальном сегментах), которая основана на опросе автовладельцев – участников панели аналитического агентства «АВТОСТАТ» и пользователей Авито Авто. В опросе приняли участие более 15 000 российских автовладельцев, которые в 2019 году обслуживали свой автомобиль у официального дилера.

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

Татьяна Малыгина, руководитель отдела маркетинга аналитического агентства «АВТОСТАТ», куратор проекта «АВТОДИЛЕР ГОДА»:

— Это уже шестая по счету премия «АВТОДИЛЕР ГОДА» и мы очень рады, что в непростое для дилерского сообщества время (уход отдельных брендов с российского рынка, сокращение модельных рядов и дилерской сети, сложная экономическая ситуация) интерес к ней растет. В этом году мы получили более 500 заявок от дилеров и холдингов, и это не только постоянные, но и новые участники.

Напомню, что уникальность нашей премии состоит в том, что мы оцениваем различные аспекты работы дилерского центра (и продажи, и сервис). Далее на основе интегральной оценки (которая рассчитывается по целому ряду показателей) мы выбираем лучших российских автодилеров, которые могут гордиться своими достижениями и активно использовать почетное звание «АВТОДИЛЕР ГОДА» для продвижения своих компаний.

Кирилл Вотяков, руководитель категории Авито Автомобили:

— Мы проводим премию «АВТОДИЛЕР ГОДА» уже шестой год подряд и с радостью отмечаем, что интерес профессионального сообщества к ней растет. В этом году, учитывая сложившуюся ситуацию, мы изменили формат мероприятия и впервые провели церемонию награждения онлайн. Наша цель – способствовать формированию цивилизованного, прозрачного рынка со здоровой конкуренцией и поощрять дилеров, которые своей успешной работой помогают формировать профессиональные стандарты для коллег. Это приобретает особую значимость сегодня, когда перемены, связанные с пандемией коронавируса, ставят перед всеми игроками рынка новые вызовы.

Мы прекрасно понимаем ту ценность и гордость для дилера, которую несет за собой победа в ежегодной премии «АВТОДИЛЕР ГОДА», поэтому мы приняли решение отмечать победителей премии на Авито Авто специальном значком ― «Победитель премии «АВТОДИЛЕР ГОДА». Мы уверены, что данная продуктовая разработка усилит интерес пользователей и поможет привлечь еще больше покупателей к объявлениям дилеров-победителей. Клиент сможет ознакомиться с тем, в каких номинациях и в каких годах побеждал дилер, а также узнать подробности о нашей премии.

 

ПОБЕДИТЕЛИ

Номинация: «Организация продаж новых автомобилей»

Холдинги
Сегментация по масштабу бизнеса:
более 20 дилерских контрактов – Автомобильная группа АВИЛОН
10 – 20 дилерских контрактов – Группа Лада-Сервис
менее 10 дилерских контрактов – компания Петровский Автоцентр

Дилеры
Разделение по сегментам и регионам:
Сегмент Luxury:
— Россия: официальный дилер Rolls-Royce (Автомобильная группа АВИЛОН)
Премиальный сегмент:
— Москва, Санкт-Петербург: БорисХоф Север BMW Москва (компания Инчкейп)
— Регионы: Лексус – Тюмень (Группа компаний КЛААС)
Массовый сегмент:
— Москва: Тойота Центр Внуково (компания Инчкейп)
— Санкт-Петербург: РОЛЬФ Пулково KIA
— Центральный регион (ЦФО и СЗФО): Хендэ Калуга (компания КорсГрупп)
— Приволжский регион (ПФО): Хендэ Набережные Челны (Группа компаний ТрансТехСервис)
— Южный регион (ЮФО и СКФО): Хендэ Ставрополь (Группа компаний КЛЮЧАВТО)
— Восточный регион (УФО, СФО и ДФО): Тойота Центр Красноярск (компания Медведь Холдинг)

Номинация: «Организация продаж автомобилей с пробегом»

Холдинги
Сегментация по масштабу бизнеса:
более 20 дилерских контрактов – КЛЮЧАВТО-Select (направление продаж автомобилей с пробегом)
10 – 20 дилерских контрактов – компания Инчкейп Россия
менее 10 дилерских контрактов – компания Максимум

Дилеры
Разделение по сегментам и регионам:
Сегмент Luxury:
— Россия: дилерский центр Lamborghini Moscow (компания АВТОDОМ)
Премиальный сегмент:
— Москва, Санкт-Петербург: БорисХоф Север BMW Москва (компания Инчкейп)
— Регионы: Mercedes-Benz Казань (компания КАНАВТО)
Массовый сегмент:
— Москва: Тойота Центр Волгоградский (компания РОЛЬФ)
— Санкт-Петербург: РОЛЬФ Пулково KIA
— Центральный регион (ЦФО и СЗФО): ФРЕШ КИА Воронеж
— Приволжский регион (ПФО): Тойота Центр Ульяновск (компания ТОН-АВТО)
— Южный регион (ЮФО и СКФО): Тойота Центр Кубань (компания БИЗНЕСКАР)
— Восточный регион (УФО, СФО и ДФО): Хендэ Автоцентр Кемерово (компания Сибинпэкс)

Номинация: «Организация сервиса»

Холдинги
Сегментация по масштабу бизнеса:
более 20 дилерских контрактов – компания АвтоСпецЦентр
10 – 20 дилерских контрактов – компания Инчкейп Россия
менее 10 дилерских контрактов – компания Аксель Групп

Дилеры
Разделение по сегментам и регионам:
Премиальный сегмент:
— Москва, Санкт-Петербург: BMW РОЛЬФ-Премиум Алтуфьево Москва
— Регионы: Лексус – Тюмень (Группа компаний КЛААС)
Массовый сегмент:
— Москва: Тойота Центр Ясенево (компания РОЛЬФ)
— Санкт-Петербург: Петровский Автоцентр Рено-Софийская
— Центральный регион (ЦФО и СЗФО): Тойота Центр Вологда (компания МАРТЕН)
— Приволжский регион (ПФО): дилерский центр LADA, Сибирский тракт Казань (компания КАНАВТО)
— Южный регион (ЮФО и СКФО): Хендэ Сочи (Группа компаний КЛЮЧАВТО)
— Восточный регион (УФО, СФО и ДФО): Тойота Центр Тюмень Юг (Группа компаний КЛААС)

Номинация Авито: «Маркетинг – Автомобили с пробегом»

Премиальный сегмент:
Показатель – оборачиваемость капитала дилерского центра
Москва: БалтАвтротрейд-М BMW на Рублевке

Массовый сегмент:
Показатель – оборачиваемость склада дилерского центра

Сегментация по масштабу склада автомобилей и регионам:

Сток 70+ автомобилей
Москва и Санкт-Петербург: ГК Р-Моторс Автомобили с пробегом (Санкт-Петербург)
Приволжский регион (ПФО): Нижегородец (Группа компаний Нижегородец) (Нижний Новгород)

Сток 20 – 70 автомобилей
Приволжский регион (ПФО): Автодвор+ (Уфа)

Номинация: «Доверие потребителей»

Премиальный сегмент: Lexus
Массовый сегмент: Mazda
(по данным опроса участников панели АВТОСТАТ и пользователей Авито Авто)

 

* Методика определения победителей премии «АВТОДИЛЕР ГОДА – 2020»:

Номинация: «Организация продаж – Новые автомобили»
1. Оценка холдингов.
Для целей выявления лидеров анализируются следующие показатели:
— суммарный объем продаж новых автомобилей;
— объем продаж новых автомобилей на 1 дилерский контракт;
— выручка от продаж новых автомобилей на 1 сотрудника отдела продаж;
— количество проданных новых автомобилей на 1 сотрудника отдела продаж;
— выручка от продаж дополнительного оборудования на 1 сотрудника отдела продаж;
— динамика продаж холдинга, 2019/2018.
2. Оценка дилеров.
Для целей выявления лидеров анализируются следующие показатели:
— объем продаж новых автомобилей к численности населения региона присутствия;
— выручка от продаж новых автомобилей на 1 сотрудника отдела продаж;
— количество проданных новых автомобилей на 1 сотрудника отдела продаж;
— выручка от продаж дополнительного оборудования на 1 сотрудника отдела продаж;
— выручка от продаж дополнительного оборудования на 1 автомобиль.

Номинация: «Организация продаж – Автомобили с пробегом»
1. Оценка холдингов.
Для целей выявления лидеров анализируются следующие показатели:
— суммарный объем продаж автомобилей с пробегом;
— выручка от продаж автомобилей с пробегом на 1 продуктивного сотрудника;
— количество проданных автомобилей с пробегом на 1 продуктивного сотрудника;
— динамика продаж холдинга, 2019/2018.
2. Оценка дилеров.
Для целей выявления лидеров анализируются следующие показатели:
— суммарный объем продаж автомобилей с пробегом;
— выручка от продаж автомобилей с пробегом на 1 продуктивного сотрудника;
— количество проданных автомобилей с пробегом на 1 продуктивного сотрудника;
— динамика продаж дилера, 2019/2018.

Номинация: «Организация сервиса»
1. Оценка холдингов.
Для целей выявления лидеров анализируются следующие показатели:
— выручка от услуг ТО и ремонта;
— выручка от ТО и ремонта на 1 продуктивного работника службы сервиса;
— выручка от продаж запасных частей;
— выручка от продаж запасных частей на 1 работника сервисной службы.
2. Оценка дилеров.
Для целей выявления лидеров анализируются следующие показатели:
— общее количество заездов на СТО;
— количество машинозаездов на 1 работника сервисной службы;
— выручка от услуг ТО и ремонта;
— выручка от продаж запасных частей;
— средний чек на обслуживание;
— выручка от ТО и ремонта на 1 работника сервисной службы;
— динамика заездов на СТО, 2019/2018.

Номинация: «Маркетинг – Автомобили с пробегом»
Оценка дилеров.
Рейтинг ДЦ составлен на основе анализа данных по размещению объявления на «Авито Авто».
Рассчитаны следующие показатели:
— оборачиваемость склада дилерского центра для автомобилей с пробегом сегмента масс-маркет;
— оборачиваемость капитала дилерского центра для автомобилей с пробегом премиум-сегмента.

Номинация: «Доверие потребителей»
Оценка дистрибьюторов (дилерской сети).
Индекс «Доверие потребителей» рассчитывался из следующих частных показателей:
— удовлетворенность обслуживанием в дилерском центре;
— доверие обслуживанию в сервисном центре дилера.
В этом опросе приняли участие более 15 000 российских автовладельцев, являющихся участниками панели аналитического агентства «АВТОСТАТ» и пользователями «Авито Авто», и обслуживавших свой автомобиль у официального дилера в 2019 году.

Вакансии и работа в Дзержинске Нижегородской области

8313.ru — Вакансии и работа в Дзержинске Нижегородской области





Погода в Дзержинске

Погода в Дзержинске

Реклама на 8313.ru Помощь



Контакты


Пнд. 24.04.2023

Вход / Регистрация

Разместить объявление



Сторож-охранник

Зарплата


при собеседовании
1 500 ₽ за смену
от 1 500 ₽ за смену

Дзержинск


при собеседовании
1 500 ₽ за смену
от 1 500 ₽ за смену

ООО «Дизельпласт»

Премиум



19 апреля 10:06   № 1656



Водитель автомобиля кат. «Е»

Зарплата


при собеседовании
100 000 ₽ в месяц
от 100 000 ₽ в месяц

Дзержинск


при собеседовании
100 000 ₽ в месяц
от 100 000 ₽ в месяц

ООО «Пластторг»

Премиум



18 апреля 09:20   № 1985



Подсобный рабочий (грузчик)

Зарплата


при собеседовании
30 000 ₽ в месяц
от 30 000 ₽ в месяц

Дзержинск


при собеседовании
30 000 ₽ в месяц
от 30 000 ₽ в месяц

ООО «Дизельпласт»

Премиум



10 апреля 10:39   № 1821



Электромонтер КИП и А

Зарплата


при собеседовании
50 000 ₽ в месяц
от 50 000 ₽ в месяц

Дзержинск


при собеседовании
50 000 ₽ в месяц
от 50 000 ₽ в месяц

ООО «Дизельпласт»

Премиум



10 апреля 11:11   № 1045



Разнорабочий

Зарплата


при собеседовании
30 000 ₽ в месяц
от 30 000 ₽ в месяц

Дзержинск


при собеседовании
30 000 ₽ в месяц
от 30 000 ₽ в месяц

ИП Бугаев А. А.

Премиум



17 апреля 11:36   № 3176



Наладчик оборудования в бумажном производстве

Зарплата


при собеседовании
50 000 ₽ в месяц
от 50 000 ₽ в месяц

Дзержинск


при собеседовании
50 000 ₽ в месяц
от 50 000 ₽ в месяц

ООО «Трек-НН»

Премиум



11 апреля 09:13   № 2425



Оператор линии

Зарплата


при собеседовании
40 000 ₽ в месяц
от 40 000 ₽ в месяц

Дзержинск


при собеседовании
40 000 ₽ в месяц
от 40 000 ₽ в месяц

ООО «ИРГА Про»

Премиум



11 апреля 11:39   № 1073



Наладчик оборудования

Зарплата


при собеседовании
50 000 ₽ в месяц
от 50 000 ₽ в месяц

Дзержинск


при собеседовании
50 000 ₽ в месяц
от 50 000 ₽ в месяц

ООО ИРГА Про

Премиум



11 апреля 11:50   № 3095



Водитель-экспедитор категории «C»

Зарплата


при собеседовании
50 000 ₽ в месяц
от 50 000 ₽ в месяц

Дзержинск


при собеседовании
50 000 ₽ в месяц
от 50 000 ₽ в месяц

ООО «Транспортная компания». ..

Премиум



17 апреля 09:27   № 1032



Менеджер пo логистикe

Зарплата


при собеседовании
70 000 ₽ в месяц
от 70 000 ₽ в месяц

Дзержинск


при собеседовании
70 000 ₽ в месяц
от 70 000 ₽ в месяц

ООО «ВЕТЕР ПЕРЕМЕН»

Премиум



17 апреля 09:27   № 1033



Оператор выдувного — экструзионного оборудования

Зарплата


при собеседовании
45 000 ₽ в месяц
от 45 000 ₽ в месяц

Дзержинск


при собеседовании
45 000 ₽ в месяц
от 45 000 ₽ в месяц

ООО «Дизельпласт»

Премиум



20 апреля 09:54   № 1046



Слесарь-наладчик

Зарплата


при собеседовании
50 000 ₽ в месяц
от 50 000 ₽ в месяц

Дзержинск


при собеседовании
50 000 ₽ в месяц
от 50 000 ₽ в месяц

ООО «Дизельпласт»

Премиум



20 апреля 10:06   № 1042



Продавец-консультант

Зарплата


при собеседовании
0 ₽ в месяц
от 0 ₽ в месяц

Дзержинск


при собеседовании
0 ₽ в месяц
от 0 ₽ в месяц

Мебельная фабрика «Бител». ..

Премиум



20 апреля 09:12   № 3231



Уборщик/уборщица офисных помещений

Зарплата


при собеседовании
0 ₽ в месяц
от 0 ₽ в месяц

Дзержинск


при собеседовании
0 ₽ в месяц
от 0 ₽ в месяц

ООО «Полисервис»

Премиум



19 апреля 12:50   № 3218



Продавец

Зарплата


при собеседовании
30 000 ₽ в месяц
от 30 000 ₽ в месяц

Дзержинск


при собеседовании
30 000 ₽ в месяц
от 30 000 ₽ в месяц

База стройматериалов

Премиум



13 апреля 10:52   № 1240



Мойщик (промывка еврокубов, бочек)

Зарплата


при собеседовании
45 000 ₽ в месяц
от 45 000 ₽ в месяц

Дзержинск


при собеседовании
45 000 ₽ в месяц
от 45 000 ₽ в месяц

ООО ТРАНПАК

Премиум



19 апреля 10:17   № 2715

Можно без опыта


Формовщик-сборщик стеклопластика (с обучением)

Зарплата


при собеседовании
51 000 ₽ в месяц
от 51 000 ₽ в месяц

Дзержинск


при собеседовании
51 000 ₽ в месяц
от 51 000 ₽ в месяц

ООО Новакомстрой

Премиум



18 апреля 11:58   № 1915



Электросварщик

Зарплата


при собеседовании
45 000 ₽ в месяц
от 45 000 ₽ в месяц

Дзержинск


при собеседовании
45 000 ₽ в месяц
от 45 000 ₽ в месяц

ООО «Социнтех-Инжиниринг». ..

Премиум



18 апреля 11:05   № 1082



Слесарь-сборщик металлоконструкций/котельщик

Зарплата


при собеседовании
45 000 ₽ в месяц
от 45 000 ₽ в месяц

Дзержинск


при собеседовании
45 000 ₽ в месяц
от 45 000 ₽ в месяц

ООО «Социнтех-Инжиниринг»…

Премиум



18 апреля 11:04   № 1083



Сборщик дверей для шкафов-купе

Зарплата


при собеседовании
40 000 ₽ в месяц
от 40 000 ₽ в месяц

Дзержинск


при собеседовании
40 000 ₽ в месяц
от 40 000 ₽ в месяц

«МИР СТЕКЛА»

Премиум



18 апреля 11:04   № 2989



Слесарь аварийно-восстановительных работ

Зарплата


при собеседовании
42 000 ₽ в месяц
от 42 000 ₽ в месяц

Дзержинск


при собеседовании
42 000 ₽ в месяц
от 42 000 ₽ в месяц

ЗАО «Прозрачные ключи»

Премиум



18 апреля 09:46   № 2872



Оператор экструзионно-выдувных машин

Зарплата


при собеседовании
42 500 ₽ в месяц
от 42 500 ₽ в месяц

Дзержинск


при собеседовании
42 500 ₽ в месяц
от 42 500 ₽ в месяц

«ГринПласт-НН»

Премиум



18 апреля 08:50   № 1131



Метролог

Зарплата


при собеседовании
80 000 ₽ в месяц
от 80 000 ₽ в месяц

Дзержинск


при собеседовании
80 000 ₽ в месяц
от 80 000 ₽ в месяц

ООО «Завод «Тизприбор»

Премиум



17 апреля 15:34   № 2323



Токарь

Зарплата


при собеседовании
0 ₽ в месяц
от 0 ₽ в месяц

Дзержинск


при собеседовании
0 ₽ в месяц
от 0 ₽ в месяц

ООО «Завод» Тизприбор»

Премиум



17 апреля 14:49   № 2430



Печатник флексографической печати

Зарплата


при собеседовании
60 000 ₽ в месяц
от 60 000 ₽ в месяц

Дзержинск


при собеседовании
60 000 ₽ в месяц
от 60 000 ₽ в месяц

ООО «Кларити»

Премиум



17 апреля 13:55   № 1727



Менеджер по логистике

Зарплата


при собеседовании
55 000 ₽ в месяц
от 55 000 ₽ в месяц

Дзержинск


при собеседовании
55 000 ₽ в месяц
от 55 000 ₽ в месяц

ООО «Кларити»

Премиум



17 апреля 13:54   № 2991



Грузчик

Зарплата


при собеседовании
35 000 ₽ в месяц
от 35 000 ₽ в месяц

Дзержинск


при собеседовании
35 000 ₽ в месяц
от 35 000 ₽ в месяц

Стандэк

Премиум



17 апреля 11:37   № 1398



Аппаратчик смешивания

Зарплата


при собеседовании
50 000 ₽ в месяц
от 50 000 ₽ в месяц

Дзержинск


при собеседовании
50 000 ₽ в месяц
от 50 000 ₽ в месяц

ООО «Кларити»

Премиум



14 апреля 10:25   № 2237



Токарь

Зарплата


при собеседовании
60 000 ₽ в месяц
от 60 000 ₽ в месяц

Дзержинск


при собеседовании
60 000 ₽ в месяц
от 60 000 ₽ в месяц

ООО «Дизельпласт»

Премиум



10 апреля 11:11   № 1049



Оператор-упаковщик

Зарплата


при собеседовании
45 000 ₽ в месяц
от 45 000 ₽ в месяц

Дзержинск


при собеседовании
45 000 ₽ в месяц
от 45 000 ₽ в месяц

Стандэк

Премиум



12 апреля 20:56   № 1399



Аппаратчик на производство

Зарплата


при собеседовании
41 000 ₽ в месяц
от 41 000 ₽ в месяц

Дзержинск


при собеседовании
41 000 ₽ в месяц
от 41 000 ₽ в месяц

ООО «ИСИДА»

Премиум



12 апреля 16:18   № 3122

Срочно


Кладовщик (наборщик товара) на склад

Зарплата


при собеседовании
25 000 ₽ в месяц
от 25 000 ₽ в месяц

Дзержинск


при собеседовании
25 000 ₽ в месяц
от 25 000 ₽ в месяц

Торговая сеть «Пресс-курьер». ..

Премиум



10 апреля 17:34   № 3085

Срочно


Продавец печатной продукции

Зарплата


при собеседовании
13 500 ₽ в месяц
от 13 500 ₽ в месяц

Дзержинск


при собеседовании
13 500 ₽ в месяц
от 13 500 ₽ в месяц

Торговая сеть «Пресс-курьер»…

Премиум



10 апреля 17:32   № 3084



Электромонтер

Зарплата


при собеседовании
40 000 ₽ в месяц
от 40 000 ₽ в месяц

Дзержинск


при собеседовании
40 000 ₽ в месяц
от 40 000 ₽ в месяц

ООО «ПЕТРОПЛАСТ»

Премиум



10 апреля 13:18   № 2812



Слесарь — ремонтник

Зарплата


при собеседовании
50 000 ₽ в месяц
от 50 000 ₽ в месяц

Дзержинск


при собеседовании
50 000 ₽ в месяц
от 50 000 ₽ в месяц

ООО «Дизельпласт»

Премиум



10 апреля 11:12   № 1043



Бухгалтер на производство

Зарплата


при собеседовании
40 000 ₽ в месяц
от 40 000 ₽ в месяц

Дзержинск


при собеседовании
40 000 ₽ в месяц
от 40 000 ₽ в месяц

ООО «Дизельпласт»

Премиум



10 апреля 10:39   № 2608



Укладчик-контролер

Зарплата


при собеседовании
35 000 ₽ в месяц
от 35 000 ₽ в месяц

Дзержинск


при собеседовании
35 000 ₽ в месяц
от 35 000 ₽ в месяц

ООО «Трек-НН»

Премиум



11 апреля 09:13   № 2823



Разнорабочий

Зарплата


при собеседовании
30 000 ₽ в месяц
от 30 000 ₽ в месяц

Дзержинск


при собеседовании
30 000 ₽ в месяц
от 30 000 ₽ в месяц

ООО «Трек-НН»

Премиум



17 апреля 14:47   № 2744



Разнорабочий

Зарплата


при собеседовании
0 ₽ в месяц
от 0 ₽ в месяц

Дзержинск


при собеседовании
0 ₽ в месяц
от 0 ₽ в месяц

Благострой

Премиум



22 апреля 16:36   № 3260

Стабильная з/п

Оформление по ТК


Ученик автослесаря

Зарплата


при собеседовании
0 ₽ в месяц
от 0 ₽ в месяц

Дзержинск


при собеседовании
0 ₽ в месяц
от 0 ₽ в месяц

ООО Алекс Гласс

Премиум



17 апреля 14:49   № 2394





Уборщица/Уборщик в магазин

Зарплата


при собеседовании
12 000 ₽ в месяц
от 12 000 ₽ в месяц

Дзержинск


при собеседовании
12 000 ₽ в месяц
от 12 000 ₽ в месяц

ZENDEN

Премиум



22 апреля 13:46   № 1557



Шеф повар

Зарплата


при собеседовании
80 000 ₽ в месяц
от 80 000 ₽ в месяц

Дзержинск


при собеседовании
80 000 ₽ в месяц
от 80 000 ₽ в месяц

ООО «Капитал-Кук»

Премиум



22 апреля 13:46   № 3263



Мойщик/мойщица посуды

Зарплата


при собеседовании
30 000 ₽ в месяц
от 30 000 ₽ в месяц

Дзержинск


при собеседовании
30 000 ₽ в месяц
от 30 000 ₽ в месяц

ООО «Капитал-Кук»

Премиум



22 апреля 13:45   № 3262



Повар горячего цеха

Зарплата


при собеседовании
40 000 ₽ в месяц
от 40 000 ₽ в месяц

Дзержинск


при собеседовании
40 000 ₽ в месяц
от 40 000 ₽ в месяц

ООО «Капитал-Кук»

Премиум



22 апреля 13:42   № 3261



Официант

Зарплата


при собеседовании
1 500 ₽ за смену
от 1 500 ₽ за смену

Дзержинск


при собеседовании
1 500 ₽ за смену
от 1 500 ₽ за смену

Соло

Премиум



22 апреля 13:06   № 3258



Рабочий на линию

Зарплата


при собеседовании
0 ₽ в месяц
от 0 ₽ в месяц

Дзержинск


при собеседовании
0 ₽ в месяц
от 0 ₽ в месяц

ООО «Автостройгерметик». ..

Премиум



22 апреля 13:04   № 3242



Машинист экструдера

Зарплата


при собеседовании
50 000 ₽ в месяц
от 50 000 ₽ в месяц

Дзержинск


при собеседовании
50 000 ₽ в месяц
от 50 000 ₽ в месяц

ООО «Кларити»

Премиум



17 апреля 13:55   № 1129



Кухонный работник

Зарплата


при собеседовании
28 000 ₽ в месяц
от 28 000 ₽ в месяц

Дзержинск


при собеседовании
28 000 ₽ в месяц
от 28 000 ₽ в месяц

ИП Григорьева ТЮ

Премиум



17 апреля 11:38   № 1237



Подсобный рабочий

Зарплата


при собеседовании
1 200 ₽ за смену
от 1 200 ₽ за смену

Дзержинск


при собеседовании
1 200 ₽ за смену
от 1 200 ₽ за смену

Частное лицо

Премиум



21 апреля 18:44   № 3257




Комплектовщик на склад готовой продукции

Зарплата


при собеседовании
43 725 ₽ в месяц
от 43 725 ₽ в месяц

Дзержинск


при собеседовании
43 725 ₽ в месяц
от 43 725 ₽ в месяц

Дзержинский мясокомбинат «Дэмка». ..

Премиум



21 апреля 16:56   № 1090



Уборщик/Уборщица

Зарплата


при собеседовании
23 000 ₽ в месяц
от 23 000 ₽ в месяц

Дзержинск


при собеседовании
23 000 ₽ в месяц
от 23 000 ₽ в месяц

ООО «ТМК ОптТорг»

Премиум



11 апреля 09:11   № 2214



Водитель-экспедитор на Газон Некст

Зарплата


при собеседовании
70 000 ₽ в месяц
от 70 000 ₽ в месяц

Дзержинск


при собеседовании
70 000 ₽ в месяц
от 70 000 ₽ в месяц

ООО «ТМК ОптТорг»

Премиум



11 апреля 09:12   № 3089



Водитель-экспедитор ВС

Зарплата


при собеседовании
40 000 ₽ в месяц
от 40 000 ₽ в месяц

Дзержинск


при собеседовании
40 000 ₽ в месяц
от 40 000 ₽ в месяц

ООО «ТМК ОптТорг»

Премиум



11 апреля 09:12   № 2670



Водитель элетроштабелера/ ричтрака/ погрузчика (В категория)

Зарплата


при собеседовании
50 000 ₽ в месяц
от 50 000 ₽ в месяц

Дзержинск


при собеседовании
50 000 ₽ в месяц
от 50 000 ₽ в месяц

ООО ТМК ОптТорг

Премиум



11 апреля 09:11   № 2835



Продавец — консультант

Зарплата


при собеседовании
0 ₽ в месяц
от 0 ₽ в месяц

Дзержинск


при собеседовании
0 ₽ в месяц
от 0 ₽ в месяц

Медтехника и ортопедия Доктор Плюс. ..

Премиум



21 апреля 16:32   № 3256



Полицейский

Зарплата


при собеседовании
35 000 ₽ в месяц
от 35 000 ₽ в месяц

Дзержинск


при собеседовании
35 000 ₽ в месяц
от 35 000 ₽ в месяц

ОБППСП Управления МВД России по г. Дзерж…

Премиум



21 апреля 16:27   № 2954



Наладчик ПЭТ оборудования

Зарплата


при собеседовании
30 000 ₽ в месяц
от 30 000 ₽ в месяц

Дзержинск


при собеседовании
30 000 ₽ в месяц
от 30 000 ₽ в месяц

ООО «Сервис Плюс»

Премиум



21 апреля 16:24   № 3254



Бухгалтер

Зарплата


при собеседовании
45 000 ₽ в месяц
от 45 000 ₽ в месяц

Дзержинск


при собеседовании
45 000 ₽ в месяц
от 45 000 ₽ в месяц

ООО «Приволжье-ТрансСервис НН». ..

Премиум



21 апреля 16:18   № 3253

Разместить бесплатное объявление


Разместить бесплатное объявление

Система управления метаданными в Авито | Фрол Крючков | AvitoTech

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

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

Рисунок 1. Примеры метаданных: название, категория, цена, описание объявления

После того, как продавец подал объявление, ему необходимо оплатить листинг. Эти листинговые сборы обычно основаны на информации в объявлении. Например, цена автомобиля может существенно различаться в зависимости от года выпуска и марки. Или это может быть местоположение, которое больше всего влияет на листинговые сборы. Не очевидно, что скорость и плавность изменения метаданных компании станут узким местом для поиска стратегий монетизации путем проведения A/B-тестов.

Рисунок 2. Использование метаданных в бизнесе

Менее очевидный пример — когда метаданные помогают настроить SEO. Не секрет, что чем больше органического трафика у сайта, тем лучше для бизнеса. Страницы результатов поисковой системы (SERP) и рекламные страницы являются самыми популярными страницами в объявлениях. Рекламные страницы менее интересны, поэтому я опишу случай SERP.

Пользователи могут использовать миллионы комбинаций фильтров. Каждая комбинация фильтров дает уникальную поисковую выдачу. И это плохо для SEO, когда тонны поисковых запросов пользователей разбросаны по тоннам поисковой выдачи, потому что вес каждой страницы мал. Чтобы решить эту проблему, появился канонический URL.

Один уникальный канонический URL группирует относительно похожие страницы и заставляет их считаться одной страницей для поисковых систем. Например, пользовательский поиск по всем автомобилям старше пяти лет попадет в один канонический URL «5-year-old-car», даже если пользователь укажет конкретную марку или цвет. Или критерий поиска: «дом напротив пляжа» с дополнительным фильтром типа коттедж или квартира значения не имеет; это будет «перед пляжем». Это простые примеры, но я думаю, что вы поняли идею. Повторюсь: чем быстрее ваша система позволит вам адаптироваться к меняющемуся миру, тем лучше.

На этом этапе вы можете применить один и тот же шаблон ко всем следующим полям:

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

Мы обсудили преимущества быстрого изменения метаданных. Но что мешает быстро изменить его?

Из рисунка 2 видно, что метаданные объединяют все домены приложения. Вот почему трудно внести изменения в какую-либо его часть. Даже незначительные изменения типа атрибута могут сломать всю систему. Например, изменение одного атрибута из списка значений в форме подачи объявления может нарушить алгоритмы поисковой индексации и монетизации.

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

Функциональные требования:

  • Решение должно предоставлять нашим инженерам и аналитикам возможность легко вносить изменения в метаданные, такие как добавление, удаление и обновление атрибутов и категорий, а также их типов, значений и параметров.
  • Любые изменения в метаданных пространства конкретного отдела не должны влиять на метаданные других отделов. Если это невозможно, мы должны предупредить пользователей. Например, атрибуты для добавления на десктоп, iOS и Android с разными версиями, пространство атрибутов для поисковой индексации, модерации, поисковых фильтров и визуализации на разных платформах.
  • Каждый отдел (доменное пространство) должен иметь возможность запускать несколько версий своих метаданных одновременно, т. е. для целей A/B-тестирования.

Нефункциональные требования:

  • Система должна легко масштабироваться по горизонтали.
  • Он должен эффективно использовать память и быть быстрым во время выполнения.
  • Должна быть терпима к несоответствию версий.
  • Удобно для работы в сети.

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

Рисунок 3. Схема таблицы для хранения рекламы

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

Мы также хотим провести A/B-тестирование, добавив новое поле в определенную категорию, чтобы узнать, понравится ли оно пользователям. Это не будет проблемой, если вам не нужно изменить схему и добавить новое поле, что требует блокировки всей таблицы. Это довольно сложно, если вы запускаете базу данных с миллиардами рекламных объявлений. Даже если вы сегментируете базу данных по категориям, вам все равно потребуется выполнить миграцию, установить значения по умолчанию и т.  д. Вторая проблема заключается в том, что для изменения схемы требуется новая фиксация для изменения схемы базы данных и новое развертывание службы для запуска миграции схемы. Это не та беглость, которую мы хотели.

Давайте представим один возможный способ организации схем базы данных, который не потребует от нас выполнения миграций для доставки новых атрибутов:

Рисунок 4. Вообразимое решение для динамических метаданных вокруг атрибутов рекламных объявлений

Ого, пять новых таблиц вместо одной, и еще пара не показаны для простоты. Но не бойтесь. Идея проста: мы превращаем наши столбцы в строки, а остальные — это вспомогательные таблицы для запуска системы. Этот подход называется Модель значения атрибута сущности (EAV) .

Так много новых таблиц в основном потому, что теперь наше приложение отвечает за обеспечение логической схемы. В старом подходе база данных отвечала за обеспечение согласованности данных с помощью внешних ключей. Подход EAV приводит нас к двум проблемам:

  1. Наше приложение должно отвечать за согласованность данных.
  2. При такой нормализованной схеме производительность во время выполнения сильно пострадает.

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

Мы не рассматривали графовые базы данных из-за отсутствия опыта в нашей компании.

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

  1. Система управления метаданными с дружественным пользовательским интерфейсом для управления вариациями шаблона EAV.
  2. Фронтенд для бэкенда — высокопроизводительные микросервисы, выполняющие операции с данными во время выполнения. Они используют сильно денормализованный интерфейс данных для внутренней системы для проверки, подготовки к рендерингу и других целей.

После формирования этих глобальных компонентов возник шаблон EAV: как обеспечить согласованность данных на уровне приложения и ускорить его работу во время выполнения.

Рисунок 5. Основные элементы инфомодели

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

Каталог

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

Далее идет каталог атрибутов. Атрибуты являются свойством категории. Например, это может быть марка , модель , год выпуска на аренду автомобиля . Для недвижимости это может быть город , район, или площадь кв. Значения являются всеми возможными значениями атрибутов перечислимого типа. Например, для атрибута марка категории авто возможные значения: audi, bmw или ford .

Также каталог отвечает за все возможные отношения между атрибутами и их значениями:

Рисунок 6. Формат отношений между атрибутами и значениями

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

Макет

Макет представляет собой композицию из трех различных компонентов.

Макет

Макет — это имя для трех манифестов, описывающих поведение, структуру и свойства пространства имен. Компоненты макета решают одну проблему, имеющую две стороны:

  • Возможность по-разному представлять одни и те же метаданные в разных пространствах имен.
  • Изоляция одного пространства имен от других, чтобы одна команда могла изменять любые свойства поведения, структуры и свойства формы, не затрагивая другие пространства имен.

Отношения отвечают за определенную структуру данных в пространстве имен или макете, как мы называем это внутри. Проще показать на примере с рисунка 7:

Рисунок 7. Пример двух структур отношений одних и тех же метаданных

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

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

Другой пример: посетитель ищет автомобиль. Они обычно ищут с более широким диапазоном. Таким пользователям проще заполнить марку и модель и выбрать из списка 4–8 поколений, чем подбирать конкретные годы. В таких сценариях в игру вступают отношения. Используя несжатую структуру каталога с картинки 6, мы можем настроить любые отношения компоновки. Эта идея также широко используется при проверке входных данных пользователя.

Форма полей. Следующим элементом макета является форма полей. Этот компонент представляет собой декларативный способ описания полей, отображаемых для пользователя или для внутреннего бэкэнда.

Форма состоит из списка полей, которые связаны с определенными отношениями и атрибутами. Важно то, что здесь объявлены все конфигурации полей. Это означает, что семантически один и тот же атрибут может иметь разные свойства в разных макетах. Например, у нас есть атрибут бренда, и когда пользователь отправляет рекламу, поле выглядит как вход для выбора одной опции. Однако в форме поиска это поле с несколькими вариантами. Форма отвечает за:

  • Список полей атрибутов формы.
  • Связь между полями и фактическими атрибутами формы и каталогом.
  • Свойства полей и самой формы.

Правила. Последний элемент макета — это манифест правила. Это декларативный DSL (предметно-ориентированный язык) для описания поведения полей формы. Этот компонент отвечает за отображение/скрытие, включение/отключение, проверку полей на основе состояния всей формы и даже изменение их свойств и состояний.

Вы можете увидеть результат этого элемента при выборе марки. Он запускает новое состояние формы, когда мы отображаем атрибут модели. Или другой пример, когда в выбранном городе есть метро, ​​мы покажем атрибут со станциями метро. Стоит отметить, что манифесты никто не пишет. Система управления метаданными создает их автоматически в пользовательском интерфейсе.

Управление версиями

Макеты — отличный способ различать разные платформы, домены и отделы. Однако, когда у каждого отдела есть свой набор макетов, они быстро понимают, что хотят запускать несколько версий одного и того же макета одновременно для A/B-тестов или когда мы объединяем старые версии мобильных приложений или внутренних сервисов.

Реализация управления версиями макетов концептуально ничем не отличается от системы контроля версий, такой как Git. Он использует систему ветвления. У нас есть сущности, которые могут меняться: каталоги и макеты (правила, отношения, формы). Мы также знаем, что у нас должна быть возможность запускать столько версий одного и того же макета, сколько у нас есть A/B-тестов.

Это приводит нас к реализации, в которой у вас есть ветки для различных A/B-тестов. Но чтобы использовать конкретную ветку, включая основную ветку, вы должны ее освободить. В момент релиза происходят две основные вещи.

Во-первых, серверная часть объединяет все изменения и выводит их в эффективный формат хранения, к которому можно легко получить доступ во время выполнения. Во-вторых, выпуск тега версии, сгенерированного для того, какая версия макета может быть доступна в производстве. Чтобы поддерживать актуальность метаданных A/B-тестов, вы можете объединить основную ветвь. Слияние основной ветки с A/B-тестированием необходимо, так как вы поддержали все объекты после выпуска версии метаданных, включая те, которые вы даже не трогали. Это происходит потому, что мы решили реализовать стратегию только добавления, которая требует менее сложной реализации.

Маршрутизация

Прежде всего, что такое маршрутизация? Мы уже обсудили множество элементов, таких как версии и макеты. Маршрутизация была придумана для того, чтобы клиент (мобильное приложение, фронтенд-браузер, фронтенд-сервис) мог указать макет и версию для его использования.

Технически маршрутизация — это просто строка, по которой другие службы могут получить доступ к макетам. Он имеет шаблон: {версия}.{имя макета}.{категория}. В реальной жизни это выглядит так: REAL-123. new-adv-mobile.13. Тег версии обычно обозначает задачу Jira, в которой запрашиваются изменения. Однако, если вы хотите отладить макет в промежуточной версии, не выпуская новую версию, вы можете указать dev.real-123 в качестве имени тега. Тогда все спецификации будут генерироваться по запросу. Я не буду обсуждать, как это делается в этой статье, потому что это совсем другая тема.

Рисунок 8. Маршрутизация

Здесь менее очевидное наблюдение: наличие категории в маршруте обеспечивает максимальную степень детализации A/B-тестов. Это сделано специально. У каждого отдела или бизнес-вертикали есть своя «песочница» для проведения экспериментов без дублирования с другими отделами. Однако внутри маршрута все конфликтующие A/B-тесты должны быть соответствующим образом организованы внутри одного отдела.

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

Поскольку мы рассмотрели все компоненты, пришло время показать всю концепцию. Для этого я воспользуюсь аналогией с призмой. По крайней мере, это работает для меня, и я надеюсь, что это сработает и для вас. Итак, у вас есть золотой источник ваших каталогов метаданных. Также у вас есть макеты, которые представляют собой набор правил, форм и отношений. Идея довольно проста: различные макеты подобны призме, которая фильтрует и изменяет представление и поведение золотого источника каталогов.

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

Есть несколько важных вещей, которые макеты делают и не делают:

  • Макет не отвечает за внешний вид форм. Он содержит структуру в виде шагов и свойств полей. Но он действует как конфигурация для интерфейса.
  • Макет не всегда служит визуальным представлением чего-либо. Макет может быть механизмом проверки, представлением данных для внутреннего использования и т.п. Кроме того, макет может выступать в качестве механизма шаблонов для канонических URL-адресов поисковой выдачи.
  • Одновременно можно использовать разные версии одного и того же макета. В основном это происходит с мобильными приложениями, в разных версиях которых используются старые API и A/B-тесты.

На этом этапе мы можем перейти к более техническим деталям:

Рисунок 10. Схема компонентов системы управления метаданными

В системе управления метаданными есть три основных уровня: серверная часть информационной модели, внешняя часть информационной модели. и бытовые услуги.

  • Серверная часть отвечает за внесение изменений в метаданные, загрузку каталогов из внешних источников, выпуск новых версий.
  • Внешний интерфейс отвечает за доступ в режиме реального времени к макетам, каталогам и атрибутам. Наиболее распространенные варианты использования: проверка формы для веб-сайта или мобильного устройства, сборка представления атрибутов для рекламы, сборка формы для рендеринга для веб-сайта или мобильного устройства.
  • Потребительские услуги реализуют бизнес-логику. Это может быть интерфейс, мобильное приложение или внутренний сервис.

Серверная часть EAV для системы управления метаданными более или менее похожа на типичное веб-приложение. Он состоит из реляционной базы данных, одностраничного приложения и нескольких сложных ETL. Здесь вы можете управлять данными каталогов, правил и отношений, создавать макеты, создавать ветки, выпускать новые версии. Однако специфические вещи относятся к нашим внутренним инструментам, например автоматическое тестирование всей системы при внесении изменений в метаданные. Все эти выпуски новой версии информационной модели запускают ряд тестов E2E, чтобы убедиться, что наши пользователи по-прежнему могут добавлять или искать рекламу в каждой категории.

Рисунок 11. Одностраничное приложение бэкенда информационной модели

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

Реализация управления версиями

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

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

Что происходит на этапе выпуска

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

Для запуска новой версии в производство мы запускаем сервисы валидаторов и серию E2E-тестов. Они проверяют выпуск новой версии метаданных, чтобы гарантировать, что она не будет семантически разрушать пользовательский опыт. Следующий шаг — сгенерировать манифесты из текущего состояния базы данных и сбросить их в хранилище статических файлов. Вот и все.

Когда клиенты требуют выпущенную версию макета, службы внешнего интерфейса обращаются к этому хранилищу манифестов и подготавливают их для обработки запросов клиентов. Эти файлы распространяются nginx с разным уровнем кэширования, например, etags. Каждый новый выпуск создает дамп новой версии и никогда не затрагивает старые версии, поскольку мы использовали только добавление версий.

Однако, когда мы хотим протестировать конкретную версию в staging, мы не делаем всех этих шагов. Вместо этого манифесты генерируются по запросу. Манифесты могут быть очень большими, поскольку некоторые из них содержат иерархические зависимости данных и могут ухудшить работу пользователя. Чтобы решить эту проблему, вопросы производительности и памяти в продакшене, мы разделяем такие манифесты на иерархические разделы. Это повышает скорость генератора по требованию и увеличивает количество попаданий в кэш для манифестов в рабочей среде.

Распространение релиза

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

Внешние службы — это базы данных только для чтения со встроенным пользовательским интерпретатором для их упрощенного DSL. Существует три службы: служба компоновки, служба механизма правил и служба создания URL-адресов. Однако из-за архитектуры всей системы они имеют много общих деталей реализации и свойств. Давайте сначала посмотрим на диаграмму компонентов для служб внешнего интерфейса:

Рисунок 12. Диаграмма компонентов для служб внешнего интерфейса

Может показаться, что службы действуют как прокси перед хранилищем. Но это не так, потому что файлы метаданных, находящиеся в хранилище, сами по себе не имеют смысла. Во-первых, вы должны «скомпилировать» файлы метаданных, чтобы выполнять к ним запросы. Кроме того, у сервисов нет нагрузки на запись, и они действительно услуги без гражданства . Это свойство дает нам Неограниченное горизонтальное масштабирование ( по крайней мере, пока сети кластеров k8s не лопнут).

Рисунок 13. Диаграмма потока запросов

Диаграмма потока запросов показывает нам, что службы внешнего интерфейса делают внешние исходящие запросы только в том случае, если запрошенный макет отсутствует в кеше. Это единственный случай, когда нам нужны внешние запросы, в противном случае сервис отвечает на запрос из внутреннего кеша в памяти. Исходящие запросы происходят редко. Они происходят при выпуске новой основной ветки инфомодели, запуске новых A/B-тестов или развертывании сервисов. Но сначала мы должны поговорить о кэшировании.

Освобождение кэша

Сколько макетов экземпляр может хранить в памяти одновременно? В реальном мире ответ — это зависит. Наиболее важными причинами являются количество зависимостей между атрибутами, которые превращаются в объемы ОЗУ, занимаемые службой. Самая глубокая категория Авито с большим количеством атрибутов и взаимозависимостей между ними — категория авто. Только посмотрите на количество зависимостей только для производителя автомобилей Acura:

Рисунок 14. Количество узлов и зависимостей между атрибутами

На данный момент ясно, что мы не можем позволить себе хранить все макеты в памяти. Мы не можем этого сделать из-за огромного размера и постоянно меняющегося количества макетов из-за A/B-тестов и пошаговой разработки системы. Мы должны использовать ограничение, которое представляет собой количество макетов, которые мы можем хранить в памяти одновременно:

Рисунок 15. Использование слота кэш-памяти. Зеленая линия — это выпуск новой версии сервиса

. Однако в нашем случае мы не можем просто использовать стратегию LRU или LFU для вытеснения раскладок. Причина в непропорциональном использовании разных макетов. Например, верстка для проверки подачи новой рекламы встречается на пару раз реже, чем верстка показа атрибутов на странице с рекламой:

Чтобы решить эту проблему, мы выбрали кэш ARC. Кэш Arc отслеживает частоту и давность использования определенного макета. Это помогает не вытеснять макеты, которые получают относительно мало запросов в секунду, но также очень важны. Примером такого макета является отправка нового объявления, которое имеет небольшое количество запросов, но очень важно иметь его в кеше из-за важности не пропустить отправку формы пользователем.

Прогрев кеша

Всякий раз, когда мы развертываем группу экземпляров интерфейсных служб в рабочей среде, они запускаются с пустым кешем. Разогрев на реальных запросах пользователей — плохой опыт для наших потребителей, потому что это может закончиться неудачным запросом на отправку нового объявления. Поэтому мы придумали стратегию разогрева.

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

Рисунок 17. Процесс прогрева кэша в памяти

Процесс развертывания выглядит следующим образом:

  • Мы используем стратегию скользящего обновления, которая позволяет нам распределять нагрузку, когда мы чрезмерно загружаем спецификации макетов.
  • Экземпляр переходит к кластерам Redis и получает список используемых в данный момент макетов. После этого он подтверждает собственное успешное развертывание, предоставляя балансировщикам нагрузки k8s проверку работоспособности 200.
  • Служба просматривает список и загружает макеты так же, как и при промахах кеша. Если что-то пойдет не так, экземпляр пропускает этот процесс.
  • После всего этого служба сообщает k8s, что готова обрабатывать запросы.

Рисунок 18. Прогрев кеша перед получением запросов инстансами

Зеленая пунктирная линия на рисунке показывает, когда новые инстансы получили запросы от балансировщика нагрузки. Пик до этого показывает, сколько времени ушло на прогрев конкретного макета. Запуск примерно 60 экземпляров занимает около четырех минут.

Система управления метаданными является неотъемлемой частью высоконагруженной секретной системы. В нашем случае это помогает проводить A/B-тесты любых изменений метаданных, настраивать SEO и значительно сокращать время выхода на рынок для запуска функций, связанных с метаданными. Нам потребовалось много работы, чтобы создать нашу текущую систему, и мы все еще с нетерпением ждем новых улучшений. Тем более, что эта система вызвала много запросов от внутренних команд, которые активно используют ее ежедневно, есть много работы для улучшения!

AVITO на английском языке

avito

avito

avitoavitus

avito

avito

ancestral

ancestraleanticoatavico

90

универсал

3

3 универсал 03

Авито , без регистрации.

Авитус Вы не поняли.

Avito sta cercando di avere un incontro con Teodorico

Авитус едет искать аудиенцию у Теодориха и готов.

Игорь Кокорин Trovato на Avito Авто цена интересная в Inghilterra. связаться с продавцом.

Игорь Кокорин Нашел на Авито автомобиль по доступной цене в Англии. связался с продавцом.

Sul avito trovato un annuncio a buon mercato la macchina.

На авито нашел объявление о недорогой машине.

Си, авито .

Да, родовой .

Caduta ===Intanto, il risentimento della popolazione romana contro Avito cresceva.

Недовольство населения Италии против иностранца Авитуса росло.

Trovato на Avito Авто цена интересная в Inghilterra. связаться с продавцом.

Найден на Авито Автомобиль по доступной цене в Англии. связался с продавцом.

Деви мандаре Авито .

Мне нужно, чтобы вы отправили Авитус .

Mi tolse il padre il mio retaggio avito .

Он лишил меня моего отца, моего родового наследия.

Все вопросы о событиях, которые не связаны с Avito .

Все эти тактики только способствовали росту популярности биржи .

Nacque in una nobile famiglia, che possedeva il castello avito di Pers in Friuli.

Он происходил из знатной флорентийской семьи, владевшей Линари замком в долине Ламоне.

Immagine: Castel Tirolo, castello avito dei Conti di Tirolo.

Изображение: Замок Тироло, родовая резиденция графов Тироля.

Consolidamento del potere ===Il potere di Avito sarebbe dipeso dall’atteggiamento delle Principlei Forze in gioco

Консолидация власти ===Эффективная мощность Avitus зависела от поддержки всех основных игроков на Западе ,

Avito Bachi, figlio di Michele Bachi e Enrica Rignani

Avito Bachi, сын Микеле Бачи и Энрики Риньяни.

Il regno di Avito см. anche l’espansione dei Visigoti in Hispania,

Во время правления Авитуса вестготы расширились до Испании,

Бесплатно Авито . ma, annunci, comprare e vendere quando vuoi, dove vuoi.

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

La storia narra del barone Osvaldo Lambertenghi, costretto a vendere il suo castello avito по дебету.

Барон Освальдо Ламбертенги вынужден продать свою родовую Замок, чтобы заплатить долги.

Nel 457 Ricimero rovesciò un altro imperatore, Avito , innalzando al trono Maggioriano.

В 457 году Рицимер сверг другого императора, Авита , возведя на престол Майориана.

по семпио, су Авито .

например, на авито .

il luogo di nascita di S. Avito , la cui abbazia è un patrimonio mondiale dell’unesco.

место рождения св. Avitus , чье аббатство является объектом Всемирного наследия ЮНЕСКО.

Армия публицистической эры Vietato nel Mercato Popolare Avito .

реклама оружия запрещена на популярной торговой площадке Авито .

fu battezzato dal vescovo Avito ди Вена.

он был крещен епископом Авитусом Венским.

In una lettera giunta a noi, Avito di Vienna si congratula con Clodoveo per il suo battesimo,

Сохранившееся письмо от Авита из Вены, поздравляющее Хлодвига с крещением, делает

Su un colle maestoso emerge Castel Tirolo, il castello avito dei Conti di Tirolo Conti della Val Venosta.

На величественном холме возвышается Кастель Тироло, родовая резиденция графов Тироля Графов Валь Веноста.

Ricimero convinse il Senato romano a deporre Avito e fece killare a Ravenna, nel Palazzo»in Classis»,

Рицимер заставил римский сенат свергнуть Авита и приказал убить «magister militum» Ремиста в «Palatium» в Classe,

le truppe di Vario Avito proclamarono invece il loro comandante:

3 9000 войска Varius Avitus объявил его императором вместо этого,

Avito Bachi, figlio di Michele Bachi e Enrica

Avito Bachi, сын Микеле Бачи и Энрики Риньяни.