Привет, Хабр!) Меня зовут Ильяс. В этой статье мы разберём известную идею — keepalive в межсервисном взаимодействии, которая спасла уже не одну компанию в трудное время :). Но чтобы добавить интереса, мы разберём, какие проблемы в keepalive принесли современные технологии (ведь что может пойти не так с этой простой идеей?). Поэтому в статье мы рассмотрим механизмы, которые позволяют проверять стабильность соединения между клиентом и сервером в случае, когда обычные TCP keepalive из-за сложности архитектуры не могут определить состояние сервера.
Развиваем продукт «без проблем»
В своей прошлой статье я рассказывал о том, как использовать метрики при разработке продуктов. Статья получилась довольно насыщенная, но теоретическая.
В этой статье я хочу рассказать о том, как на практике применять эти подходы при развитии продуктов. Можно ли опираться только на метрики для приоритизации задач. Что делать, когда у пользователей нет проблем с текущим продуктом.
Как с помощью Jobs To be Done принимать продуктовые решения, и почему сейчас мы используем этот подход для работы над нашими продуктами.
Размер имеет значение. Как Ozon автоматизировал измерение товаров на складах
Сотрудники каждого склада, которые хотят выстроить логистические процессы оптимальным образом, должны знать фактические габариты и вес товаров, которые хранятся на его площадях. Совокупность габаритов и веса товара в Ozon называют объёмно-весовыми характеристиками (ОВХ).
Мы разработали, собрали и интегрировали в операционные процессы складов Ozon устройства для измерения габаритов и веса товаров. Об этом мы писали ранее. Но к идее создания своего решения пришли не сразу.
О, вы из Англии? Локализация Ozon Seller на iOS
Всем привет! Меня зовут Андрей, и я делаю iOS-приложение для продавцов Ozon Seller. Наша команда поставляет фичи, красит кнопки, работает над перформансом и всячески улучшает пользовательский опыт работы продавцов на Ozon.
Нашим приложением активно пользуются юзеры из разных стран, и поэтому день Х, когда мы решим добавить поддержку разных языков, был неизбежен. В этой статье я расскажу про стандартный процесс локализации iOS-приложения, про то, с какими трудностями мы столкнулись и как их решили. Разберём системный алгоритм определения языка и объясню, почему он нам не подошёл. Сделаем перевод приложения «на лету», а также посмотрим, как изменился наш флоу работы со строками.
Евгений DockerAuthPlugin’ович Онегин
Интересное начало, не так ли? Меня зовут Роман, и я младший инженер информационной безопасности Ozon. В этой статье я расскажу о проблеме отсутствия авторизации доступа к Docker daemon / Docker Engine API / командам Docker при работе с контейнерами в экосистеме Docker и как это можно решить при помощи 11 почти стихотворных строчек bash.
Говоря о стихотворчестве, первое, что приходит мне в голову, это уроки литературы, где моим самым любимым романом был «Евгений Онегин». В школе учитель литературы говорила нам: «Это вы сейчас это не понимаете... Уже потом, спустя год, пять или даже 20 лет, вы вновь прикоснётесь к книгам, которые, казалось бы, вы уже знаете вдоль и поперёк. И вот тогда вы поймёте всё то, что мы с вами тут обсуждаем, или даже откроете для себя что-то, о чем и не догадываетесь».
Выгорание: рассматривая золу под макроскопом
На просторах необъятного можно найти массу статей про выгорание. По этой теме проходят конференции, у многих есть личный опыт. Проблема актуальна и останется такой надолго, ведь первое «выгорание» — это не про вопрос «случится или нет», это про вопрос «когда» и «насколько сильно».
Я начал свой путь как разработчик и был им 15 лет, а сейчас руководитель группы разработки. Прошёл всю дорогу от младшего до ведущего и шагнул дальше. Пока я гнал по карьерному треку, я полноценно выгорал два раза, а потом решил, что хватит это терпеть. И не выгорел третий. Как получилось? Об этом и будет эта статья.
Context receivers — новые extension functions
Поговорим сегодня про context receivers — фиче Kotlin, про которую я узнал давно, но смог найти применение лишь пару месяцев назад. Расскажу о том, что такое context receivers, где их можно использовать, и, конечно же, про «успешный успех» — минус 60% самописного DI в OzonID SDK. Но обо всём по порядку.
Насмотренность в разработке: путь к чистому и качественному коду
В мире разработки программного обеспечения термин «Насмотренность» крайне редко встречается, в то время как дизайнеры постоянно всё насматривают 😅. Однако понятие насмотренности не менее важно для разработчиков, поскольку оно помогает понять, зачем и как нужно создавать красивый и чистый код.
Если вы только начинающий разработчик, вам будет полезно узнать как прокачивать насмотренность и что она дает.
Стажёры рулят или Почему не надо бояться доверять молодым сотрудникам
Боитесь стажёров? Не хотите тратить своё время на обучение начинающих специалистов? Задач много, а специалистов по ИБ мало?
Делюсь опытом построения стажёрского конвейера на базе SOC. Может, это решит ваши проблемы.
Многие российские современные IT-компании имеют стажёрские программы. Я знаком с несколькими примерами ИБ-стажировок в таких компаниях, но ничего близкого к описанной далее реализации не нашёл. Мне кажется, что всё просто и очевидно, но почему вы так не делаете? Не найдя ответа на вопрос, решил написать об очевидном, подкрепляя личным опытом.
Как дизайнеры помогают заменить GitLab: что из этого получилось
Привет! Меня зовут Валерия, я дизайнер внутренних сервисов в Ozon Tech. Наша команда занимается продуктами, которые коллеги используют для доступа к инфраструктуре Ozon, приоритизации задач, проведения регламентных работ, выкатки и управления релизами.
Сегодня речь пойдёт про последнее упомянутое решение — REpublic или релизный портал, который помогает нашим разработчикам выкатывать более тысячи релизов каждый день. Я расскажу, зачем мы начали его делать и с какими сложностями столкнулись.
Переделали всё, не разломав ничего, или Проект по информационной безопасности (взглядом PM)
Тихо скрипнула задвижка, дверь открылась, и вот они — специалисты информационной безопасности со своими задачами. Куда бежать? Кого спасать? Где лазейки? А поздно! Мы уже всё увидели, услышали и готовы действовать. Новость или само появление отдела информационной безопасности (или Cyber Security-направления) в большой, узнаваемой на рынке компании с хорошей репутацией, часто встречается сотрудниками компании очень неоднозначно.
В данной статье поделюсь своими «заметочками» и полученным опытом в изменении уже функционирующих процессов разработки в компании. Процессов, которыми пользуются абсолютно все в компании.
Камера как сканер штрих-кодов: проблемы, инструменты и эксперименты
Всем привет, меня зовут Никита, я старший разработчик в компании Озон и работаю над iOS-приложением «Пункт Озон».
«Пункт Озон» — это мобильное приложение для работников и менеджеров пункта выдачи заказов (далее просто ПВЗ). В приложении множество различных разделов для повседневной работы. Самые популярные разделы — это «Приёмка», «Выдача» и «Инвентаризация», что в мобильной, что в web-версии. Именно они помогают выполнить главные задачи работников ПВЗ — принять заказы на баланс и позже выдать их клиентам.
Для скорости работы и защиты от ошибок работники ПВЗ производят эти действия через сканирование штрих-кодов, расположенных на самих заказах или на тарах, в которых они приезжают. Если брать web-версию, то там «все просто»: покупается нормальный/качественный отдельный сканер, подключается к ПК — и проблем, считай, нет. А вот с мобильным приложением дела обстоят немного не так. У смартфона есть только камера, и она явно не проектировалась под задачу «сканируем только штрих-коды». Но с другой стороны, камера делает фотографию, а раз у нас есть фотография, то можно там найти штрих-код. К счастью, Apple и Google предоставляют нам инструментарий для этого.
А раз я iOS-разработчик, то и рассказывать я вам буду о нашем iOS-приложении. И сегодня у нас в меню:
• с какими проблемами столкнулись пользователи при использовании мобильного сканера, и почему мы стали искать возможность его улучшения;
• сравнение инструментов, которые предлагает Apple;
• технический обзор одного из них;
• история его внедрения в наше приложение и конечные результаты.
Приглашаем на Ozon Tech Community Design Meetup
Все говорят, что дизайнер и продакт — креативная пара, но мало кто делится опытом, как выжить в этой паре: действовать проактивно и продуктивно, не мешая, а помогая друг другу улучшать продукт.
Тесное взаимодействие и сильная вовлечённость может привести к пониманию с полуслова, а может породить фрустрацию и конфликты. Как услышать друг друга, проговорить ожидания и обозначить границы ответственности — об этом в нашем новом митапе.
Приглашаем присоединиться к этому разговору 21 февраля в 18:30 — офлайн в Москва Сити и онлайн в трансляции на Youtube. Под катом найдёте подробный анонс и ссылку на регистрацию
Два сапога — пара, а три — уже community: как алгоритмы на графах помогают собирать группы товаров
Привет, Хабр! Меня зовут Иван Антипов, я занимаюсь ML в команде матчинга Ozon. Наша команда разрабатывает алгоритмы поиска одинаковых товаров на сайте. Это позволяет покупателям находить более выгодные предложения, экономя время и деньги.
В этой статье мы обсудим кластеризацию на графах, задачу выделения сообществ, распад карате-клуба, self-supervised и unsupervised задачи — и как всё это связано с матчингом.
Магия вне Хогвартса: как повышать ИБ-грамотность сотрудников
Сумрачная картинка: большое помещение, мало света. Стол и рядом стул, на котором сидит человек. Он работает за ноутбуком. Чувствую его усталость: он сегодня уже долго работает. Его что-то отвлекает: письмо. Электронное письмо. Он нажимает на ссылку, но ничего не появляется на экране. Всё в порядке. Но на сетевом уровне уже поселилось зло: ЧЕРВЬ!!! Спустя неделю червь выкачает данные, из-за чего компания потеряет десятки-сотни миллионов рублей.
У меня случилось очередное видение — это мой дар и моё проклятие. Я вижу то, что скоро должно произойти. У меня есть немного времени, чтобы предотвратить преступление — инцидент информационной безопасности.
Эта статья будет полезна и крута всем: узнаете, как помочь своим коллегам узнать больше об информационной безопасности в незанудной форме! На одном из мест работы я смог за пару лет повысить общий уровень знаний сотрудников в 5 раз! Меня зовут Маг Владони Миша, и теперь я занимаюсь Security Awareness в Ozon. Инциденты информационной безопасности, возникающие из-за человеческой ошибки, — самые распространённые (по данным РТ). Для минимизации количества таких инцидентов необходимо повышать осведомлённость в вопросах ИБ, т.е. заниматься Security Awareness.
Приглашаем на Ozon Tech Community BI Meetup
Всем привет!
Меня зовут Дмитрий, я руководитель группы разработки инструментов BI.
Стоит ли говорить, что данные вокруг нас и, если мы не умеем с ними работать, то мы не можем функционировать как бизнес вообще? Наша команда платформы данных старается обуздать десятки петабайтов аналитических данных и разрабатывает для этого множество новых подходов и инструментов.
И мы готовы ими поделиться. Приглашаем вас на Ozon Tech Community BI Meetup, 31 января в 19:00. Наша команда расскажет про основные сервисы работы с данными, о том, как нам пришёл в голову подход «платформизации», про создание функционала для сжатия данных, а также обсудим феномен data quality в обработке данных.
Впихнуть невпихуемое, или Как мы боролись с сервисами, которые слишком много «ели»
Всем привет! Меня зовут Максим, я релиз-инженер Ozon, и в этой статье я расскажу про впихивание невпихуемого, или про оптимальную с точки зрения используемых ресурсов стратегию деплоя в Kubernetes, которая позволила нам сэкономить тысячи ядер CPU и терабайты RAM.
Делаем PageObject правильно. Удешевляем тестирование и снижаем порог вхождения
Привет, меня зовут Коля, занимаюсь тестированием 7 лет, автоматизацией — 6 лет. Так уж сложилось, что не особо люблю WebUI-тесты, но почему-то именно они у меня получаются лучше всего.
В один день мне позвонил мой друг Рома и сказал: «Коля, помнишь ты у нас автотесты делал с селениумом? Помоги мне сделать так же красиво».
Отправив Роме ссылку на свой гитхаб и устроив пару созвонов с объяснениями, что и как работает, я добился от него заветного «Я понял».
Спустя два дня Рома позвонил снова: «Коля, я всё понял, а вот ребята в моей команде — нет. Помоги мне объяснить им».
Внутри я расскажу от том, как:
• ускорить написание тестов;
• снизить затраты на их поддержку;
• прокачаться в написании фреймворков;
• сэкономить деньги компании;
• сохранить нервы сотрудников.
Сказки про ИБ в машинном обучении
Всем привет! На связи Ozon, и мы спешим вас поздравить с наступающим Новым Годом! С вами Дед Мороз Никита Губорев — специалист по информационной безопасности Ozon Tech.
В настоящее время модели машинного обучения становятся все более популярными и широко применяются в различных сферах — от финансов до медицины, от маркетинга до транспорта. Однако с ростом популярности и использования этих моделей возникают новые угрозы и проблемы безопасности. Модели обучаются на больших объемах данных, исходя из которых они учатся принимать решения. Хакеры изучают и используют возможности моделей машинного обучения и манипулируют входными или обучаемыми данными, чтобы получить конфиденциальную информацию или влиять на результаты принимаемых решений.
Сегодня мы рассмотрим, как злоумышленники атакуют модели машинного обучения, что они для этого делают и как от этого можно защищаться. А учитывая, что скоро Новый год, давайте я расскажу вам об этом новогоднюю сказочную историю... Мы окунемся в атмосферу подготовки к празднику, понаблюдаем за захватывающим приключением двух друзей, которые спасли Новый год, защищаясь от атак на системы машинного обучения, которые я аккуратно вписал в рассказ.
Товары-аналоги и с чем их едят или Свежий подход к формированию групп товаров для управления ассортиментом Ozon fresh
Мы команда data science Ozon fresh. В этой статье мы расскажем об одной из наших задач - алгоритм, который помогает управлять нашим огромным ассортиментом.
Ozon fresh — это сервис быстрой доставки продуктов, бакалеи, бытовой техники, электроники и других товаров. В нашем ассортименте более 35 000 уникальных позиций (готовая еда, мясо, рыба, фрукты, овощи, товары для гигиены и многое другое). Специфика Ozon fresh заключается в мини-складах, где хранятся товары. Они доставляются клиентам в радиусе нескольких километров.
Управление таким количеством позиций требует много человеческих и технологических ресурсов. У нас этим занимаются более 30 человек. Для упрощения работы мы используем различные группировки товарных позиций. Самая популярная — иерархическая четырёхуровневая группировка (далее мы будем называть её «категорийное дерево»).