Обновить
1
0
Андрей Овчинников@a_ovchinnikov

Backend developer

Отправить сообщение

Встречаем ТВ Станции — новые устройства, которые объединяют технологии телевизоров и умных колонок

Время на прочтение13 мин
Охват и читатели29K

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

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

Поехали!

Сравниваем скорость и оверхеды библиотек Deep Copy для Go

Время на прочтение8 мин
Охват и читатели11K

Егор Гартман, бэкендер Авито, рассказал, как протестировал несколько библиотек Deep Copy, а потом сделал свою — быстрее и эффективнее.

Читать далее

Как измерить надёжность вашего приложения

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели11K

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

Читать далее

Как реализовать ролевую систему доступа через Open Policy Agent. Опыт PaaS Авито

Время на прочтение10 мин
Охват и читатели9.3K

Антон Губарев, инженер в команде Platform as a Service (PaaS) Авито, рассказал, как они с командой внедряли политики авторизации с помощью Open Policy Agent (OPA), и с какими проблемами столкнулись на пути.

Читать далее

Монолит или микросервисы — это не вопрос технологических предпочтений, это про time-to-market

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели14K

На конференциях эта тема (монолит vs микросервисы) обсуждается с завидной регулярностью, но обычно в техническом ключе. Кто-то любит консистентность монолита, кто-то гибкость микросервисов, какие-то инструменты удобнее, какие-то нет.


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


Поехали.


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


Одна команда


Когда команда одна, не очень большая (two pizza team), то никто никому не мешает. Код ревью, рефакторинг, деплой проходят быстро и весело. Бизнес сфокусирован на цели и работает как единое целое. Целью, кстати, зачастую является проверка гипотезы, нужен ли вообще этот проект кому-то или нет.

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

В Go 1.21 существенно расширяется стандартная библиотека

Время на прочтение4 мин
Охват и читатели17K
// теперь в Go так можно!
slices.Contains(s, v)

Год назад в блоге Каруны мы писали про дженерики в Go, и там упоминалось, что гошное сообщество разделилось на две части. Не всем это нововведение было нужно, особенно в простом продуктовом коде. И надо сказать, это до сих пор так, дженерики по-прежнему используют далеко не все проекты.


Однако для стандартной библиотеки Go это было по-настоящему царским подарком. Появились новые стандартные обобщенные функции, и, отстоявшись в экспериментальном репозитории golang.org/x/exp, теперь появятся в Go 1.21. Релиз буквально через месяц.


TLDR: появилось множество функций по работе со слайсами, мапами, а также новый логгер с (почти) всеми нужными фишечками.


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


Но давайте обо всём по порядку.

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

Яндекс выводит за границу заработанные в России деньги, пока это возможно

Время на прочтение5 мин
Охват и читатели65K

Яндекс отчитался за 2 квартал (и первое полугодие) 2023 года, и в отчете я обнаружил много интересного. Я уже на протяжении 4 лет разбираю каждый квартал отчетность Яндекса, и это 16-й по счёту отчет (и, возможно, это последний разбор в общем доступе). Так что я уже знаю, куда смотреть и что там можно увидеть.

Читать далее

Что порой кроется за «успехом»

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели44K

Хочу рассказать вам свой путь в поиске новой работы в 2023 году и поддержать тех, кто сейчас проходит через это. За 6 месяцев я собеседовался в 25 компаний, прошел 54 этапа (а какие-то не прошел), получил 2 оффера и в итоге один из них принял. Если вы сейчас в поиске работы, эта статья будет для вас глотком свежего воздуха. Если же вы матерый специалист, устраивающий процессы онбординга в своей компании, вам это может быть интересно с другой стороны.

Читать далее

May the Code Review be with you

Время на прочтение9 мин
Охват и читатели28K
Code review может быть большой болью для команды, которая только начинает его внедрять. Вы в любом случае наступите на много граблей: будете проводить ревью дольше, чем пишете код, устраивать смертельные споры про расположение скобочек и разбираться, можно ли сливать ветку в master до аппрува команды или нет. Я собрал ряд практик, которые помогут вам сделать процесс адаптации чуть менее болезненным — по крайней мере, мне они точно помогли.
 
Этот материал — краткая выжимка моего опыта, накопленного за несколько лет работы в крупных командах мобильной разработки. Опыт по большей части в мобильной разработке, что оказало влияние на используемые примеры и ссылки. Для тех, кто предпочитает не читать, а смотреть, в течение пары месяцев должно появиться видео с конференции Mobius, где я рассказываю доклад на эту же тему, но с кучей подробных практических примеров.
 

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

Работаем с PostgreSQL в Go. Опыт Авито

Время на прочтение8 мин
Охват и читатели59K

Привет! Меня зовут Дима Вагин, я бэкенд-инженер в Авито. Сегодня расскажу, как мы работаем с БД PostgreSQL из Go. Покажу, какие библиотеки и пулеры соединений мы используем для доставки в код параметров подключения и как мы их настраиваем. А ещё расскажу про проблемы, к которым приводит отмена контекста, и о том, как мы с ними справляемся.

Читать далее

HP Vertica, проектирование хранилища данных, больших данных

Время на прочтение8 мин
Охват и читатели34K
UPD: Продолжение статьи по ссылке — habrahabr.ru/company/avito/blog/322510

О чем статья

