Как стать автором
Обновить
318.92
Рейтинг
Ozon Tech
Стремимся делать лучший e-commerce в России
Сначала показывать

Без А/B результат XЗ, или Как построить высоконагруженную платформу А/B-тестов

Блог компании Ozon Tech Высокая производительность *Анализ и проектирование систем *Тестирование веб-сервисов *Управление продуктом *

Один из важных вопросов как в нашей жизни, так и в бизнесе, и в IT — вопрос эффективности. Эффективно ли мы планируем наше время, те ли задачи решает бизнес, тот ли код мы оптимизируем? Чтобы ответить на эти вопросы, результат должен обладать главным критерием измеримостью. Измеримость результата новых фич для бизнеса и IT обеспечивает платформа А/B-тестов. О том, как её можно построить, выдерживать большой RPS и при этом не облажаться уронить прод, я расскажу в этой статье. 

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

Читать далее
Всего голосов 44: ↑44 и ↓0 +44
Просмотры 2.5K
Комментарии 3

Новости

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

Блог компании Ozon Tech Управление разработкой *Управление проектами *Управление продуктом *Подготовка технической документации *

Недостаточно просто написать инструкции — важно, как, в каком порядке и где вы их разместите. 

Привет! Это Теодора — технический писатель Платформы, жизненно важного департамента Ozon. Документация для нас имеет большое значение, потому что вся компания пользуется нашими разработками: инфраструктурой as a service; фреймворками и библиотеками; инструментами для работы с базами данных и аналитикой и прочим. Сотни инженеров ежедневно обращаются к нашим сервисам и нуждаются в их описании.

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

Читать далее
Всего голосов 39: ↑38 и ↓1 +37
Просмотры 6.8K
Комментарии 3

Видео в вебе, Browser Policy и палки в колёсах

Блог компании Ozon Tech Разработка веб-сайтов *JavaScript *HTML *Браузеры

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

Это негативно сказывалось на пользовательском опыте, и в какой-то момент разработчики браузеров решили, что хватит это терпеть. Так родилась Autoplay Policy.

Рассмотрим её подробнее
Всего голосов 37: ↑36 и ↓1 +35
Просмотры 2.4K
Комментарии 13

Есть ли жизнь на Go после C#?

Блог компании Ozon Tech Программирование *.NET *Go *Карьера в IT-индустрии

Всем привет! На связи Пётр, Go-разработчик в команде Ozon, которая занимается управлением товарами торговой площадки. Всё, что загружают продавцы, обрабатывается нашими сервисами. Девять месяцев назад я сменил основной язык программирования с C# на новый для меня Go. В статье будут впечатления от Go, расскажу о некоторых различиях между языками, а в конце поделюсь своим опытом поиска работы на новом языке. Ведь вопрос смены стека технологий рано или поздно встаёт перед каждым разработчиком.

Читать далее
Всего голосов 55: ↑45 и ↓10 +35
Просмотры 16K
Комментарии 46

Как дизайнеры тестируют, или Что такое дизайн-ревью

Блог компании Ozon Tech Веб-дизайн *Интерфейсы *Управление продуктом *Дизайн

Привет! Меня зовут Ксюша, я старший продуктовый дизайнер в Ozon: проектирую разделы возвратов для личных кабинетов покупателя (Ozon.ru) и продавца (Seller Center) и немного — админки. Дизайнеры на Хабре не частые гости, но статья будет полезна не только дизайнерам и дизайн-лидам, но и разработчикам, тестировщикам и менеджерам.

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

Посмотреть состояние hover
Всего голосов 51: ↑51 и ↓0 +51
Просмотры 7K
Комментарии 13

Приглашаем на C# Meetup: обсудим дилемму кота Матроскина

Блог компании Ozon Tech .NET *C# *Конференции

UPD: Добавили запись

Меня зовут Дима Орлов, я руковожу группой разработки «Путь закупки» и пишу на C# больше 10 лет. Приглашаем на митап, посвященный C# — одному из основных языков, используемых в Ozon. У нас сотни микросервисов на C#, обеспечивающих работу сайта, склада, систем логистики и платформы собственных продаж. Работают над этим более 500 С#-разработчиков, готовых погружаться в business-critical проекты.

