- Видео 564
- Просмотров 1 681 168
AvitoTech
Россия
Добавлен 18 фев 2016
В Авито уже больше 1800 инженеров. Ежедневно мы сталкиваемся с большими нагрузками, потому что каждый месяц Авито посещают около 50 миллионов пользователей.
У нас есть несколько сотен микросервисов на Python и Go, фронтенд на JavaScript, базы данных PostgreSQL, MongoDB и Redis, автоматические тесты, обученная на данных система модерации и поисковый движок Sphinx.
На этом канале мы делимся своим опытом: рассказываем о разработке, публикуем записи митапов, интервью и конференций. Надеемся, что наши видео помогут вам в работе!
У нас есть несколько сотен микросервисов на Python и Go, фронтенд на JavaScript, базы данных PostgreSQL, MongoDB и Redis, автоматические тесты, обученная на данных система модерации и поисковый движок Sphinx.
На этом канале мы делимся своим опытом: рассказываем о разработке, публикуем записи митапов, интервью и конференций. Надеемся, что наши видео помогут вам в работе!
Особенности адаптации PostgreSQL к DBaaS k8s | Андрей Лярский
24 апреля в московском офисе Авито прошёл Avito Database meetup #1. Разработчик платформы DBaaS Андрей Лярский рассказал, как адаптировать под нее классические СУБД.
00:00 | Вступление
01:03 | PostgreSQL в Авито
02:10 | Ожидания от баз в общем виде
03:20 | Ожидания от баз PostgreSQL «из коробки»
05:43 | Ожидания от баз PostgreSQL со сторонними решениями
07:36 | PostgreSQL на LXC
11:21 | PostgreSQL в DBaaS/k8s. Наивный подход
14:24 | PostgreSQL в DBaaS/k8s. PostgreSQL Agent: Swiss Army Knife
15:32 | PostgreSQL в DBaaS/k8s. PostgreSQL Agent: Embedded ETCD
18:32 | PostgreSQL в DBaaS/k8s. PostgreSQL Agent: Backup API
21:45 | Итоги
23:31 | Что там с Cloud Native?
23:51 | Что умеет СoсkroachDB «из коробки»
2...
00:00 | Вступление
01:03 | PostgreSQL в Авито
02:10 | Ожидания от баз в общем виде
03:20 | Ожидания от баз PostgreSQL «из коробки»
05:43 | Ожидания от баз PostgreSQL со сторонними решениями
07:36 | PostgreSQL на LXC
11:21 | PostgreSQL в DBaaS/k8s. Наивный подход
14:24 | PostgreSQL в DBaaS/k8s. PostgreSQL Agent: Swiss Army Knife
15:32 | PostgreSQL в DBaaS/k8s. PostgreSQL Agent: Embedded ETCD
18:32 | PostgreSQL в DBaaS/k8s. PostgreSQL Agent: Backup API
21:45 | Итоги
23:31 | Что там с Cloud Native?
23:51 | Что умеет СoсkroachDB «из коробки»
2...
Просмотров: 461
Видео
Паттерны управления базами данных в multi-claster Kubernetes среде | Полина Кудрявцева
Просмотров 692День назад
24 апреля в московском офисе Авито прошёл Avito Database meetup #1. Инженер платформы DBaaS Полина Кудрявцева поделилась своими наблюдениями, как удобнее управлять базами данных в multi-cluster в Kubernetes. 00:00 | Вступление 01:18 | DBaaS в цифрах 02:24 | Вызовы 04:44 | Общая архитектура 06:56 | Выработанные паттерны 07:07 | Паттерн метаоператора 08:04 | Немного про данные 09:06 | Паттерн опе...
Stateful-приложения в Kubernetes (DB edition) - Игорь Конев
Просмотров 659День назад
24 апреля в московском офисе Авито прошёл Avito Database meetup #1. Инженер платформы Игорь Конев поделился своими наблюдениями, как удобнее работать со stateful-приложениями. 00:00 | Вступление 01:38 | Абстракции Kubernetes для Stateful-приложений 01:40 | StatefulSet. Сравнение с Deployment 11:04 | StatefulSet с базой данных 13:31 | TopoLVM: почему мы выбрали этот CSI 15:05 | Наши велосипеды 1...
Платформа DBaaS: зачем и как - Владимир Алёшин, Авито
Просмотров 64914 дней назад
24 апреля в московском офисе Авито прошёл Avito Database meetup #1. Руководитель платформы Владимир Алёшин DBaaS объяснил, как она помогает управлять базами данных. 00:00 | Вступление 01:10 | Что такое DBaaS 02:12 | Предпосылки создания платформы 04:18 | Как проходило создание баз данных раньше 05:02 | Попытка 1: классическая автоматизация 07:11 | Переход Авито в multi-dc 07:52 | Выработка целе...
Облегчаем жизнь разработчикам при помощи плагинов Protoc | Святослав Петров, Ozon
Просмотров 83621 день назад
17 апреля в московском офисе Авито прошёл Avito Golang meetup #4. Спикеры из Авито, VK Tech и Ozon поделились опытом работы с несколькими инструментами в Go: Kubernetes-оператором, плагином protoc и планировщиком. 00:00 | Вступление 01:14 | Что такое Protobuf? 02:30 | Почему Protobuf вообще используют? 03:39 | Как использовать Protobuf? 05:50 | Зачем делать что-то своё? 07:58 | Protobuf-пирамид...
Управление конфигурациями с помощью Kubernetes-оператора в DevPlatform | Виктор Горячкин, VK Tech
Просмотров 25921 день назад
17 апреля в московском офисе Авито прошёл Avito Golang meetup #4. Спикеры из Авито, VK Tech и Ozon поделились опытом работы с несколькими инструментами в Go: Kubernetes-оператором, плагином protoc и планировщиком. 00:00 | Вступление 00:28 | О DevPlatform 02:45 | Задачи, которые нужно было решать в DevPlatform 03:49 | Варианты решения 04:19 | Определения и сокращения 05:22 | Подход: Nexus и Gitl...
Как устроен планировщик в Golang | Олег Козырев, Авито
Просмотров 2,4 тыс.21 день назад
17 апреля в московском офисе Авито прошёл Avito Golang meetup #4. Спикеры из Авито, VK Tech и Ozon поделились опытом работы с несколькими инструментами в Go: Kubernetes-оператором, плагином protoc и планировщиком. 00:00 | Вступление 01:00 | Параллельность vs Конкурентность 03:19 | Чем GO-рутина отличатся от threads 03:57 | Абстракция GMP 06:23 | Одна из очередей исполнилась раньше остальных - ч...
НЕмитап Database#1 Полина Кудрявцева - CockroachDB на платформе DBaaS (перезалив)
Просмотров 1,4 тыс.Месяц назад
Всем привет! Это новый выпуск НЕмитапа. Здесь инженеры Авито рассказывают про инструменты и подходы, которые используют в работе, и отвечают на ваши вопросы. Полина Кудрявцева расскажет про CockroachDB в Авито: почему выбрали именно такую cloud native базу, и как с ней работаем. Подробно рассмотрим CockroachDB на платформе DBaaS в Авито и поговорим о планах развития. 00:00 | Вступление 01:12 | ...
Укрощение строптивых - Ксения Черкасова, Авито
Просмотров 470Месяц назад
Укрощение строптивых - Ксения Черкасова, Авито
Исследования для стратегии - Дарья Травкина, Авито
Просмотров 341Месяц назад
Исследования для стратегии - Дарья Травкина, Авито
Как мы в Авито мы измеряем зрелость UX - процессов в продуктовых командах - Мария Московкина, Авито
Просмотров 303Месяц назад
Как мы в Авито мы измеряем зрелость UX - процессов в продуктовых командах - Мария Московкина, Авито
Братья-водопроводчики: латаем протечки облачного хранилища |Александр Трифанов, Авито
Просмотров 367Месяц назад
Братья-водопроводчики: латаем протечки облачного хранилища |Александр Трифанов, Авито
То, чем стоило заняться вчера: защита данных, когда их стало слишком много | Глеб Марченко, Тинькофф
Просмотров 858Месяц назад
То, чем стоило заняться вчера: защита данных, когда их стало слишком много | Глеб Марченко, Тинькофф
MlSecOps: Ml в SecOps или SecOps в ML? | Светлана Газизова, Positive Technologies
Просмотров 1,8 тыс.Месяц назад
MlSecOps: Ml в SecOps или SecOps в ML? | Светлана Газизова, Positive Technologies
Зачем программисту учить других? | У микрофона Олег Козырев
Просмотров 2,4 тыс.Месяц назад
Зачем программисту учить других? | У микрофона Олег Козырев
Сегментация пользователей: микс методологий и эффективность - Дмитрий Кротов, Авито
Просмотров 5522 месяца назад
Сегментация пользователей: микс методологий и эффективность - Дмитрий Кротов, Авито
Аналитика нового продукта «под ключ» - Анастасия Аносова, Авито Премиум
Просмотров 6352 месяца назад
Аналитика нового продукта «под ключ» - Анастасия Аносова, Авито Премиум
Обратная связь в «Пятёрочке»:как мы работаем с оценками товаров-Варвара Анохина, Никита Худяшев, X5
Просмотров 3322 месяца назад
Обратная связь в «Пятёрочке»:как мы работаем с оценками товаров-Варвара Анохина, Никита Худяшев, X5
Обзор релиза Golang 1.22 | avito.code
Просмотров 5 тыс.2 месяца назад
Обзор релиза Golang 1.22 | avito.code
Код на Golang: форматирование и линтинг | avito.code
Просмотров 5 тыс.3 месяца назад
Код на Golang: форматирование и линтинг | avito.code
Как мы автоматизировали генерацию Baseline Profile | Даниль Гатиатуллин, Авито
Просмотров 6493 месяца назад
Как мы автоматизировали генерацию Baseline Profile | Даниль Гатиатуллин, Авито
Кто-то съел мою память на CI! | Вячеслав Ковалев, Авито
Просмотров 5513 месяца назад
Кто-то съел мою память на CI! | Вячеслав Ковалев, Авито
Верхнеуровневый обзор архитектуры CI/CD мобильного приложения | Никита Горбунов, Альфа Банк
Просмотров 4963 месяца назад
Верхнеуровневый обзор архитектуры CI/CD мобильного приложения | Никита Горбунов, Альфа Банк
Запускаем автотесты Android на EMCEE | avito.code
Просмотров 2,5 тыс.3 месяца назад
Запускаем автотесты Android на EMCEE | avito.code
Kubernetes: инструменты kubectl, k9s | avito.code
Просмотров 2,9 тыс.3 месяца назад
Kubernetes: инструменты kubectl, k9s | avito.code
Локальная работа с kubernetes | avito.code
Просмотров 6 тыс.4 месяца назад
Локальная работа с kubernetes | avito.code
Яндекс Карты: офлайн метрики базы организаций | Леонид Медников, Яндекс Карты
Просмотров 2635 месяцев назад
Яндекс Карты: офлайн метрики базы организаций | Леонид Медников, Яндекс Карты
Анализ пользовательского негатива от CRM коммуникаций | Анна Москаленко, Aвито
Просмотров 5215 месяцев назад
Анализ пользовательского негатива от CRM коммуникаций | Анна Москаленко, Aвито
Как мы попытались быстрее возить заказы и что из этого вышло | Илья Лоладзе, Samokat.tech
Просмотров 2825 месяцев назад
Как мы попытались быстрее возить заказы и что из этого вышло | Илья Лоладзе, Samokat.tech
2-й доклад по автоматизированному тестированию очень интересен
Круто! Спасибо большое за то, что поделились своей внутренней жизнью!
обовсем и ниочем k8s дефакто платформа для дбаас с 2022, как пример все клауды большие
Фичелидство - это продуктовый рак. Почему-то многие в отрасли решили, что сбор требований можно свалить на разрабов под соусом аджаила и продукта. В итоге разрабы вместо того чтобы делать то что умеют хорошо, тратят силы на вытаскивание того, а чо там PM и бизнес хочет.
Спорное утверждение. Фич лид это в первую очередь координатор некой достаточно крупной задачи (эпик, стори). И лучше, чтобы их было два: технический и продуктовый. Общий смысл - держать в порядке развитие задачи. Если нужно собрать бизнес требования - продуктовый фич лид поручает это бизнес аналитику. Необходим системный анализ - технический поручает системному аналитику. Планы тестирования - qa. Обычно фич лидами становятся сеньеры и кроме координации тоже участвуют в вышеописанных задачах. + выступают в качестве разработчиков, производя тех анализ, код.Те поручая самому себе задачи Без фич лидов высока вероятность, что задача либо не будет реализована и внедрена, либо получится не то, и ее забракует бизнес
Какой же я тупой
5:46 начало
12:30 топ момент
Выглядит круто, не думали PostgreSQL Agent в опенсорс выложить?
Как минимум на текущем этапе развития он (PostgreSQL Agent) очень сильно завязан на внутреннюю специфику инфраструктуры и отдельным продуктом его назвать пока нельзя. Но мы обещаем подумать над этим)
Дичь какая-то, как такое в продакшен тащут. Как можно менять логику работу языка, так любой сервер ляжет и если тесты не написаны, вообще не найдёшь, что первое полетело.
здорово
У вас один потенциальный покупатель из-за одной любой отписки будет стоить 0.5 покупателя? Можно ли тут подробне оьъяснить? В чем измеряется средневзвешенная стоимость одной любой отписки?
Patroni умеет кубернетес апи в роли dcs. Etcd тут лишний
В случае если весь кластер Patroni разворачивается в одном кластере k8s, то да, это было бы сильно проще. К сожалению этот вариант в нашем случае невозможен т.к. базы живут в разных k8s-кластерах, которые друг о друге ничего не знают, но им нужен общий DCS.
Блин, вон нафига нужен вот этот «range 4»? Ведь реально путает. Почему нельзя было сделать как в котлине 0..4 и тут уже вполне все читаемо и все еще кратко.
Зачем 15 минут заставок?
Подскажите пожалуйста, сейчас выбираю курсы на аналитика. Какие можете посоветовать? Откуда кандидаты более подготовленные приходят?😊 Обращаете внимание, где кандидат учился?
досмотрел до 13 минуты - тимлид не овнер и пм, даже не аналитик, о каком бизнесе идет речь?)
всегда думал, что роадмап разрабатывает лид с пм, а овнер ставит задачу и примерные сроки
Ого годнота
покажи результат... конфиги показывает ))) зачем неинтересно
5:12 очень точно сказано!!
ой не, спасибо. сначала делаете вид, что финал, потом оказывается не финал, потом "ответ завтра" потом "ответ с напоминанием через неделю" куча времени угроблено ради того, чтоб после секции "деньги" услышать, что вы якобы на ком-то другом остановились. теперь вот вилку до 900к задираете. удачи вам ребят, не пишите пожалуйста больше.
Это было интересно. Непонятно, но интересно :)
Если бы и платили также как и в FAANG то тогда вопросов бы не было к такому количеству секций. А так Авито просто превратился из классной ИТ компании в такой же зашквар уровня Яндекса. Удачи тем глупцам которые готовы к такому 👍
А можно несколько примеров действительно хороших ит-компаний, где и найм за один собес проходит?
@@Gektorometer я не и не писал про один этап, я написал про целесообразность вводить 4 тех секции (скрининг, алгоритмы, часть с программированием на знание языка, проектирование) на каждой из которой ты можешь ответить не лучшим образом (например на второй секции с алгоритмами). В худшем случае ты не проходишь дальше (и получается не даешь показать себя на секциях с языком и проектированием), а в лучшем тебе это напомнят на стадии оффера и занизят желаемую зп. При этом на РФ рынке есть действительно хорошие компании в которых нет части с алгоритмами (те же маркетплейсы), в которых можно за один двухчасовой тех собес (либо 2 собеса по часу тут смотря от компании) получить тот же самый оффер. И тогда вопрос - зачем после этого идти в Авито?
@@andrewhonest9639 какие маркетплейсы? Ozon - по длительности (в часах) там собесы столько же длятся. YM - ты выше написал, «зашквар». WB и ламода собесят быстро, но в первой немного уныло работать, во второй ЗП поменьше. Так работает свободный рынок: когда эйчары не торопятся, они это делают в первую очередь потому, что могут это себе позволить. Людям проще лишний час на собес потратить, чем 1.5+ года работать там, где, например, платят меньше (пусть даже процентов на 15)
В какой-то момент выглядит как жесткое «визибилити» работы команды HR. Что-то намудрили столько всего и, если что, можно руководству сказать, да вон скока у нас работы!
А зачем это знать? Вроде же наоборот рантайм и абстракции нужны для того, чтобы не думать об этих вещах)
тут несколько ответов: 1) Из инженерного интереса 2) Порой можно налететь на задачу, когда понимание подкапотных движений может помочь 3) На собесах любят такое спрашивать
про балансировку было бы интересно посмотреть
Думаю, с точки зрения инженерной культуры, надо просто сразу посылать на три буквы рекрутёров данной компании
Видео крутое, лайк поставил. Но примеры кода видны плохо. Но видео - огонь!!!
Как-нибудь приду на собеседование в Авито, потешить своё ЧСВ и поприкалываться)
Спасибо за видео! Вы сэкономили мне уйму времени! 2 недели проходить собеседование! Это надо быть либо безработным, либо фанатеть от компании Авито.
Лол, ну если после такого собеса ЗП хотя бы 10к зелени (именно в валюте), то еще ок. Если нет, то пусть ищут умственно отсталых, которые на это согласятся, дальше. Ибо ни один человек, который ценит себя, свое время и имеет IQ хотя бы на уровне умственно отсталой собаки, которых (судя по сервисам avito) в этой компании абсолютное меньшинство, не будет заниматься этой херней и пока вы его собеседуете, даже если уж он в это ввязался, уйдет в нормальную какую-нибудь компанию, где его отсобесят намного быстрее и эффективнее, не задавая бесполезных вопросов. Нормальных спецов сейчас мало, искать их сложно, именно из-за такого подхода в бигтехе работают в основном только отбросы и объедки, которые ничего нормального себе найти не смогли. Тем более что еще очень жирный минус в том, что некоторые компании под санкциями, а это значит, что при релокации лучше молчать о том, что с этой обрыгаловкой санкционированной дело хоть какое-то имел. А строчка в резюме о том, что человек работал в таких компаниях, для меня скорее ред флаг, на уровне с наличием высшего образования. Умные люди не занимаются дрочью типа вышки и прохождения душных собесов, это удел биомусора.
Процесс найма здорового человека: 1) Краткое собеседование с HR 2) Часовое собеседование по техническим скиллам, обсуждение резюме и ожиданий 3) Оффер Если в авито зп в два раза больше рыночных, тогда другое дело. Но что-то я сомневаюсь.
Если верить сайтам с зп - да, там повыше, но не в 2 раза. Чем многих подкупает Авито: типа серьезные нагрузки/объёмы + зп по верхней границе (20-30% накидывают от среднего).
Это все ради того, чтобы сбить величину зарплаты. Задолбать человека, а когда он будет на финише, ок мы тебя берём, но зарплата у тебя будет ниже процентов на 10-15 от изначально оговоренной. Вот и думай, соглашаться на такой кидок, и отправить недели своей жизни в мусорку, или соглашаться. Мой вам совет, избегайте таких компаний.
Ок, всё понятно. Авито, как работодатель, идёт на 3 буквы. Мне эти 9 кругов ада ради работы в сервисе объявлений вообще не упёрлись.
И я опять никак не могу понять. Авито это место, где одни продают товары другим. Какие еще 3000 микросервисов😮
так у них миллион посетителей каждый день, без горизонтального масштабирования авито давно бы потерял лидирующую позицию.
Вот это вот все проходишь. А потом задачи - напилить типовой круд для 100500 таблиц.
подача для детей не зашла
Такое случается:)
А мне зашло))
подача выбрана так, чтобы понял каждый, на мой взгляд - это оптимальный подход
А я думал таймер в конце в угол залетит(
4:54 начало
UML же вроде умер. Нет?
Отличный доклад, спасибо!
Прикольно смотреть, как меняется подходы к разработке. Ранее вот эти примеры использовались, чтоб на собеседовании спрашивать какие SOLID принципы здесь нарушаются. Очень много вопросов возникает после просмотра, жаль не удалось посмотреть в прямом эфире. - Почему логгер(интерфейсный слой) знает о какой-то бизнес логике? Если проблема лишь в том что какой-то программист захочет назвать поле по другому, что мешает этому программисту создать другую структуру данных? П.С. Из ваших слов в авито вы прокидываете мапу, тогда не понятно зачем пример с структурами... - Зачем засорять контекст данными? Я думаю вытекающие проблемы понятны - Почему выбрали именно slog? Честно ожидал что будет как "Jaeger для трассировки в микросервисной архитектуре", а вышла на аудиторию, которая только начинает работать с golang
Не возникает делима где логировать 27:05 ошибку, она всегда должна логироваться, она должна логироваться там где происходит. Это бред какой-то логировать её где-то на нижних уровнях. Представь, что ты используешь стороннюю библиотеку и она вместо того чтобы залогировать какую-то ошибку в себе, прокалывание её наверх, чтобы ты сам решал логировать её или нет. Такого я ни разу не видел в жизни. Да и логируется всегда весь контекс и стектрейс, который есть только в месте возникновения ошибки. Я посмотрел лекцию до конца и видел вариант с добавлением в специально созданную структуру контекста, но это лютая дичь! Вернёмся к моему другому примеру с 5000 логов, тебе нужно будет сделать 5000 обвёрток и чуть меньше структур для прокидывания контекста наверх? А сколько принципов программирования и проектирования это нарушает? +-10 штук. А если у тебя часть кода будет лежать в одном модуле, а часть в другом, нужно будет в вызывающем модуле всё логировать? А если его начнут использовать ещё кто-то? Да и бред про устоявшуюся команду меня паразил. А что если ваш сторожила уволится? Да и возвращать ошибку на каждом уровне это ещё тот спагетти. Уже давно выработан подход к обработке ошибок, почитайте книгу Чистый код, главу про обработку ошибок, когда возникает ошибка, она сразу логируется и возвращается исключение, которое перехватывается где-то на верхнем уровне. Да, в го нет исключений, но есть паники, которыми можно реализовать тот же самый подход. Такой бы код (даже с учётом примеров) у меня никогда бы не прошёл ревью. В общем, лекция хорошая для новичков, кто вообще не знает о структурировании легировании, но для опытных она будет бесполезной.
паниками реализовывать исключение - ты чего)) это очень дорого, поэтому бессмысленно
Смешно говорит, что код безупречен, а в нём десяток функций которые просто логируют. Так, если в приложении будет 10000 файлов и 5000 комментариев, нужно будет сделать 5000 функций обвёрток для лога?
Привет, не совсем так. Одна функция на ключ, а не на файл )
Олег, спасибо! Емко и доступно рассказал
рад, что понравилось))
Я же правильно понимаю, что даже после второго броска кубика мат ожидание все равно 3.5? Если нет, то может кто-то плиз расписать почему и какое? Заранее спасибо!
поч не какой-нибудь pg + citus + patroni? когда увидел слайд с pg'шечкой и урной - сердечко забилось и слезки закапали...
Для разных задач - разные СУБД. pg'шечка и урна только для одного кейса, а для решения других задач это все еще рабочее и хорошее решение. В конкретном кейсе владельцы сервиса находились в поиске cloud native, и CRDB подошел для их нужд
Почему на слайде с БД в Авито нет Sphinx, которую буквально нарисали в Авито и на которой все рекомендации живут?)
На слайде представлены самые распространенные БД, которые используются в Авито. Сфинкс очень важный, критичный и написан в Авито, но используется не повсеместно. Кроме Сфинкса у нас еще кое-что используется из отсутствующего на слайде
[Перезалив без дропов] ruclips.net/video/lF5kB7p6nQY/видео.html
А в то время rust еще не было... а он прям заточен под это
00:04:15 - начало 00:06:50 - Как мы управляем конфигурациями в DevPlatform с помощью kubernetes-оператора - Виктор Горячкин, VK Tech 00:34:30 - Как устроен планировщик в Golang - Олег Козырев, Авито 01:33:24 - Облегчаем жизнь разработчикам при помощи плагинов protoc - Святослав Петров, Ozon