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

Как я разочаровался в low-code и стал руководителем команды разработки

Блог компании Ozon Tech Анализ и проектирование систем *SharePoint Облачные сервисы Визуальное программирование *

Привет, меня зовут Евгений, и я никогда не был программистом — написание кода вызывало у меня чуть ли не смертельную скуку. Конечно, за двадцатилетнюю карьеру приходилось писать скрипты на PowerShell, Python и т. д., но о серьёзной разработке речи не было. Тем не менее моя профессиональная деятельность не ограничивалась системным администрированием. В какой-то момент я познакомился с Microsoft SharePoint — технологией, которая и определила вектор моего развития как IT-специалиста.

SharePoint — это огромный конструктор со множеством деталей, из которых можно собрать практически что угодно — от корпоративного новостного портала до mission critical системы. В нём собраны все необходимые службы и приложения для работы с контентом. Кроме того, SharePoint позволяет создавать несложные сайты с уникальным дизайном и лендинги. А вот что касается автоматизации бизнес-процессов, то тут администраторы быстро понимают, что есть два пути: либо разрабатывать фичи самостоятельно (или обращаться к программистам), либо использовать внешние (по отношению к SharePoint) решения. Я пошёл по второму пути — и в итоге, пришел к no-code/low-code (NC/LC) — решениям, позволяющим создавать приложения практически без использования сложного кода. Это подкупает: можно быстро разрабатывать сложные решения, не прибегая к программированию. Но всё оказалось не так просто, и сегодня я расскажу, почему NС/LC-решения не взлетели в Ozon.

Добро пожаловать под кат
Всего голосов 19: ↑16 и ↓3 +13
Просмотры 6.3K
Комментарии 7

Новости

Go, я создал: интегрируем Allure в Go красиво

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

Привет! Меня зовут Антон, я ведущий инженер по тестированию в Ozon: занимаюсь созданием и поддержкой end-to-end Go-тестов бэкенда для QA.

Мы довольно долго писали тесты в основном на Python. Go – молодой язык, и популярных устоявшихся инструментов у него пока немного. В Python есть pytest, в Java – JUnit и TestNG, в Go – пока что весьма свободно. 

Однажды, в очередной раз переписав группу старых Python-тестов, я решил, что надо что-то менять. Эта мысль в итоге привела меня к созданию нашей собственной опенсорс-библиотеки – с поддержкой Allure без перегрузки интерфейса, инфраструктурой для хранения тестов как в одних репозиториях с сервисами, так и в отдельных, репортами в Slack и разными другими штуками.

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

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

Приглашаем на Ozon Tech PostgreSQL Meetup: строим PostgreSQL-as-Service

Блог компании Ozon Tech PostgreSQL *Программирование *Администрирование баз данных *Конференции

Привет, Хабр! Меня зовут Алексей, я тимлид команды инфраструктурных разработчиков и инженеров PostgreSQL. У нас небольшая команда — всего 6 человек, но при этом довольно большая инфраструктура, на которой едут наши инстансы PostgreSQL. Это около 8000 виртуальных машин в проде, 2000 в тестовой среде. Общие нагрузки на базы ~2млн TPS, WAL трафик 1.5 ГБ/c. Наш стек технологий: KVM, PostgreSQL, GO, Python, Patroni.

Мы используем PostgreSQL в mission critical-подсистемах, от которых напрямую зависит бизнес компании (склад, корзина, оплата картами, платежи, информация о товарах на сайте и так далее). В моей команде работают сильные специалисты в этой области, и с учетом масштаба и высоких нагрузок — мы накопили много интересной экспертизы и хотим ей поделиться. 

В программе:

— PostgreSQL как сервис для внутреннего заказчика,

— Как управлять бэкапами в высоконагруженной среде,

— Фичи, которых нет. Краткий обзор состояния резервного копирования в других СУБД,

— Круглый стол с представителями Авито, Yandex.Cloud, PostgresPro.

Узнать подробнее
Всего голосов 16: ↑14 и ↓2 +12
Просмотры 1.6K
Комментарии 0

Как мы создавали Data Management Platform: архитектура, проблемы, выводы

Блог компании Конференции Олега Бунина (Онтико) Блог компании Ozon Tech Высокая производительность *PostgreSQL *Монетизация веб-сервисов *
✏️ Технотекст 2021

Для таргетинга мы в Ozon используем сегменты, в которые группируем пользователей по интересам. Интересы могут быть определены через систему трекинга событий. Последние в свою очередь формируются в процессе взаимодействия пользователя с маркетплейсом Ozon. На основе сегментов мы отправляем нотификации, рассылаем письма, показываем рекомендации, баннеры, страницы с товарами и цены на товары, участвующие в маркетинговых акциях. В принципе, на сегменты можно завязать любую механику. Мы даже А/В тесты иногда проводим с ними.