Поговорим о наших проектах подробнее:

— О наборе микросервисов «Потребность». Каждый день по набору товаров (±300к) он считает, сколько, на какой склад и у кого закупить товары. По технической части сконцентрируемся на Kafka, компонентном подходе, сериализации правил.

— О том, как мы с помощью SourceGenerator избавились от конфликтов версий пакетов при распространении клиентов для веб-сервисов и начали экономить время и силы на написании однотипного кода.

Подробнее под катом
Всего голосов 22: ↑22 и ↓0 +22
Просмотры 1.5K
Комментарии 0

Запись с Product Meetup — поговорили о логистике, экспериментах и приоритизации

Блог компании Ozon Tech Управление e-commerce *Управление продуктом *Конференции

Выкладываем видео митапа, посвященного продуктам, которые лидируют представители Ozon, Авито, Skyeng.

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

Посмотреть запись
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 558
Комментарии 0

Kubernetes CronJob не запустился? Тогда мы с shared informer идём к вам

Блог компании Ozon Tech Анализ и проектирование систем *IT-инфраструктура *DevOps *Kubernetes *

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

В прошлом году я рассказывала, как мы организовали мониторинг Kubernetes CronJob на основе kube-state-metrics, Thanos Receive и Thanos Ruler. За год мы нашли ответ на вопрос, почему же крон может не запускаться. И в этой статье я хочу рассказать об основных причинах и проблемах, о которых мы узнали. 

Спойлер: многие не задумываются о том, как устроен и управляется CronJob.

Читать далее
Всего голосов 64: ↑64 и ↓0 +64
Просмотры 4.7K
Комментарии 3

Go, я создал: пишем тесты на Allure-Go

Блог компании Ozon Tech Тестирование IT-систем *Программирование *Go *Тестирование веб-сервисов *

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

Вы можете помнить меня по предыдущей статье про Allure-Go, в которой мы коснулись самой макушечки нашей скромной наработки. Сегодня же мы накидаем пару тестов с нуля, разберём подробно примеры и посмотрим, чего же нам удалось в итоге добиться.

Много коммитов утекло с того момента, когда мы с вами общались в прошлый раз. Вышло обновление 0.5, которое привнесло множество изменений, в том числе и в интерфейсах, а также обновление 0.6, которое добавило поддержку test plan из TestOps. Более подробно об обновлениях написано в Release Notes.

Читать далее
Всего голосов 25: ↑24 и ↓1 +23
Просмотры 3K
Комментарии 6

Любовь, люди и роботы: как создать чат-бота, за которого не стыдно

Блог компании Ozon Tech Машинное обучение *Управление e-commerce *Управление продуктом *Natural Language Processing *

Привет! Меня зовут Дима, и я почти два года работаю в Ozon. Я пришёл продакт-менеджером, а через год стал руководителем отдела, при этом продуктовая составляющая моей работы никуда не делась. Сейчас моя команда развивает платформу для создания чат-ботов, где наш флагман — это чат-бот клиентской поддержки внутри нашей WebCRM, где происходит вся магия общения с пользователями. 

Исторически сложилось, что в Ozon основной объём поддержки осуществляется через чат. В 2020 году бот закрывал 27% от общего числа обращений, а в 2022-м — уже 62%. Это сотни тысяч тикетов в день, при этом качество ответов не ухудшилось. Важность чат-бота выросла в разы.

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

Читать далее
Всего голосов 27: ↑22 и ↓5 +17
Просмотры 4.1K
Комментарии 7

Пишем тесты на Go — выкладываем запись QA Meetup

Блог компании Ozon Tech Тестирование IT-систем *Go *Тестирование веб-сервисов *Конференции

Делимся видео и слайдами с прошедшего митапа, посвящённого автотестированию на Go. Под катом найдёте запись докладов:

— Go, Allure и HTTP, или Как мило тестировать HTTP-сервисы на Go.

— Как подружить QA и разработку через применение практики хранения тестов в коде.