Незаметно пролетел год, как начались работы по разработке и внедрению хранилища данных на платформе Вертика.
На хабре уже есть статьи про саму СУБД Вертика, особенно рекомендую эту: HP Vertica, первый запущенный проект в РФ, ведь ее автор очень помог нам на начальном этапе. Алексей, спасибо еще раз.
Хотелось бы рассказать о том, какая методология применялась для проектирования физической структуры хранилища, чтобы наиболее полно использовать возможности HP Vertica.
Эту статью хотел бы посветить обоснованию оптимальности выбранной методологии, а в следующей — рассказать о том, какие техники позволяют анализировать данные, содержащие десятки млрд.

Постановка задачи

Рассмотрим высоконагруженный сайт крупной российской интернет-компании (теперь можно — это Авито ;)).
Деятельность компании описывается следующими цифрами: ~ 10 млн. активных пользователей, ~100 млн. просмотров страниц в день, около 1 тыс. новых объектов, размещенных пользователями на сайте в течение 1 минуты, ~10 тыс. поисковых запросов пользователей в минуту.
Грубая оценка количества действий, подлежащих сохранению в хранилище, составляет 100 млн. новых записей в сутки (~100 GB новых данных в сутки).
Т.е. при построении классического хранилища данных с отказом от стирания поступивших ранее данных, объем хранилища через 3 месяца эксплуатации составит 10TB сырых данных. Big Data как она есть.
Нужно построить хранилище, которое хранило бы не меньше 6 месяцев данных, позволяло их анализировать, визуализировать, и отставало бы от реальной жизни настолько мало, насколько это возможно (в худшем случае — отставало бы на день, в лучшем — на минуты).
Вынося сразу за скобки вопрос выбора платформы — хранилище должно работать на HP Vertica, MPP базе колоночного хранения, см. вводную статью в заголовке.
Читать дальше →

Vertica+Anchor Modeling = запусти рост своей грибницы

Время на прочтение5 мин
Охват и читатели38K
Какое-то время назад я написал статью на Хабре. В ней же пообещал продолжение через пару недель. Но, как известно, обещанного три года ждут  —  и с тех пор действительно прошло три года. Если вы не запомнили со времён той статьи, то напомню  —  я работаю в Avito, строю хранилище на основе Vertica.
Из того, что поменялось — теперь я могу не просто написать статью, а сделать это в блоге компании. И, надеюсь, не один раз. Самопиар окончен, теперь к делу.


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

Canary Deployment в Kubernetes #1: Gitlab CI

Время на прочтение4 мин
Охват и читатели17K

Мы будем использовать Gitlab CI и ручной GitOps для внедрения и использования Canary-деплоя в Kubernetes





Статьи из этого цикла:


  1. (эта статья)
  2. Canary Deployment при помощи ArgoCI
  3. Canary Deployment при помощи Istio
  4. Canary Deployment с Jenkins-X, Istio и Flagger

Выполнять Canary-деплой мы будем руками через GitOps и создание/изменение основных ресурсов Kubernetes. Эта статья предназначена в первую очередь для знакомства с тем, как работает в Kubernetes Canary деплой, так как есть более эффективные способы автоматизации, которые мы рассмотрим в следующих статьях.

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

Создаём репозиторий в Go через менеджер транзакций

Время на прочтение12 мин
Охват и читатели30K

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

Читать далее

Как заонбордиться тимлиду — первые 90 дней на новой работе

Время на прочтение7 мин
Охват и читатели15K

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

Ещё дадим несколько советов на тот случай, если всё-таки не удаётся показать результат за отведённое время.

Читать далее

Как я перестал тревожиться из-за читабельности и… все

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели32K

Всем привет.

Давно читаю хабр, давно и регулярно читаю статьи про правильное программирование.

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

TLDR: забейте на читабельность и выразительность. Стремитесь сделать ваш код хорошо работающим..

Идем забивать

Шпаргалка по SQL (postgres), которая выручает меня на собесах

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели273K

Привет, Хабр!

Я решил посвятить свою первую статью SQL. Вопросы, рассмотренные ниже мне задавали на собеседованиях на позицию python-разработчика. Естественно отвечать правильно получалось не всегда, а если точнее то чаще не правильно, однако проведя N часов в рефлексии я составил перечень ответов, которыми пользуюсь до сих пор.

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

Читать далее

Практическое руководство по HashiCorp Consul — Часть 1

Время на прочтение25 мин
Охват и читатели120K


Это часть 1 из серии 2 частей практического руководства по HashiCorp Consul. Эта часть в первую очередь ориентирована на понимание проблем, которые решает Consul и как он их решает. Вторая часть больше ориентирована на практическое применение Consul в реальном примере и будет опубликована на следующей неделе. Давайте начнем.

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

Разбираемся с пакетом Context в Golang

Время на прочтение11 мин
Охват и читатели197K

image


Пакет context в Go полезен при взаимодействиях с API и медленными процессами, особенно в production-grade системах, которые занимаются веб-запросами. С его помощью можно уведомить горутины о необходимости завершить свою работу.


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


(Прим. пер.: Контекст используется во многих пакетах, например, в работе с Docker).

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

Основы компьютерных сетей. Тема №5. Понятие IP адресации, масок подсетей и их расчет

Время на прочтение18 мин
Охват и читатели1.1M


Приветствую вас на очередном выпуске. И сегодня речь пойдет о том, какие бывают IP-адреса, и как ими пользоваться. Что такое маска подсети, как она считается, и для чего она нужна. Как делить сети на подсети и суммировать их. Заинтересовавшихся приглашаю к прочтению.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Йошкар-Ола, Марий Эл, Россия
Дата рождения
Зарегистрирован
Активность