Первоначально сегменты создавались вручную: поступал запрос от заказчика, после чего проводилась аналитическая работа по сбору требований. Количество заявок на создание сегментов со временем только увеличивалось. Чтобы автоматизировать процесс создания сегментов мы решили сделать конструктор сегментов для DMP — Data Management Platform. Это относительно молодой проект, ему чуть больше двух лет, но он полностью себя оправдал. Сегодня расскажу вам о нашем опыте. Меня зовут Евгений Чмель, и я руковожу командой DMP & CDP.

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

Flutter vs Native: почему мы переходим с первого на второй

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

Привет, Хабр! Меня зовут Сергей, я занимаюсь мобильной разработкой 13 лет и недавно стал руководителем разработки мобильного приложения «Пункты выдачи заказов» в Ozon. Невольно став сместителем существующего строя в проекте (фреймворки, технологии, подход), я стал часто слышать вопрос: «Почему вы отказались от Flutter?».

Слышал я этот вопрос прежде всего от разработчиков моей команды и соискателей на наши вакансии, потом во время доклада на эту же тему на конференции Panda Meetup, в конце концов, даже менеджер нашего проекта подошёл с вопросом: «Ну а всё же почему?». Настолько людей захватывает эта тема, что я решил поделиться развёрнутым ответом.

Читать далее
Всего голосов 55: ↑39 и ↓16 +23
Просмотры 21K
Комментарии 108

Векторное представление товаров Prod2Vec: как мы улучшили матчинг и избавились от кучи эмбеддингов

Блог компании Ozon Tech Data Mining *Обработка изображений *Машинное обучение *Natural Language Processing *
Привет! Меня зовут Александр, я работаю в команде матчинга Ozon. Ежедневно мы имеем дело с десятками миллионов товаров, и наша задача — поиск и сопоставление одинаковых предложений (нахождение матчей) на нашей площадке, чтобы вы не видели бесконечную ленту одинаковых товаров.
На странице любого товара на Ozon есть картинки, заголовок, описание и дополнительные атрибуты. Всю эту информацию мы хотим извлекать и обрабатывать для решения разных задач. И особенно она важна для команды матчинга. 
Чтобы извлекать признаки из товара, мы строим его векторные представления (эмбеддинги), используя различные текстовые модели (fastText, трансформеры) для описаний и заголовков и целый набор архитектур свёрточных сетей (ResNet, Effnet, NFNet) — для картинок. Далее эти векторы используются для генерации фичей и товарного сопоставления.
На Ozon ежедневно появляются миллионы обновлений — и считать эмбеддинги для всех моделей становится проблематично. А что, если вместо этого (где каждый вектор описывает отдельную часть товара) мы получим один вектор для всего товара сразу? Звучит неплохо, только как бы это грамотно реализовать…


Читать дальше →
Всего голосов 30: ↑30 и ↓0 +30
Просмотры 6.3K
Комментарии 25

Отчёт с Ozon Tech QA Meetup: хорошие спикеры и доклады интересные

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

Как и обещали, возвращаемся с записью первого QA-митапа от Ozon Tech. Поговорили об уровнях изоляции компонентов и комбинаторике. Ещё при регистрации можно было задать вопрос о тестировании, как это устроено у нас — мы получили почти полсотни любопытных вопросов и успели ответить на большинство из них.

Видео и презентации — под катом.

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

Карманный справочник: сравнение синтаксиса MS SQL Server и PostgreSQL

Блог компании Ozon Tech PostgreSQL *Программирование *SQL *Microsoft SQL Server *
✏️ Технотекст 2021
Tutorial

Приветствую, уважаемые хаброжители!

Так как занимаюсь переводом кода с MS SQL в Postgre SQL с начала 2019 года, то решил продолжить сравнение этих двух СУБД.

В прошлой публикации мы рассматривали отличия в быстродействии MS SQL и PostgreSQL для 1C.

Сегодня давайте сравним основные конструкции синтаксиса MS SQL и PostgreSQL для правильного чтения кода, а также для того, чтобы быстро изменить код из MS SQL для PostgreSQL или наоборот.

Начнем рассмотрение с сопоставления типов.

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

Обеспечение качества чат-бота: разбираем на примере слоёного пирога

Блог компании Конференции Олега Бунина (Онтико) Блог компании Ozon Tech Тестирование веб-сервисов *Машинное обучение *Искусственный интеллект

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

Чтобы отвечать на все эти вопросы, в Ozon есть несколько тысяч сотрудников КЦ в Твери и Тамбове, но даже при таком количестве специалистов им нужна помощь, в первую очередь по ответам на часто повторяющиеся вопросы. И самое очевидное решение — автоматизация с помощью чат-бота.

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

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

QA Meetup от Ozon Tech

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

UPD: запись видео и презентации смотрите в отчёте