Также обсудили с коллегами из Ozon, Авито, Skyeng и Mirantis тему «Как войти в профессию автотестирования и построить карьерный путь» в формате круглого стола.

Велкам
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 3K
Комментарии 2

Что Go грядущий нам готовит? Разбираем долгожданный релиз 1.19

Блог компании Ozon Tech Программирование *Go *История IT

Привет всем гоферам! Я пишу на Go уже четыре года — начиная с версии 1.10. Сейчас я занимаюсь разработкой одних из важнейших сервисов в логистике Ozon. 

Не успели мы до конца оправиться от долгожданного релиза Go 1.18 c дженериками, в котором нам предоставили дженерики, как команда Go анонсировала следующий бета-релиз Go 1.19.

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

Навстречу приключениям изменениям!

Подробности под катом
Всего голосов 58: ↑57 и ↓1 +56
Просмотры 13K
Комментарии 5

Go, Allure и HTTP, или Как мило тестировать HTTP-сервисы на Go

Блог компании Ozon Tech Open source *Программирование *Go *Тестирование веб-сервисов *

Привет! Меня зовут Сергей, я старший разработчик в Ozon и раньше вообще не был замечен в QA.

Все мы привыкли к лёгкому написанию тестов на Python и Java — это основные языки автотестировщиков с богатым инструментарием утилит и всего, что упрощает жизнь. Что нужно для написания автотестов для HTTP-сервиса на Python или Java? Гугл, бутылочка крафта и два часа времени. 

А как быть в случае с Go? Как раз на нём мы в большинстве случаев пишем микросервисы. И если тесты написаны на другом языке, разработчики не могут внести в них свой вклад или отревьюить их. Поэтому внутри Ozon активно развивается Go-сообщество QA, и этим ребятам тоже нужно тестировать HTTP-сервисы и проверять отчёты в Allure. Как настоящие сварщики мы подумали: «Если чего-то не хватает, нужно написать своё». Сказано — сделано: встречайте опенсорс-библиотеку CUTE в BDD-стиле, которая облегчает тяготы создания автотестов и упрощает переход на Go. Главные фичи: создание HTTP-тестов, возможность реализовывать проверки из коробки, Allure-отчёты и низкий порог входа. Инструкция — под катом.

Читать далее
Всего голосов 55: ↑53 и ↓2 +51
Просмотры 8.5K
Комментарии 8

Многопоточный Python на примерах: избавляемся от дедлоков

Блог компании Ozon Tech Python *Программирование *Параллельное программирование *
Tutorial

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

Разблокировать
Всего голосов 31: ↑31 и ↓0 +31
Просмотры 9.3K
Комментарии 14

Считаем, сколько заплатить в магазине и проверяем поле морского боя: разбор задач для разработчиков C#, iOS и Android

Блог компании Ozon Tech Занимательные задачки Разработка под iOS *C# *Учебный процесс в IT

Привет, Хабр! Я Ани, отвечаю в Ozon Tech за обучение.

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

Контест нам заменяет скрининг — мы проверяем технические навыки и опыт работы будущих участников, так как курсы рассчитаны на мидлов.

Ранее мы публиковали разбор задач по направлениям Go и QA (раз, два), пришло время поделиться задачами для C#, iOS (Swift) и Android (Kotlin, Java).

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

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 9.6K
Комментарии 10

Триггернутые, или Как безболезненно встроить нагрузочное тестирование в ваш пайплайн

Блог компании Ozon Tech Высокая производительность *Тестирование IT-систем *Go *Тестирование веб-сервисов *

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

Меня зовут Саша, я работаю в команде тестирования Ozon Fintech. В прошлый раз я рассказывала о типах нагрузочного тестирования (НТ) и о том, как создавать пушки под свои нужды. Сегодня же научу запускать НТ по кнопочке в CI. Статья будет полезна тем, кто уже имеет наработки по НТ, но ещё не автоматизировал их или ищет способы запускать тесты не по крону.

Читать далее
Всего голосов 17: ↑17 и ↓0 +17
Просмотры 2.2K
Комментарии 0

Перформанс мониторинг по-взрослому: выкладываем запись Mobile Meetup

