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

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

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

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

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

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

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

Новости

Четыре шага к разработке и внедрению учётного сервиса без переноса остатков

Блог компании Ozon Tech Анализ и проектирование систем *Разработка под e-commerce *Финансы в IT


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

Перенос остатков для аналитиков и разработчиков — удовольствие ниже среднего, потому что:

  1. Приходится копаться в невероятно большом количестве данных, накопленных за много лет:
    • Такая информация, как правило, не стандартизирована, так как программное обеспечение, которое её сохраняет и читает, постоянно дорабатывается. Например, у нас был случай, когда оказалось, что стоимость товара указывается в поле «Cost» только последние пять лет, а раньше было вообще по-другому. И тот факт, что мы это узнали, — просто счастливая случайность.
    • Вместе с огромным количеством данных накапливается огромное количество ошибок, так как внесение практически любой информации так или иначе связано с ручным вводом данных, а человеческий фактор никто не отменял.

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

Итак, как же можно решить проблему переноса остатков?
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 1.4K
Комментарии 10
Мы уже привыкли, что роботы проводят сложнейшие хирургические операции, а нейросети считывают знаки дорожного движения в реальном времени. Но как быть с творчеством? Хватит ли у алгоритмов души, чтобы сочинить стихотворение в духе Есенина? Сможет ли «железный дровосек» выразить тоску по сердцу так, чтобы сердца защемило у настоящих людей? Вот и проверим! Вместе с организаторами конкурса робототехники Ozon RoboFactory мы сделали хабровский аналог теста Тьюринга. Участникам нужно отличить продукцию механизмов и программ от лампового человеческого контента.
Меня не обманешь!
Всего голосов 30: ↑30 и ↓0 +30
Просмотры 16K
Комментарии 12

Битва снифферов: Charles vs Proxyman

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

Привет, меня зовут Даша, я работаю тестировщицей клиентского мобильного приложения в компании Ozon.

Сегодня поговорим о снифферах в тестировании мобильных приложений –– программах для перехвата, анализа и модификации трафика. Пожалуй, самый популярный сниффер из тех, о которых мне доводилось слышать — Charles. Про него уже не раз писали на Хабре, есть довольно детальные разборы. Но не Charles-ом единым! 

Читать далее
Всего голосов 40: ↑35 и ↓5 +30
Просмотры 7.3K
Комментарии 26

Применение двоичной логики в недвоичных операциях: оптимизируем производительность и ресурсы

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

Давайте поговорим о побитовых операциях.

С ними привычно иметь дело embedded-разработчикам и тем, кто занимается криптографией. Также побитовые операции можно встретить в системном программировании, компьютерной графике и везде, где присутствует сильная ограниченность ресурсов или длительные вычисления.

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

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

Читать далее
Всего голосов 20: ↑17 и ↓3 +14
Просмотры 3.7K
Комментарии 26

Анализируем данные с помощью визуализации: рисуем поверх Google Maps

Блог компании Ozon Tech Python *Анализ и проектирование систем *Maps API *Визуализация данных

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

Впереди меня ждала RnD-задача с исследованием картографических форматов, рисованием поверх Google Maps и реализацией скрипта на Python. Как я боролась с визуализацией картографических данных, расскажу в этой статье.

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

Как избавиться от дублей в базе данных (на примере MS SQL)

Блог компании Ozon Tech Программирование *SQL *Microsoft SQL Server *Администрирование баз данных *
Tutorial

Всем привет! Меня зовут Евгений, я занимаюсь разработкой и проектированием в Ozon. Больше всего работаю с MS SQL и C#, но попадаются и другие СУБД и языки программирования.