Привет, хабравчане. Меня зовут Дима Колесник, и я занимаюсь разработкой инструментов тестирования в маркетплейсе. У нас серьёзные нагрузки: 90 млн уникальных пользователей, а в распродажи выдерживаем 5к заказов в минуту. При таком масштабе мы тестируем релиз за 5 минут и делаем больше сотни релизов в день. 

Немного о нашем стеке: браузерные тесты пишем на TypeScript, бэкенд-тесты – на Go, Python, C#. В Mobile QA Automation используем Appium и Python. 

Приглашаем послушать и пообщаться тестировщиков и всех, кто к этому близок:

— Разберем уровни изоляции компонентов приложения при тестировании,

— Расскажем о комбинаторном тестировании,

— Проведем Q&A-сессию о тестировании в Ozon Tech со спикерами и руководителями.

Узнать подробнее
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 1.4K
Комментарии 5

Как упавший продакшен делает нас лучше

Блог компании Ozon Tech Service Desk *Управление проектами *Управление продуктом *IT-компании
Неважно, сколько раз ты упал. Важно — сколько раз ты поднялся.
© Мой домашний сервер

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

image
Читать дальше →
Всего голосов 34: ↑32 и ↓2 +30
Просмотры 3.9K
Комментарии 4

Почему я перешёл с Python на Go: choose your fighter

Блог компании Ozon Tech Python *Go *Карьера в IT-индустрии
Привет, Хабр! Меня зовут Саша, я бэкенд-разработчик в Ozon. Пишу платформу для контента, который генерят пользователи: отзывов, комментов, вопросов, ответов. Раньше я писал на Python. Выбрал его изначально из-за лёгкого синтаксиса и большого количества вакансий для Python-разработчиков — изи катка для входа в профессию. 

В один момент мне написали из Ozon: «П̶с̶с̶,̶ ̶п̶а̶р̶е̶н̶ь̶,̶ ̶п̶о̶к̶о̶д̶и̶т̶ь̶ ̶н̶а̶ ̶G̶o̶ ̶н̶е̶ ̶х̶о̶ч̶е̶ш̶ь̶?̶ Предлагаем переход на Golang с текущего стека, обучение за счёт компании».

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


Среди разработчиков бытует мнение, что язык вторичен. Мол, главное — уметь в computer science, а на чём писать — не так уж важно. Но так считают хардкорные разработчики, они вертят деревья, смотрят на всех свысока и зарабатывают 300кк в наносекунду. Я же программист-полукровка (без высшего технического образования, а ещё мои родители — маглы) и считаю, что смена языка — важный шаг и нужно хорошенько прикинуть, прежде чем в это вписываться. Будем откровенны, если у вас за плечами десять лет на плюсах, вряд ли вам предложат должность senior iOS-разработчика на Swift. Проблема в том, что каждый язык имеет свои особенности и на их изучение требуется время.
Читать дальше →
Всего голосов 61: ↑53 и ↓8 +45
Просмотры 30K
Комментарии 127
Это пост с фотками старых офисов Ozon 2006–2018 годов и воспоминаниями очевидцев — такими же тёплыми и ламповыми, как передача «Пока все дома». Даже рубрика «Очумелые ручки» на месте: в виде истории про маркетологов, которые чуть не обвалили сайт, пока команда разработки была где-то на природе.

Плачущие моржи, коллекционный скотч с ненавистным слоганом, опенспейс в бывшей казарме… Теперь самый большой офис разработки Ozon находится в Москва-Сити, но после встречи с сотрудниками я (@maxa707) поняла, что ничто человеческое компании не чуждо.
Узнать истории олдов
Всего голосов 48: ↑42 и ↓6 +36
Просмотры 21K
Комментарии 10

Как есть слонов по кусочкам в крупных популяциях, или как мы работаем с большими проектами

Блог компании Ozon Tech Управление разработкой *Управление проектами *Управление продуктом *IT-компании
Привет, Хабр! Давайте поговорим о проектном управлении в продуктах Ozon.

Меня зовут Андрей, я пришёл в компанию менеджером по продукту полгода назад. И первое, что бросилось мне в глаза, — отсутствие излишней бюрократии, которую ожидаешь встретить в корпорации: формальных планёрок, отчётных встреч, бесконечных служебок и приказов. Ура! Не надо отчитываться по решённым задачам разработчиков, объёму техдолга, собирать статистику спринтов, искать виноватых или самому ходить «на ковёр».

При дальнейшем погружении в работу нашей команды выяснилось, что частично эти процессы всё же есть, но реже, чем я ожидал в начале. Отчеты — перед заказчиками по проектам в работе, а планирование происходит раз в месяц (как и у большинства других команд); ключевой формат планирования — технический комитет, где встречаются заказчики от бизнеса и исполнители от IT.