Блог компании Ozon Tech Разработка под iOS *Разработка мобильных приложений *Разработка под Android *Конференции

Привет! Как и обещали, возвращаемся с записью второго митапа для мобильных разработчиков от Ozon Tech и сообщества Coffee&Code. В анонсе я уже рассказал о нашем стеке, что у нас 150+ мобильных инженеров и подход Backend-Driven UI — повторяться не буду. Вместо тысячи слов — просто посмотрите запись:)

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 2.4K
Комментарии 0

Экспортируем модули из Go-сервиса: сотворение директории pkg

Блог компании Ozon Tech Программирование *API *Go *Микросервисы *

Чтобы поделиться кодом, нужно создать библиотеку и разместить её в самостоятельном репозитории. Но иногда возникает необходимость хранить библиотеку вместе с сервисом, который её использует, — это может быть полезно при разработке в open source, в процессе дробления монолита на микросервисы и при шеринге своим API. Среди Go-разработчиков существует мнение, что экспортируемые библиотеки стоит хранить в директории pkg.

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

Читать далее
Всего голосов 18: ↑16 и ↓2 +14
Просмотры 4.3K
Комментарии 12

Сказ о том, как мы нагружаем Ozon в мультиЦОД-архитектуре

Блог компании Ozon Tech Высокая производительность *Тестирование IT-систем *Тестирование веб-сервисов *Микросервисы *

Привет, я Таня, и наша команда занимается разработкой инфраструктуры для нагрузочного тестирования (НТ) в Ozon. Наша цель — предоставить разработчикам простой и понятный инструмент для подготовки и самостоятельного запуска нагрузочных тестов — можно сказать, нагрузочное тестирование as a service. У нас НТ широко распространено и поставлено на поток — большинство продуктовых сервисов регулярно тестируется по расписанию, в автоматическом режиме. Кстати, подавляющая часть тестов проводится не на тестовых стендах, а прямо в продакшене. Это связано с определёнными рисками, ведь есть ещё и реальный пользовательский трафик. Обложившись алертами и автостопами (критериями для автоматической остановки тестов), мы сводим эти риски к минимуму.  

Компания растёт, увеличивается число пользователей и сервисов. В один прекрасный день нам стало тесно в рамках одного дата-центра — началось масштабное расширение на три ЦОДа. Каждый сервис обзавёлся дополнительными инстансами — и новыми требованиями к нагрузке. У НТ-разработчиков появилась задача тестировать сервисы, разбросанные по разным ЦОДам, и при этом ничего не уронить (мы ребята высоконагруженные). Кроме того, для уменьшения объёмов трафика между ЦОДами и сетевых задержек сервисы при взаимодействии перешли с серверной на клиентскую балансировку. Так как при НТ требуется максимально точно воспроизводить клиентский трафик, от генераторов нагрузки ожидалось такое же поведение. О том, какие перед нами стояли задачи и как мы с ними справились, читайте под катом. 

Под кат
Всего голосов 18: ↑18 и ↓0 +18
Просмотры 2.4K
Комментарии 5

Как мы делали свой поиск в Ozon: эволюция архитектуры от SQL до O2

Блог компании Ozon Tech Высокая производительность *Поисковые технологии *Анализ и проектирование систем *Микросервисы *

Привет, Хабр! Меня зовут Сергей, я руководитель команды поиска в Ozon. Сегодня я расскажу об эволюции наших поисковых систем: как всё начиналось более 20 лет назад с обычных SQL-запросов, как мы осваивали Sphinx и Elasticsearch и как сейчас наш собственный поисковый движок O2 на базе Apache Lucene выдерживает нагрузку в десятки тысяч RPS в сезон распродаж. Исторические хроники восстанавливались по воспоминаниям современников и представлены для полноты картины. Новейшая история описана на основе собственного опыта, поэтому подробностей будет на порядок больше. Поехали!

Читать далее
Всего голосов 56: ↑56 и ↓0 +56
Просмотры 13K
Комментарии 23

Информация

Дата основания
Местоположение
Россия
Сайт
tech.ozon.ru
Численность
1 001–5 000 человек
Дата регистрации