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

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

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

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

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

Под кат
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 803
Комментарии 4

Новости

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

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

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

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

Пережить распродажу на Ozon: хайлоад, сковородки и 38 инфарктов

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

Мы нечасто задумываемся о том, как работает тот или иной сервис и какой объём работ скрывается за тем, чтобы товар или услуга прибыли к нам вовремя. Взять, например, «чёрную пятницу» и День холостяка в e-com — дни самых больших распродаж. Казалось бы, что там такого? Со стороны может выглядеть, что главное — прогреть аудиторию предложениями разной степени заманчивости и запастись товарами на складах. Конечно, это не так. На деле нескольким дням распродаж предшествует год активной подготовки: от прогнозирования нагрузки и закупки железок до перестройки архитектуры. О том, на что мы обращали внимание и как готовились к высокому сезону, читайте под катом. 

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

19 мая Ozon Tech × Сoffee&Code приглашают на Mobile Meetup: перформанс и Backend-Driven UI

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

Привет! Меня зовут Саша Свиридов, я руковожу отделом мобильной разработки в Ozon. В моей команде чуть больше 80 человек — это Android- и iOS-разработчики и QA-инженеры. Мы делаем основное приложение Ozon для покупателей. Моя команда состоит из семи кроссфункцинальных групп разработки, каждая из которых отвечает за определенный скоуп задач. Спектр наших задач очень широк: мы разрабатываем чаты на сокетах, работаем с картографией, с потоковым видео, пушами, с аналитикой, со сложным UI. Пожалуй, у нас нет только GameDev:)

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

Чем поделимся на митапе:

— Какие метрики собираются и как мы боремся за перформанс приложения.

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

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

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

Подробнее про наш стек и программу — под катом.

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 884
Комментарии 0

Медианы, подмассивы и времена года: ещё порция задач для QA-инженеров

Блог компании VK Блог компании Ozon Tech Занимательные задачки Учебный процесс в IT
Приветствуем всех любителей интересных головоломок. Мы уже разбирали задачи из отборочных туров нашего контеста для Go-разработчиков и QA-инженеров, а в этот раз приглашаем найти решения задачек из дополнительного раунда для QA-инженеров.


Читать дальше →
Всего голосов 46: ↑45 и ↓1 +44
Просмотры 2K
Комментарии 0

Как работает Backend-Driven UI на мобильном клиенте

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

Привет всем, кто хочет изменять интерфейс мобильного приложения до выхода нового релиза, всем, кто хочет без лишних доработок на клиенте проводить А/B-тестирование, и всем, кто хочет забыть о срочных «новых пятничных промоакциях», которые нужны уже в понедельник. В этой статье мы поговорим об основах Backend-Driven UI: рассмотрим абстрактно, как всё работает на бэкенде и на клиенте. 

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

50 оттенков нагрузочного тестирования

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

С нарастающими скоростями и распределёнными системами всё сложнее бывает создать приложение удобным для конечного пользователя. Программы обладают кучей фич. Но выполняют ли они то, что нужно юзерам? А скорость их выполнения достаточная? А производительность при выполнении не хромает? На эти вопросы помогает ответить нагрузочное тестирование (НТ).

Меня зовут Саша, я работаю в команде тестирования Ozon Fintech и расскажу про разнообразный спектр вариантов НТ: как именно мы его применяем и какие инструменты используем. Статья будет полезна тем, кто уже что-то слышал про НТ и хочет добавить его в свой проект, но пока страшновато. Давайте разбираться!

Читать далее
Всего голосов 27: ↑26 и ↓1 +25
Просмотры 6.6K
Комментарии 15

Куда уходит время? Боремся за миллисекунды в Kubernetes

Блог компании Ozon Tech Высокая производительность *Системное администрирование *IT-инфраструктура *Kubernetes *

Привет, Хабр! Меня зовут Вова, я разрабатываю observability-платформу в Ozon. Как-то раз в наш уголок на 42 этаже заглянули коллеги — и поделились наблюдением. Если открыть рядом графики времён запросов и ответов двух живущих в Kubernetes и общающихся между собой микросервисов, то иногда можно наблюдать большую разницу в высоких квантилях: клиент считает, что один ответ из сотни ему приходит за сто миллисекунд, сервер же говорит, что успевает ответить за десять.

Куда ушло время? Можно ли его вернуть? Под катом расскажу о том, с какими граблями может столкнуться микросервис, живущий в типичной инсталляции Kubernetes.

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

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

Блог компании Ozon Tech Хакатоны Графический дизайн *Управление сообществом *

Традиционного пятничного контента вам в ленту. Меня зовут Соня, я деврел-менеджер команды Ozon Tech. Я помогаю нашим инженерам делиться опытом и создавать комьюнити по профессиональным интересам, организовываю митапы и занимаюсь продвижением опенсорс-проектов.

Ozon Tech как бренд сформировался относительно недавно, хотя за ним стоит команда из 3к+ IT-специалистов. Несколько месяцев назад мы подумали, что было бы круто, если бы у нас появился собственный талисман (он же маскот). Сегодня расскажу, как мы предложили инженерам самим придумать и изобразить его и в процессе убедились, что талантливый человек талантлив во всём.

Добро пожаловать под кат
Всего голосов 46: ↑43 и ↓3 +40
Просмотры 4K
Комментарии 12

Machine Learning много не бывает: отчёт с ML-митапа

Блог компании Ozon Tech Big Data *Машинное обучение *Конференции Data Engineering *

Выкладываем запись с прошедшего Ozon Tech ML Meetup: были рады поделиться опытом с коллегами из Яндекс Маркета, AliExpress Россия, Циан и увидеть гостей оффлайн, как в старые-добрые времена. 