Такой подход к планированию связан с масштабом — количеством и размером продуктов в Ozon. Здесь нет фундаментального ноу-хау — принцип «Давайте есть слона по кусочкам» для работы с большими проектами работает и в нашем случае. Наша специфика в том, что приходится думать не только о нюансах работы с отдельно взятым слоном, но и об их популяции: учёте, хранении, планировании поставок, селекции и разведении. 


Откуда в Ozon появляются слоны, как организованы процесс поставки проектным командам, как организовано верхнеуровневое планирование и отчётность, — расскажу в серии статей. В этот раз — о том, с чего всё начинается.
Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Просмотры 3.1K
Комментарии 4

Автоматическое тестирование аналитики в браузере

Блог компании Ozon Tech Тестирование IT-систем *Google Chrome Тестирование веб-сервисов *TypeScript *
Представьте себе такую ситуацию. Вы запилили мегакрутую фичу на странице сайта и через месяц решили оценить её эффективность. Начинаете считать — и понимаете, что своим релизом вы сломали метрики на странице: случайно удалили код, отправляющий важные события аналитики, или забыли покрыть новую фичу событиями. Знакомо?

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

Если события приходят некорректно, отчёт будет недостоверным.

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

Читать дальше →
Всего голосов 58: ↑58 и ↓0 +58
Просмотры 4.9K
Комментарии 4

Что должно быть в базе знаний, чтобы всем было хорошо

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

Привет, Хабр! Я Катя из команды техписателей в Ozon. Мы продолжаем расти и развиваться, поэтому вслед за статьёй о видах документации хочу разобрать, какие проблемы внутри команды можно документацией решить.

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

Вперёд, за полезной документацией!
Всего голосов 26: ↑24 и ↓2 +22
Просмотры 3.8K
Комментарии 0

Доводим распределённые действия до конца с использованием простейшего паттерна Saga

Блог компании Ozon Tech Анализ и проектирование систем *Go *Распределённые системы *Микросервисы *

Привет! Меня зовут Иван, я занимаюсь бэкенд-разработкой в Ozon: пишу микросервисы на Go для личного кабинета продавца. В прошлом году мы запустили новый процесс регистрации продавцов, в котором задействовано сразу несколько микросервисов. В нём стало больше шагов, при этом каждый из них выполняется в разных микросервисах. Поэтому мы задались вопросом: «А что будет, если один из шагов упадёт?».


В микросервисной архитектуре давно известен инструмент решения подобных проблем — это паттерн Saga. Мы решили взять его на вооружение и немного упростить под нашу задачу. Я расскажу о том, как мы это сделали, и покажу, что Saga может быть простой. Так что если вы давно хотели попробовать реализовать Saga, но вам казалось, что это сложно — читайте дальше.


image

Читать дальше →
Всего голосов 59: ↑56 и ↓3 +53
Просмотры 10K
Комментарии 24

Для мониторинга CronJob в Kubernetes нужен простой советский…

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

Привет, Олимпийский Хабр! Меня зовут Аня, я работаю в Ozon: строю и развиваю инфраструктуру мониторинга в Observability-платформе. Моя команда помогает разработчикам следить за своими сервисами и своевременно получать алерты, если что-то идёт не так.


На Хабре довольно много статей о том, что такое кроны, как и где можно запускать их по расписанию, о плюсах и минусах каждого варианта и о том, как запускает кроны Kubernetes. Поэтому в моей статье об этом мы говорить не будем.


Я расскажу, как мы решали конкретную проблему мониторинга CronJob, запущенных в Kubernetes.


Танец Анри Матисса

Читать дальше →
Всего голосов 58: ↑56 и ↓2 +54
Просмотры 9K
Комментарии 10

Зачем и как хранить объекты на примере MinIO

Блог компании Ozon Tech Программирование *Go *Хранилища данных *Kubernetes *
Tutorial

Наша биг дата проанализировала Telegram-чаты, форумы и разговоры в кулуарах IT-мероприятий и пометила объектные хранилища как инструмент, который ещё не все осмеливаются использовать в своих проектах. Хочу поделиться с вами своим опытом в формате статьи-воркшопа. Если вы пока не знакомы с этой технологией и паттернами её применения, надеюсь, эта статья поможет вам начать использовать её в своих проектах. 

Начать хранить файлы
Всего голосов 28: ↑26 и ↓2 +24
Просмотры 8.7K
Комментарии 7

Автоматизация тестирования микросервисов: плюсы и минусы тестов на Go

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

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

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

Видео моего выступления на конференции Golang Live 2020 можно посмотреть здесь.

Читать далее
Всего голосов 33: ↑30 и ↓3 +27
Просмотры 9.5K
Комментарии 2

Информация

Дата основания
Местоположение
Россия
Сайт
tech.ozon.ru
Численность
свыше 10 000 человек
Дата регистрации
Представитель