Ozon как продукт быстро растёт: во втором квартале этого года мы доставляли больше миллиона посылок в день. Для обработки такого объёма заказов мы используем разные языки и платформы: .NET (C#), Go, MS SQL Server и PostgreSQL.

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

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

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

Читать далее
Всего голосов 60: ↑59 и ↓1 +58
Просмотры 5.9K
Комментарии 43

Как в восемь раз уменьшить количество DNS-запросов в Go

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

Привет, Хабр. Меня зовут Рустам. Я работаю в Ozon: админю Kubernetes и пишу на Go.

У нас очень много сервисов на Go — их количество исчисляется тысячами. Запускаются они внутри кластеров Kubernetes. А я плотно работаю с Kubernetes и заметил, что при запуске кода внутри Kubernetes для резолва одного адреса делается до десяти DNS-запросов. Это, конечно, влияет на производительность.

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

Узнать больше про Go+DNS
Всего голосов 91: ↑71 и ↓20 +51
Просмотры 7.9K
Комментарии 6

Как автоматизировать безопасный декодинг массивов в Swift с @propertyWrapper

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

Привет! На связи Влад, iOS-разработчик из Ozon. Сегодня я поделюсь с вами, возможно, не самым очевидным способом использования propertyWrappers. Обёртки позволяют добавлять дополнительную логику свойствам. В одну из них мы спрятали описание безопасного декодинга массивов, и теперь нам достаточно пометить свойство как @SafeDecode — и всё начинает работает автоматически. О том, как они работают и как их завести у себя, читайте дальше.

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

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

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

Привет! Меня зовут Катя, я руководитель команды технических писателей в Ozon.

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

Разбираемся в вопросе
Всего голосов 20: ↑18 и ↓2 +16
Просмотры 5.4K
Комментарии 3

Мониторинг пет-проектов на коленке: Netdata, Monitoror, N8N

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

Привет, я Паша из Ozon. В рабочее время занимаюсь тестированием поиска, а по вечерам надеваю маску инди-разработчика. И моя самая частая задача — написать скрипт → залить его на сервер → периодически мониторить, что сервер доступен. Эта статья как раз и будет строиться вокруг последнего пункта.

Вы наверняка в курсе, что существуют Grafana, Prometheus, Kibana, LogDNA и другие инструменты для мониторинга, визуализации и анализа данных. C первыми двумя я вплотную познакомился в Ozon, а про Kibana слышал когда-то давно и только в паре со словом «логи». Чтобы графики в Grafana рисовать — придется штат аналитиков нанять (ба-дум-тсс). Для пет-проекта это перебор, нужно что-то сильно проще (с точки зрения стоимости, простоты настройки и удобства). Ниже расскажу, какие готовые инструменты для мониторинга небольших пет-проектов я нашёл в пучинах интернета, а также оставлю комментарии и рекомендации по использованию.

Читать далее
Всего голосов 20: ↑19 и ↓1 +18
Просмотры 4.5K
Комментарии 20

Масштабируем команду мобильной разработки: как мы в Ozon справились с ростом до 44 iOS, Android и QA на одном приложении

Блог компании Ozon Tech Разработка мобильных приложений *Управление разработкой *Управление проектами *Управление персоналом *
Из песочницы

У нас в компании 8 мобильных приложений и почти столько же мобильных команд. Конкретно наша работает с приложением для покупателей. Когда нас было немного, по 6-10 человек в iOS, Android и QA–командах, мы отлично справлялись с задачами. С ростом столкнулись с проблемой: чем больше у тимлида людей в подчинении, тем меньше он может уделить времени каждому, меньше времени имеет на погружение в задачи. В итоге качество управления команд начинало ухудшаться и с этим нужно было что-то делать 

Решение мы нашли в распределении команд по стримам. 

В этой статье расскажу как у нас организована работа для 30+ мобильных разработчиков и 14 QA: как мы планируем, делимся знаниями и что нам даёт этот подход.

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

Шаблон заведения бага

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

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

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

Почему PostgreSQL тормозит: индексы и корреляция данных

Блог компании Ozon Tech PostgreSQL *

"Хочешь ускорить запросы, построй индекс" – классический первый шаг по увеличению производительности в PostgreSQL. Вот только на практике можно встретить ситуацию, когда индексы в PostgreSQL есть, но тормоза никуда не делись. Не все индексы являются эффективными. Одна из возможных причин тормозов индексов – это отсутствие корреляции данных. Давайте поговорим о пенальти на производительность, которое дает расположение данных: почему это происходит и как это можно предотвратить.

Ускорить свой PostgreSQL
Всего голосов 46: ↑46 и ↓0 +46
Просмотры 17K
Комментарии 28

10 практик «ответственного» тимлида

Блог компании Ozon Tech Управление разработкой *Управление проектами *Управление персоналом *

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

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

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

Осторожно, «пятничный» контент!
Всего голосов 25: ↑23 и ↓2 +21
Просмотры 7K
Комментарии 10

Почему мы решили создать Школу Go? Про доступное образование, брата-близнеца и смысл жизни

Блог компании Ozon Tech Карьера в IT-индустрии Читальный зал


Привет, меня зовут Слава Вершинин. В марте 2021 года Ozon запустил проект Go to Ozon — бесплатный курс по разработке на языке Go для middle-программистов. В этом посте — о том, почему мы решили запустить такой проект, какие он дает плюсы, причем тут мой брат-близнец, а также немного о смысле жизни. Но главное, если вы давно задумываетесь о том, чтобы научиться программировать на Go, возможно, этот курс был создан специально для вас.
Читать дальше →
Всего голосов 19: ↑16 и ↓3 +13
Просмотры 3.1K
Комментарии 17

Онбординг нового сотрудника как прохождение игры

Блог компании Ozon Tech Управление персоналом *

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

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

Майним еще больше данных: настраиваем сбор рекламной статистики TikTok за день

Блог компании Ozon Tech Веб-аналитика *Медийная реклама Аналитика мобильных приложений *Социальные сети и сообщества
Tutorial

Привет, меня зовут Маша, я работаю маркетинговым аналитиком в Ozon. Наша команда "питонит" и "эскьюэлит" во все руки и ноги во благо всего маркетинга компании. Одной из моих обязанностей является поддержка аналитики для команды медийной рекламы Ozon.

Медийная реклама Ozon представлена на разных площадках: Facebook, Google, MyTarget, TikTok и другие. Для эффективной работы любой рекламной кампании необходима оперативная аналитика. В данной статье речь пойдет о моём опыте сбора рекламных данных с площадки TikTok без посредников и лишних заморочек.

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

Чиним проблемы нагрузок в Go с помощью настройки пула HTTP-соединений

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

- Ребята, кажется, вы таймаутите. Вот трейс, на котором видно, что мы не дождались от вас ответа за 2 секунды. 

- Ничего подобного, у нас все норм — мы за 200 миллисекунд отвечаем в 99% запросов. А вот вы по какой-то причине часто преждевременно обрываете соединение. 

Такой разговор однажды произошёл у нас в Ozon между моей командой личного кабинета продавца и коллегами, которые пишут сервис аутентификации. Причина проблемы оказалась в дефолтных настройках Go для пула HTTP-соединений. Как так вышло, как мы обнаружили проблему и как исправлять подобные ситуации в микросервисах на Go – об этом моя сегодняшняя история. 

Так что же там было?
Всего голосов 24: ↑18 и ↓6 +12
Просмотры 5.8K
Комментарии 18

«Работе с данными нельзя научить»: Александр Дьяконов для OzonMasters

Блог компании Ozon Tech Математика *Машинное обучение *Учебный процесс в IT

Поговорили с Александром Дьяконовым — преподавателем курса по машинному обучению OzonMasters и одним из самых известных специалистов по машинному обучению в России о старте карьеры в Data Science, соревнованиях и о своем опыте преподавания.

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

Информация

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