Под катом найдете запись докладов:

Spark Streaming: в погоне за оптимальной утилизацией и прозрачностью на Hadoop,

Го обсудим: продакшен ML на Golang,

Платформенные решения. Решаем проблемы жизненного цикла ML-сервиса,

Как мы перестали бояться иероглифов и полюбили китайскую инфраструктуру.

После докладов на круглом столе обсудили процессы и роли в ML-командах крупных IT-компаний.

Запись под катом
Всего голосов 15: ↑15 и ↓0 +15
Просмотры 2K
Комментарии 0

Города, инверсии и логистика: разбор задач для QA-инженеров

Блог компании VK Блог компании Ozon Tech Занимательные задачки IT-инфраструктура *Учебный процесс в IT
Друзья, недавно мы опубликовали разбор задач из отборочного контеста на курс «Автоматическое тестирование веб-сервисов на Go». А теперь предлагаем поломать голову над задачами для QA-инженеров: сначала попробуйте найти решение самостоятельно, а потом сравните с нашими вариантами.


Читать дальше →
Всего голосов 24: ↑23 и ↓1 +22
Просмотры 2K
Комментарии 0

Маски, картины, тайные покупатели и анализ продаж: разбираем решения задач для Go-разработчиков

Блог компании VK Блог компании Ozon Tech Занимательные задачки Go *Учебный процесс в IT
3 апреля на платформе All Cups прошло отборочное соревнование на курс «Продвинутая разработка микросервисов на Go» — это уже второй поток бесплатных курсов для разработчиков от Ozon Tech. Программа предназначена для мидлов, поэтому нужно было придумать задания и провести контест, чтобы отобрать релевантных участников.

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


Поехали!
Всего голосов 29: ↑26 и ↓3 +23
Просмотры 5.8K
Комментарии 25

220 платежей в секунду: выдержать нельзя упасть

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

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

Я разрабатываю сервисы в команде платежей Ozon. Мы много времени уделяем тому, чтобы все транзакции были обработаны корректно, даже если речь идёт о нагрузке в 2к платежей в минуту (именно столько у нас было в пике в период ноябрьских распродаж). Кстати, сейчас, по результатам нагрузочного тестирования, мы выдерживаем 13к платежей в минуту.

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

Читать далее
Всего голосов 28: ↑26 и ↓2 +24
Просмотры 6.6K
Комментарии 9

Grafana и автотесты: учимся измерять работу тестов

Блог компании Ozon Tech Разработка веб-сайтов *Тестирование IT-систем *Тестирование веб-сервисов *Управление разработкой *
Управление — трудоёмкая работа, которая усложняется при отсутствии подходящего инструмента. Легко упустить из виду постоянно меняющиеся компоненты и сложно быть в курсе событий: что-то обязательно проходит незамеченным.

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

Этот список можно продолжать и вводить новые метрики для задач тестирования. Расположение метрик на одном экране позволяет получать прозрачные отчёты о тестировании, которые понятны и инженерам, и руководителям. Главное в этом деле — научиться измерять и правильно подсвечивать проблемы. Тогда управлять тестированием станет проще.

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

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

Что лучше: Spark Structured Streaming или полное прекращение работы прода?

Блог компании Ozon Tech Python *Big Data *Машинное обучение *Data Engineering *
Tutorial

Правильное построение ETL-процессов (преобразования данных) — сложная задача, а при большом объёме обрабатываемых данных неизбежно возникают проблемы с ресурсами. Поэтому нам требуется выискивать новые архитектурные решения, способные обеспечить стабильность расчётов и доступность данных, а при необходимости и масштабируемость — с минимальными усилиями.

Когда я пришел в Ozon, мне пришлось столкнуться с огромным количеством ETL-джоб. Прежде чем применить модель машинного обучения, сырые данные проходят множество этапов обработки. А само применение модели (то, ради чего существует команда) занимает всего 5% времени.

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 3.2K
Комментарии 7

Отчёт с митапа: PostgreSQL-as-Service — можем, умеем, практикуем

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

Выкладываем запись с Ozon Tech PostgreSQL Meetup. Ранее я уже описывал нашу инфраструктуру: весь PostgreSQL основан на виртуальных машинах — 2К в тестовой среде и ~8К в проде. Это около 2К кластеров баз данных. Так как у нас микросервисная архитектура, мы придерживаемся принципа 1 сервис = 1 база. Нагрузка на базы может быть приличная: 2-2,5 млн транзакций в секунду, а WAL-трафик порядка 1.5 ГБ/c. 

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

Видео и слайды под катом
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 3.5K
Комментарии 10

Проект RISK: как мы управляем уязвимостями эффективно

Блог компании Ozon Tech Информационная безопасность *IT-стандарты *Управление разработкой *

Мы серьёзно подходим к вопросам информационной безопасности наших продуктов: бережно относимся к пользовательским данным и разрабатываем сервисы с учётом требований информационной безопасности (ИБ) и публичных стандартов по разработке безопасных приложений. К сожалению, при этом всё равно могут встречаться уязвимости, создающие риски безопасности. Этого не нужно бояться, а лучше использовать эти знания для улучшения существующих контролей безопасности и построения новых. Для этого необходим видимый, эффективный и измеряемый процесс управления уязвимостями, который мы смогли построить в Ozon, и теперь хотим поделиться опытом, советами и граблями, на которые лучше не наступать. 

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

Как я разочаровался в 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
Просмотры 8.3K
Комментарии 9

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. 

Читать далее
Всего голосов 29: ↑27 и ↓2 +25
Просмотры 7.6K
Комментарии 7

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

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

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

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

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

Информация

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