• Видеозаписи всех докладов с восьми конференций Онтико

      Ситуация с тем-самым-вирусом сильно бьёт по организаторам мероприятий. Людям, которые помогают сообществу разработчиков России, сейчас тяжело. Мы в AvitoTech хотим поддержать своих друзей из Онтико, и поэтому открываем доступ к видео с конференций, которые ещё не публиковались. Это доклады за 2019 год с Saint AppsConf, HighLoad++, DevOpsConf, FrontendConf, Product Fest и с последней TeamLead Conf.


      Инженеры Авито, которые выступали или были участниками конференций, вспомнили самые интересные доклады. Под катом — ссылки на плейлисты со всеми-всеми видео и наша субъективная подборка.


      UPD: добавили в статью плейлисты с UseData и GolangConf 2019.


      Читать дальше →
      • +48
      • 25.8k
      • 4
    • Open source: CI/CD и тестовая инфраструктура Авито для Android

        Мы вынесли в open source инфраструктуру Авито для Android: Gradle плагины, эмуляторы и библиотеки для тестов. Наш код будет полезен при автоматизации CI/CD, а также облегчит написание и поддержку автотестов.

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


        Читать дальше →
        • +32
        • 4.6k
        • 2
      • Backend United 4: Окрошка. Инциденты

          Привет! Мы продолжаем серию митапов Backend United. Четвёртая встреча называется «Окрошка», и посвящена она будет инцидентам. Вместе с коллегами из Tutu.Ru, Ozon и Авито поговорим про работу с инцидентами, об инструментах для улучшения incident response и о ценности техдолга.


          Встреча пройдёт 10 августа, начало в 12:00. Регистрируйтесь сами и приглашайте коллег. Под катом — тезисы выступлений, ссылки на регистрацию и видеотрансляцию митапа.


          Читать дальше →
        • Как устроено A/B-тестирование в Авито

            Всем привет. Меня зовут Данила, я работаю в команде, которая развивает аналитическую инфраструктуру в Авито. Центральное место в этой инфраструктуре занимает А/B-тестирование.


            А/B эксперименты — ключевой инструмент принятия решений в Авито. В нашем цикле продуктовой разработки А/B-тест является обязательным этапом. Мы проверяем каждую гипотезу и выкатываем только позитивные изменения.


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


            Читать дальше →
          • Багодельня: BUgHunting. Как найти 200 багов за день

              Всем привет! Меня зовут Юля, и я тестировщик. В прошлом году рассказывала вам про Багодельню — мероприятие, проводимое у нас в компании для чистки бэклога багов. Это вполне жизнеспособный вариант значительно уменьшить его (в разных командах от 10 до 50%) всего за один день.


              Сегодня я хочу рассказать вам про наш весенний формат Багодельни — BUgHunting (BUH). В этот раз мы не фиксили старые баги, а искали новые и предлагали идеи для фич. Под катом много подробностей про организацию таких мероприятий, наши результаты и отзывы участников.


              Читать дальше →
              • +20
              • 5.9k
              • 7
            • Как мы боремся с копированием контента, или первая adversarial attack в проде

                Привет.


                Вы знали, что платформы для размещения объявлений часто копируют контент у конкурентов, чтобы увеличить количество объявлений у себя? Они делают это так: обзванивают продавцов и предлагают им разместиться на своей платформе. А иногда и вовсе копируют объявления без разрешения пользователей. Авито — популярная площадка, и мы часто сталкиваемся с такой недобросовестной конкуренцией. О том, как мы боремся с этим явлением, читайте под катом.


                Читать дальше →
              • Objectives and Key Results: инструкция по применению

                  Всем привет! Меня зовут Егор, я руковожу кластером App Platform в Авито. Мои команды в основном занимаются разработкой внутренних продуктов, инструментов и процессов — тем, что принято называть платформенной разработкой.


                  Год назад я рассказывал в этом блоге, как мы внедрили и используем performance review. Тогда я упоминал, что мы смотрим на него как на индикатор пользы, которую приносит компании каждый отдельный человек. Понимать это важно и полезно. Это помогает ответить на вопрос «насколько Вася молодец по сравнению с Петей?» и определить, какую премию кому выплатить. Но когда мы переходим на уровень команд, всё становится сильно интереснее. Здесь важно оценить конкретный результат команды и его влияние на успех компании. Высокое среднее значение перфоманса всех членов команды совсем необязательно значит, что команда достигла крутых результатов. Какая-то корреляция точно присутствует, но для оценки фактического вклада команды в успех компании этот инструмент использовать нельзя.


                  Для решения этой и ряда других проблем мы в Авито используем метод OKR — Objectives and Key Results. Он позволяет установить дерево понятных и легко измеримых целей во всей компании, связать результаты различных команд друг с другом и добиться достижения желаемых результатов.


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


                  Читать дальше →
                  • +20
                  • 15.9k
                  • 5
                • Как мы решали задачу продолжения плейлистов на RecSys Challenge и заняли 3 место

                    В 2018 наша команда традиционно приняла участие в RecSys Challenge. Это ежегодный конкурс по рекомендательным системам, проводимый в рамках конференции RecSys. Он не такой масштабный, как конкурсы на Kaggle, но считается одним из самых престижных соревнований по рекомендательным системам. В этот раз задача была музыкальной — нужно было построить систему автоматического продолжения плейлистов. В этом посте я подробно рассказываю о нашем решении. Приглашаю под кат.


                    Читать дальше →
                    • +33
                    • 5.6k
                    • 6
                  • Первые дни в команде разработки — как это бывает у нас

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


                      Читать дальше →
                    • Встреча #RuPostgres: масштабирование приложений на PostgreSQL

                        15 сентября в офисе Авито состоится встреча, посвященная масштабированию приложений на PostgreSQL. Поговорим об алгоритмах и нюансах реализации транзакционности в языках программирования, построении бизнес-транзакций в сервисах с паттерном database per service, как устроена OZO — асинхронная типобезопасная header-only библиотека-клиент PostgreSQL для C++17, и уровнях изоляции транзакций PostgreSQL. С докладами выступят Стас Кельвич (Postgres Professional), Сергей Хандриков (Яндекс), Константин Евтеев (Авито) и Михаил Тюрин. Регистрируйтесь на встречу и приглашайте коллег. Под катом — тезисы выступлений докладчиков, ссылка на регистрацию и информация по трансляции митапа.


                        image

                        Читать дальше →
                      • Как запустить Istio, используя Kubernetes в production. Часть 1

                          Что такое Istio? Это так называемый Service mesh, технология, которая добавляет уровень абстракции над сетью. Мы перехватываем весь или часть трафика в кластере и производим определенный набор операций с ним. Какой именно? Например, делаем умный роутинг, или реализуем подход circuit breaker, можем организовывать «canary deployment», частично переключая трафик на новую версию сервиса, а можем ограничивать внешние взаимодействия и контролировать все походы из кластера во внешнюю сеть. Есть возможность задавать policy правила для контроля походов между разными микросервисами. Наконец, мы можем получить всю карту взаимодействия по сети и сделать унифицированный сбор метрик полностью прозрачно для приложений.

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


                          Читать дальше →
                          • +20
                          • 12.4k
                          • 2
                        • Run, Test, Run. Рассказываем, как прошел Mobile Testing Meetup

                            11 августа в нашем офисе прошел Avito Mobile Testing Meetup — митап, полностью посвященный тестированию приложений на платформах iOS и Android. Говорили о качестве мобильного приложения — как понять, что оно работает должным образом, о нативных UI-тестах в iOS — что тестировать и какие инструменты помогут их улучшить. Обсуждали, что лучше использовать в тестировании Android-приложений — Appium или Espresso, и в end-to-end тестах — можно ли их организовать в больших мобильных проектах, и не только.


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


                            Под катом делимся впечатлениями, фото, видео, презентациями со встречи и отзывами слушателей.


                            Читать дальше →
                          • Многорукие бандиты в рекомендациях

                              Всем привет! Меня зовут Миша Каменщиков, я занимаюсь Data Science и разработкой микросервисов в команде рекомендаций Авито. В этой статье я расскажу про наши рекомендации похожих объявлений и о том, как мы улучшаем их при помощи многоруких бандитов. С докладом на эту тему я выступал на конференции Highload++ Siberia и на мероприятии «Data & Science: Маркетинг».


                              image
                              Читать дальше →
                            • Ни GA, ни ЯМ. Как мы сделали собственный кликстрим

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


                                Систему сбора и анализа событий можно обобщённо назвать кликстримом. Расскажу о технической стороне кликстрима в Авито: устройство событий, их отправка и доставка, аналитика, отчёты. Почему хочется своё, если есть Google Analytics и Яндекс.Метрика, кому портят жизнь разработчики кликстримов и почему go-кодеры не могут забыть php.


                                Читать дальше →
                              • Оркестрируемая сага или как построить бизнес-транзакции в сервисах с паттерном database per service

                                  Привет! Меня зовут Константин Евтеев, я работаю в Авито руководителем юнита DBA. Наша команда развивает системы хранения данных Авито, помогает в выборе или выдаче баз данных и сопутствующей инфраструктуры, поддерживает Service Level Objective для серверов баз данных, а еще мы отвечаем за эффективность использования ресурсов и мониторинг, консультируем по проектированию, а возможно и разрабатываем микросервисы, сильно завязанные на системы хранения, или сервисы для развития платформы в контексте хранилищ.


                                  Я хочу рассказать, как мы решили один из вызовов микросервисной архитектуры — проведение бизнес-транзакций в инфраструктуре сервисов, построенных с помощью паттерна Database per service. С докладом на эту тему я выступал на конференции Highload++ Siberia 2018.


                                  image
                                  Узнать про саги
                                • Мобильному тестировщику приготовиться. Приглашаем на Avito Mobile Testing Meetup

                                    11 августа в офисе Авито пройдет первый митап, посвященный тестированию мобильных приложений на платформах iOS и Android. Поговорим о нативных UI-тестах в iOS — что тестировать и какие инструменты помогут их улучшить, end-to-end тестах — можно ли их организовать в больших мобильных проектах, качестве мобильного приложения — как понять, что оно работает должным образом, и выясним, что лучше использовать в тестировании Android-приложений — Appium или Espresso. Обо всем этом расскажут Артем Разинов (Авито), Павел Иванов (Альфа-Банк), Алексей Денисов (PTScientists) и Алексей Емелин (Яндекс). Под катом — тезисы выступлений докладчиков, ссылка на регистрацию и важная информация по трансляции митапа.


                                    image

                                    Читать дальше →
                                  • Разминка для тех, кто умеет в Python

                                      Привет! Мы обожаем квизы, посвященные языкам программирования. В нашем блоге мы разместили уже целых три: первый — по Python, PHP, Golang, DevOps, второй — полностью по Go, третий — только по PHP. Сегодняшний квиз посвящен исключительно Python.


                                      Предлагаем вам размяться в честь конца ещё одной летней недели и в преддверии PyCon Russia 2018. (Кстати, кто едет? Мы там будем).


                                      Под катом — семь вопросов, советы от друга, Чапаев, отрывки из ABBA (что? да!) и крутой мерч.


                                      UPD: Мы закончили принимать ответы. Спасибо всем, кто поучаствовал! Ответы на вопросы — внутри текста, а победители и призеры под спойлером.


                                      Победители и призеры викторины

                                      Победитель


                                      Vadem


                                      Призеры


                                      Второе место: acerikfy
                                      Третье место: Histiophryne
                                      Четвертое — десятое место: Swezy_ua, SlonPC, noth, IIRoadRunnerII, term1nal, alexchromets, Tihon_V .


                                      Бонус


                                      Так много участников дали правильные ответы, что мы решили разыграть случайным образом еще пять пар носков среди них. Крутые носки от Авито получают: sunman, grt_pretender, Vash, ipatov_dn, institoris


                                      Запись розыгрыша



                                      Читать дальше →
                                    • Bioyino — распределённый, масштабируемый агрегатор метрик

                                        Итак, вы собираете метрики. Как и мы. Мы тоже собираем метрики. Конечно же, нужные для бизнеса. Сегодня мы расскажем о самом первом звене системы нашего мониторинга — statsd-совместимом сервере агрегации bioyino, зачем мы его написали и почему отказались от brubeck.


                                        Читать дальше →
                                        • +35
                                        • 4.7k
                                        • 7
                                      • Кроссфункциональность, менеджер зависимостей, мониторинг в iOS и UI-тесты. Как прошел Avito iOS Summer Edition

                                          16 июня мы провели традиционную встречу Avito iOS Summer Edition. Для обсуждения на митапе выбрали четыре темы: UI-тестирование, работа в кроссфункциональных командах, мониторинг в мобильных приложениях, история и внутренности собственного менеджера зависимостей. На случай, если вы не смогли прийти на митап, не следили за трансляцией на YouTube или просто хотите узнать что-то новое — делимся фото, видео, презентациями со встречи и отзывами слушателей.


                                          image
                                          Читать дальше →
                                          • +19
                                          • 2.1k
                                          • 1
                                        • РИТ++, Tech RaDarts и все-все-все

                                            Всем привет! РИТ++ отгремел, время подводить итоги и стремиться дальше. Как показал опрос, проведенный организаторами фестиваля, большинство участников приехали туда, чтобы расширить кругозор, найти новые инструменты, технологии, идеи и вдохновение. Под катом рассказываю о знаниях и практиках, которыми делились на РИТ++ 2018 мои коллеги, зачем устраивать соревнование по дартсу на стенде и при чём здесь технологический радар.


                                            Читать дальше →