Всем привет. Меня зовут Алексей. Сейчас я работаю frontend-разработчиком в компании Ozon. В свободное время мне нравится читать про новые технологии, фреймворки, а учитывая то, с какой скоростью развивается frontend, я никогда не скучаю. В этой статье пойдет речь о микрофронтах. В частности, мы посмотрим, как их реализовать на самом базовом уровне, разберемся, когда они нужны, а когда даже не стоит смотреть в их сторону.
Своё кастомное межсервисное взаимодействие с блекджеком и gRPC
Привет, Хабр! Меня зовут Ильяс. Мы с командой делаем собственный Service Mesh в Ozon Tech, и в этой статье я расскажу, как можно за вечер реализовать свое супер кастомное межсервисное взаимодействие. К концу статьи мы с вами напишем современные алгоритмы балансировки, настроим канареечные деплои, а также узнаем, как реализовать кучу других супернеобычных механизмов межсервисного взаимодействия на основе, не поверите, библиотеки gRPC :D И да, мы с моей командой уже раскатили это на весь Ozon Tech, состоящий из более чем 4500 сервисов. Пристегнитесь — мы начинаем… :-)
Производительность базового поиска в Ozon как культурный феномен
В этой статье я расскажу вам о том, как мы в Ozon оптимизируем базовый поиск: как у нас выстроены процессы, как найти бутылочное горлышко, конкретные рекомендации по написанию горячего кода, реальные примеры значимых оптимизаций и что делать, когда все низко висящие фрукты уже сорваны, а хочется ещё.
Android. Принять себя или Cookie?
Печенья, кеки, кукисы, ку-ку, кексы… нет, куки!
– Cookie — это что?
– Почему их не нужно принимать?
– Безопасно ли это?
– CookieJar, CookieManager, CookieStore… WebView?
А также истории про то, как жить с cookie в большом приложении, и сколько эмоций вы испытаете, если в вашем приложении есть WebView.
Как в Ozon следят за чувствительной информацией в логах и при чем тут Толкин?
Летом 2023 года во время выступления на одной из ИБ-конференций представителю вендора задали вопрос: «А как бороться с секретами и другой чувствительной информацией в логах? Контролировать миллионы записей в сутки довольно трудно». К моему удивлению, вендор ответил, что на текущий момент в России нет таких решений. Удивился я потому, что мы уже отладили к тому времени инструмент для решения именно этой проблемы. Но давайте обо всем по порядку.
Clickhouse, Grafana и 3000 графиков. Как построить систему быстрых дашбордов
Меня зовут Валя Борисов, и я — аналитик в команде Ozon. Задача нашей команды — создавать инструменты для мониторинга и анализа скорости.
Наши усилия направлены на то, чтобы в реальном времени следить за тем, как быстро работают наши сервисы и платформа. Благодаря инструментам, которые мы создаём и поддерживаем, команды разработки получают представление о том, как пользователи видят работу нашего сайта или приложения. Мы помогаем выявлять причины деградации скорости и определять узкие места в инфраструктуре.
Наши дашборды играют ключевую роль в предоставлении информации о скорости работы платформы. Вместе с командой аналитиков я занимаюсь созданием и поддержкой этой системы в Grafana. Мы стремимся делать ее не только информативной, но и быстрой, стабильной и удобной для всех пользователей. В этой статье я хочу поделиться методами и приемами, к которым мы пришли в процессе работы.
Как департамент утилизации CPU превратился в департамент экономии железа, выдерживающий нагрузку в 1 млн RPS
Привет, меня зовут Мария, когда-то я работала на шахте, потом на заводе, а 3.5 года назад пришла в Ozon Tech. Сейчас я старший Golang-разработчик в команде product-facade. Это самый высоконагруженный сервис маркетплейса, но так было не всегда.
Хотите узнать, что скрывается под витриной маркетплейса? Что держит нагрузку в 1 миллион запросов в секунду? Толстые кэши или нечто большее? Про то, как устроено наше кэширование и как мы к этому пришли, — рассказываю в статье.
Как выращивать SOC на корпоративной ферме
Леди и джентльмены!
Эта история о том, как группа из пяти инженеров-универсалов в течение года преобразовалась и выросла в полномасштабный Security Operations Center из трёх специализированных линий.
Когда-то мы и правда считали, что можем в 4-5 пар глаз отслеживать состояние всех критически важных сервисов и ситуативно автоматизировать самую унылую рутину, хорошо хоть вовремя опомнились.
Готов ли Swift OpenAPI Generator для продуктивного кода?
Привет! Меня зовут Андрей, я iOS-разработчик приложения «Пункт Ozon». С помощью него сотрудники пунктов выдачи Ozon выдают посылки, принимают возвраты, проводят инвентаризации.
Мы хотим упростить работу с OpenAPI-спецификациями, внедрив кодогенерацию для автоматического создания кода на Swift из YAML- или JSON-файла спецификации. Это позволяет автоматизировать создание DTO, сделать их единообразными и повысить эффективность разработки. Кодогенератор также упрощает сетевой слой, генерируя методы API, наборы параметров, заголовки и т.д.
На WWDC `23 Apple представила свой Open Source-генератор Swift OpenAPI Generator, который как раз и решает эту задачу. Давайте рассмотрим, готов ли в текущем виде Swift OpenAPI Generator для решения нашей проблемы.
Как мы запустили автобиддер для управления рекламными кампаниями в Ozon?
Привет! Меня зовут Артём, я руковожу командой эффективности рекламы в Ozon. Наша задача состоит не только в том, чтобы реклама приносила деньги компании, заказы рекламодателям и была релевантной для пользователей, но и в том, чтобы сделать запуск рекламных кампаний удобным и эффективным для рекламодателей.
В статье я расскажу о том:
• как мы пришли к идее автоматического управления ставками в рекламных кампаниях на платформе;
• какие алгоритмы оптимизации и машинного обучения нам помогли;
• как построена архитектура автобиддера;
• как выкатить новый продукт в прод и измерять эффективность.
Приглашаем на Ozon Tech Community ML&DS Meetup
Всем привет, меня зовут Артём, я руководитель команды «Эффективность рекламы». Мы пока не предлагаем генеративные модели для пользователей, но мы делаем другие крутые вещи, связанные с ML&DS. И хотим о них рассказать.
Приглашаю на Ozon Tech Community ML&DS Meetup, где вас ждут сразу 4 темы от экспертов блока по продукту и технологиям «Поиск, Рекомендации и Реклама». На встрече мы рассмотрим, что такое поисковые подсказки в Ozon, как были внедрены нейросети в рекомендации, зачем нужен автобиддер в рекламе и как он влияет на эффективность, а также поговорим про ML-инфраструктуру и её отдельных компонентах.
Как сделать макеты удобнее для команды
Привет! Меня зовут Владимир Крылов, и я проектирую внутренние сервисы в Ozon.
Продуктовые дизайнеры упаковывают решения проблем в макеты, которые часто смотрят коллеги: другие дизайнеры, менеджеры, аналитики, разработчики и QA-инженеры. Важно, чтобы макеты были максимально понятными — это сэкономит время на погружение в задачу всем участникам процесса и снизит количество ошибок, которые придется потом исправлять. Поэтому понятные и удобные макеты сокращают Time to Market продуктовых решений.
В этой статье хочу поделиться тем, как контекст, сценарии, записки и прототипы помогают сделать макет в Figma понятными и удобным для команды, а в качестве бонуса — шаблон для оформления.
Кроссдоменная координация. Как двигать огромные IT-проекты в огромной компании
Все знают, что в условиях большой компании очень сложно двигать крупные проекты к успеху. В таком проекте участвует много команд, каждая со своими интересами, приоритетами и особенностями, а общий объём работы — огромный.
Если вам интересно довольно простое решение этой задачи, проверенное опытом нескольких лет и многими десятками проектов в Ozon, — смело читайте дальше!
Ozon Tech Community 1C Meetup
Как сделать жизнь 1С разработчика проще? У нас есть ответ.
Всем привет, меня зовут Евгений, я руководитель группы разработки финансовых систем 1С. Приглашаю вас на Ozon Tech Community 1C Meetup, 10 октября в Санкт-Петербурге.
На встрече обсудим целую палитру тем: от подходов проектного управления до методов оптимизации разработки. Наша команда расскажет какие приёмы EDT и Git упростят рабочий процесс, а ещё — какие задачи у нас в компании были решены с помощью CI/CD.
Присоединяйтесь!
«Барби»: какие проблемы инфобеза может показать нам Барбиленд
Не секрет, что нашумевший в кинотеатрах и на торрентах фильм «Барби» оставил много поводов для раздумий над слоями иронии, а также над политическими и идеологическими посылами, которые там присутствуют.
Но, помимо этого, Барбиленд — ещё и хороший пример того, как не надо выстраивать информационную безопасность. Под катом разберём, какие классические проблемы ИБ можно найти в фильме и что мы можем из этого вынести.
Зеркалирование топиков Kafka по-бруклински
Буквально на секунду представьте, что у вас есть парочка здоровенных кластеров Apache Kafka, каждый из которых держит по нескольку миллионов rps. И тут вас попросили зеркалировать топик из одного кластера в другой. Максимально близко к реалтайму, да ещё и с некоторыми специфическими условиями. Если стало страшно, интересно или страшно интересно, то это статья для вас.
Под катом я расскажу, что такое зеркалирование и зачем оно нужно. Как нам перестало хватать Mirror Maker’а. Поговорим о возможных решениях и выборе между ними. И дам подробную инструкцию, как вам развернуть такое решение у себя.
Создание карты зависимостей: как увидеть системный уровень в процессах
Хабр, привет! Я Саша, Product Manager в Ozon. Хочу сегодня поговорить с вами об исследовании зависимостей между подсистемами проекта, в частности, и повышении прозрачности процессов в разработке в общем.
Обычное дело: в команду приходит заказчик, приносит суперзадачу — киллер-фичу, которая по приблизительным оценкам будет приносить не меньше N денег в секунду. Очень важная и нужная штука. Потом проходит 3 месяца, а фича так и не появляется на проде. Более того, команда к ней так и не приступала.
Почему?
– вместо суперзадачи команда занимается какой-то ерундой — проблемы с приоритизацией;
– команда не поняла, что фича принесёт реальные деньги и насколько это важно — сложности с коммуникацией с заказчиком;
– недостаточно описаны требования, команда отфильтровала задачу как «не готовую к взятию в работу» — продакт не доработал;
– задача потерялась в недрах бэклога — продакт проглядел.
Все эти варианты говорят нам о наличии рассинхрона команд, ожиданий и реальности, рассинхрона подсистем относительно общего процесса, вследствие этого команда(ы) делает «не то» «не так» или не делает вовсе.
Давайте разбираться — расскажу вам об инструменте, который поможет выявлять приводящие к подобным ситуациям серые зоны, нестыковки, зависимости между подсистемами проекта; поможет всё это дело визуализировать и анализировать. Инструмент я назвала картой зависимостей.
Приглашаем на Ozon Tech Community QA Meetup
Привет, меня зовут Дима, я руководитель группы разработки инструментов тестирования. Миссия нашей команды предоставить инструменты которые позволяют тестировщикам измерить качество своего продукта и улучшить его. Мы хотим, чтобы тестировщики релизили быстро и без багов.
У нас есть интересные задачи и классные решения для них, которыми мы хотим поделиться.Приглашаю вас на открытый Ozon Tech Community QA Meetup, в Москве, 21 сентября в 19:00
На митапе подробно обсудим, как устроено тестирование в Ozon, поговорим про тестовое покрытие и узнаем, как работает QA в блоке по продукту и технологиям товарных операций, а именно в разработке склада.
Приглашаем на Ozon Tech Community Go Meetup
Всем привет! Я – Влад, руководитель группы поисковой оптимизации в Ozon.
Go повсюду. И, конечно, ни при каких обстоятельствах мы не могли пройти мимо него в самом крупном направлении компании – разработке маркетплейса.
Направление отвечает за разработку инструментов, которыми активно пользуются наши покупатели и продавцы. Сюда входит абсолютно всё, что нужно для того, чтобы продавец смог предложить товар или услугу, а покупатель — сделать заказ.
И нам есть чем поделиться. Приглашаем на открытый Ozon Tech Community Go Meetup, 20 сентября в Москве. На митапе подробно обсудим Go и технологии, которые мы используем в разработке маркетплейса Ozon. Узнаем, как устроена разработка доставки и пути совершения покупки.
Видеоредактор, работа с видео и зачем там Canvas
Современные устройства и браузеры развиваются достаточно быстро, но все-равно этого бывает недостаточно для задач со сложными вычислениями. К таким задачам можно отнести обработку видео.
Одной из задач, где мы в Ozon используем Canvas, является обработка видео. Для это у нас реализован минималистичный видеоредактор. Зачем нужно было делать свой редактор для веба и почему не использовать готовый? Все ответы под катом.