15 сентября в офисе Авито состоится встреча, посвященная масштабированию приложений на PostgreSQL. Поговорим об алгоритмах и нюансах реализации транзакционности в языках программирования, построении бизнес-транзакций в сервисах с паттерном database per service, как устроена OZO — асинхронная типобезопасная header-only библиотека-клиент PostgreSQL для C++17, и уровнях изоляции транзакций PostgreSQL. С докладами выступят Стас Кельвич (Postgres Professional), Сергей Хандриков (Яндекс), Константин Евтеев (Авито) и Михаил Тюрин. Регистрируйтесь на встречу и приглашайте коллег. Под катом — тезисы выступлений докладчиков, ссылка на регистрацию и информация по трансляции митапа.
Рубрика «Блог компании Avito»
Встреча #RuPostgres: масштабирование приложений на PostgreSQL
2018-08-30 в 9:25, admin, рубрики: distributed systems, distributed transactions, Microservices, postgresql, saga, Анализ и проектирование систем, Блог компании Avito, Проектирование и рефакторинг, хранение данныхДелимся технологическим контентом: собрали все наши материалы на одном сайте
2018-08-29 в 13:16, admin, рубрики: android, avito.ru, avitotech, backend, devops, highload, iOS, mobile, Блог компании Avito, Карьера в IT-индустрии, конференции, Разработка веб-сайтов, Учебный процесс в ITПривет!
Наши коллеги постоянно выступают на технических конференциях самого разного масштаба — от встреч локальных сообществ до мировых форумов. Мы часто проводим в нашем офисе митапы для разработчиков, для которых ищем и находим самых интересных спикеров. И вот уже больше двух лет мы с маленькой, но гордой командой технопиара рассказываем о работе технического отдела Авито в разных источниках. Начиналось всё с твиттера, продолжалось фейсбуком, потом мы начали делиться инженерными историями здесь, на Хабре.
В итоге накопилось очень много контента разной тематики (бэкенд и фронтенд, мобильная разработка и тестирование, DevOps и высокие нагрузки...), в котором бывает довольно сложно разобраться и найти нужную информацию в разных источниках. Нас часто спрашивали, есть ли место, где есть всё про технологии Авито. И вот, кажется, что мы подросли настолько, что готовы объединить собранное за эти годы на отдельном сайте. Встречайте — avito.tech!
Как запустить Istio, используя Kubernetes в production. Часть 1
2018-08-23 в 11:11, admin, рубрики: devops, envoy, injecting, Istio, kubernetes, service mesh, tracing, Блог компании Avito, Облачные вычисления, Серверное администрирование, системное администрированиеЧто такое Istio? Это так называемый Service mesh, технология, которая добавляет уровень абстракции над сетью. Мы перехватываем весь или часть трафика в кластере и производим определенный набор операций с ним. Какой именно? Например, делаем умный роутинг, или реализуем подход circuit breaker, можем организовывать «canary deployment», частично переключая трафик на новую версию сервиса, а можем ограничивать внешние взаимодействия и контролировать все походы из кластера во внешнюю сеть. Есть возможность задавать policy правила для контроля походов между разными микросервисами. Наконец, мы можем получить всю карту взаимодействия по сети и сделать унифицированный сбор метрик полностью прозрачно для приложений.
Про механизм работы можно прочитать в официальной документации. Istio — это действительно мощный инструмент, который позволяет решить множество задач и проблем. В этой статье я бы хотел ответить на основные вопросы, которые обычно возникают в начале работы с Istio. Это поможет вам разобраться с ним быстрее.
Run, Test, Run. Рассказываем, как прошел Mobile Testing Meetup
2018-08-22 в 10:47, admin, рубрики: android, appium, espresso, iOS, mobile testing, qa, ui testing, Блог компании Avito, разработка мобильных приложений, Разработка под android, разработка под iOS, Тестирование мобильных приложений11 августа в нашем офисе прошел Avito Mobile Testing Meetup — митап, полностью посвященный тестированию приложений на платформах iOS и Android. Говорили о качестве мобильного приложения — как понять, что оно работает должным образом, о нативных UI-тестах в iOS — что тестировать и какие инструменты помогут их улучшить. Обсуждали, что лучше использовать в тестировании Android-приложений — Appium или Espresso, и в end-to-end тестах — можно ли их организовать в больших мобильных проектах, и не только.
Кроме того, коллеги из Яндекса рассказывали о своём инструменте тестирования производительности мобильных телефонов, а мы представили телеграм-бота Гошу, который присматривал за всеми из-за угла, провели целых две викторины и наградили участников, приехавших на митап из Волгограда и Воронежа. В общем, получился настоящий фестиваль мобильного тестирования.
Под катом делимся впечатлениями, фото, видео, презентациями со встречи и отзывами слушателей.
Многорукие бандиты в рекомендациях
2018-08-14 в 9:53, admin, рубрики: data mining, python, Алгоритмы, Блог компании Avito, машинное обучение, многорукие бандиты, рекомендательные системыВсем привет! Меня зовут Миша Каменщиков, я занимаюсь Data Science и разработкой микросервисов в команде рекомендаций Авито. В этой статье я расскажу про наши рекомендации похожих объявлений и о том, как мы улучшаем их при помощи многоруких бандитов. С докладом на эту тему я выступал на конференции Highload++ Siberia и на мероприятии «Data & Science: Маркетинг».
Ни GA, ни ЯМ. Как мы сделали собственный кликстрим
2018-08-09 в 12:48, admin, рубрики: big data, Анализ и проектирование систем, аналитика, Блог компании Avito, визуализация данных, высокая производительность, кликстримМы собираем более двух миллиардов аналитических событий в сутки. Благодаря этому можем узнать кучу необходимых вещей: нажимают ли на сердечки больше, чем на звёздочки, в какие часы пишут более развёрнутые описания, в каких регионах чаще промахиваются по зелёным кнопкам.
Систему сбора и анализа событий можно обобщённо назвать кликстримом. Расскажу о технической стороне кликстрима в Авито: устройство событий, их отправка и доставка, аналитика, отчёты. Почему хочется своё, если есть Google Analytics и Яндекс.Метрика, кому портят жизнь разработчики кликстримов и почему go-кодеры не могут забыть php.
Оркестрируемая сага или как построить бизнес-транзакции в сервисах с паттерном database per service
2018-08-02 в 11:09, admin, рубрики: distributed systems, distributed transactions, Microservices, postgresql, saga, Анализ и проектирование систем, Блог компании Avito, Проектирование и рефакторингПривет! Меня зовут Константин Евтеев, я работаю в Авито руководителем юнита DBA. Наша команда развивает системы хранения данных Авито, помогает в выборе или выдаче баз данных и сопутствующей инфраструктуры, поддерживает Service Level Objective для серверов баз данных, а еще мы отвечаем за эффективность использования ресурсов и мониторинг, консультируем по проектированию, а возможно и разрабатываем микросервисы, сильно завязанные на системы хранения, или сервисы для развития платформы в контексте хранилищ.
Я хочу рассказать, как мы решили один из вызовов микросервисной архитектуры — проведение бизнес-транзакций в инфраструктуре сервисов, построенных с помощью паттерна Database per service. С докладом на эту тему я выступал на конференции Highload++ Siberia 2018.
Мобильному тестировщику приготовиться. Приглашаем на Avito Mobile Testing Meetup
2018-07-25 в 9:10, admin, рубрики: android, appium, espresso, iOS, mobile testing, qa, Блог компании Avito, разработка мобильных приложений, Разработка под android, разработка под iOS, Тестирование мобильных приложений11 августа в офисе Авито пройдет первый митап, посвященный тестированию мобильных приложений на платформах iOS и Android. Поговорим о нативных UI-тестах в iOS — что тестировать и какие инструменты помогут их улучшить, end-to-end тестах — можно ли их организовать в больших мобильных проектах, качестве мобильного приложения — как понять, что оно работает должным образом, и выясним, что лучше использовать в тестировании Android-приложений — Appium или Espresso. Обо всем этом расскажут Артем Разинов (Авито), Павел Иванов (Альфа-Банк), Алексей Денисов (PTScientists) и Алексей Емелин (Яндекс). Под катом — тезисы выступлений докладчиков, ссылка на регистрацию и важная информация по трансляции митапа.
Разминка для тех, кто умеет в Python
2018-07-19 в 10:20, admin, рубрики: avitoquiz, python, Блог компании Avito, задачи для программистов, Занимательные задачки, ПрограммированиеПривет! Мы обожаем квизы, посвященные языкам программирования. В нашем блоге мы разместили уже целых три: первый — по Python, PHP, Golang, DevOps, второй — полностью по Go, третий — только по PHP. Сегодняшний квиз посвящен исключительно Python.
Предлагаем вам размяться в честь конца ещё одной летней недели и в преддверии PyCon Russia 2018. (Кстати, кто едет? Мы там будем).
Под катом — семь вопросов, советы от друга, Чапаев, отрывки из ABBA (что? да!) и крутой мерч.
Centrifugo v2 — будущее сервера real-time сообщений и библиотека для Go
2018-07-12 в 11:08, admin, рубрики: centrifuge, centrifugo, Go, open source, redis, sockjs, WebSocket, Блог компании Avito, Разработка веб-сайтовВозможно, некоторые из читателей уже слышали про Centrifugo раньше. В данной статье речь пойдет о разработке второй версии сервера и новой real-time библиотеке для языка Go, лежащей в его основе.
Меня зовут Александр Емелин. Летом прошлого года я присоединился к команде Авито, где сейчас помогаю разрабатывать бэкенд мессенджера Авито. Новая работа, напрямую связанная с быстрой доставкой сообщений пользователям, и новые коллеги вдохновили меня продолжать работу над open-source проектом Centrifugo.