Обновить
8K+
4,6
Оценка работодателя
127,43
Рейтинг
62 393
Подписчики
Сначала показывать

Как разобрать и собрать заново видеоплатформу Okko, пока ей пользуются миллионы

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели5K

Иногда легаси нельзя постепенно улучшить: его приходится разбирать, переосмысливать и заменять, пока основной продукт продолжает работать. Именно в такой ситуации оказались мы в Okko. Нам нужно было отделить воспроизведение от монолита, переписать транскодинг, заменить единовременно старую CMS и сохранить непрерывную работу онлайн-кинотеатра. В результате мы получили единую Видеоплатформу с документированными API, собственным кодированием 4K и HDR, управляемой аналитикой и возможностью разворачивать отдельные инсталляции для внешних партнёров.

Привет! Меня зовут Юлия, я представляю компанию Okko — один из крупнейших и старейших онлайн-кинотеатров России. Сервис появился в 2011 году и за это время вырос в сложный технологический продукт, ежедневно работающий с большими объемами видеоконтента и высокой нагрузкой.

В Okko я руковожу отделом discovery продуктов и сервисом «Видеоплатформа», и именно о нем пойдет речь в этой статье. Я расскажу, почему мы решили создать сервис, какие задачи перед собой поставили, с какими техническими и организационными вызовами столкнулись и как внедрили новую платформу без даунтайма основного продукта.

Читать далее

Заставляем Pulumi летать: тюнинг параллельности и in‑memory кэширование для VMware Cloud Director

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели5.9K

Перенести инфраструктуру в код — отличная идея, пока предварительный расчёт изменений и их применение не начинают занимать неприлично много времени.

Мы в Okko строим IaC для VMware Cloud Director на базе Pulumi и Python, чтобы инженеры могли управлять ресурсами через простой и понятный YAML. Но когда счёт объектов в облаке пошёл на тысячи, цикл проверки и применения изменений катастрофически растянулся.

Под катом рассказываем, как с помощью Jaeger разобрали выполнение по операциям, нашли повторные обращения к VCD API, добавили in-memory кэширование и подобрали уровень параллельности с учётом архитектуры площадок. А заодно выяснили, почему увеличение PULUMI_PARALLEL не всегда ускоряет развёртывание.

Читать далее

Как перегрев iPhone ломает UX: измеряем thermal state, FPS и отзывчивость приложения

Время на прочтение24 мин
Охват и читатели5.5K

Пользоваться приложением на перегретом устройстве некомфортно: падает плавность, замедляется отклик, а само устройство неприятно держать в руках. С пользовательской точки зрения проблема очевидна — но насколько сильно нагрев влияет на UX на самом деле? Как часто пользователи вообще с ним сталкиваются? Разбираемся, как измерить эффект нагрева не на уровне ощущений, а через метрики: thermal state, FPS, jitter и touch latency.

Читать далее

HTTPS через прокси без иллюзий: зачем компаниям Squid и почему allow all — это песочница, а не прод

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели6.8K

HTTP-прокси вспоминают в двух случаях: когда сервису нужно вывести наружу строго ограниченный трафик или когда инцидент уже случился и нужно понять, кто и куда ходил. Первый вариант дешевле.

Меня зовут Саша Скоков, я блогер, инженер группы сопровождения системной инфраструктуры в ОККО и в этой статье разберу, как работает Squid в проде.

Читать далее

Баг в проде – а кто виноват? Делим баги на категории, чтобы сделать их заметнее

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели7.3K

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

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

Читать далее

Как бренд команды даёт проекты, людей и влияние

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели6K

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

Я — Максим Гришутин, Product Platform Lead в Okko. Более семи лет работаю лидом и развиваю команды, которые хотят не только делать хорошие проекты, но и быть услышанными.

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

Читать далее

Мой внутренний самозванец: как я учусь жить с тем, кто постоянно говорит, что Я «фейк»

Время на прочтение13 мин
Охват и читатели7K

Финал года = время рефлексии и… атаки внутреннего критика. Пока HR готовит формы для оценки результатов, а руководители суммируют KPI, ты слушаешь шёпот внутри: «Ты не так уж хорош. Тебе просто повезло». Знакомо? Это синдром самозванца обостряется в сезон оценок и итогов. Давайте разберем, почему так происходит и как вернуть себе уверенность и объективный взгляд на свои реальные заслуги.

Читать далее

Кастомная сериализация с помощью kotlinx.serialization

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели6.4K

Привет, Хабр! Меня зовут Антон Николаев, я senior android-разработчик в Okko, работаю в команде «Молодость» — занимаюсь мультипрофилем и всем, что связано с детским контентом.

Сегодня расскажу о JSON Schema и как мы используем эту спецификацию на проекте, а также о библиотеке kotlinx.serialization и том, как она упростила нам работу со схемами. Статья будет полезна разработчикам, которые интересуются библиотекой kotlinx.serialization и хотят глубже узнать её устройство. В ней обсудим:

Что такое JSON Schema 

Читать далее

Appium-тесты на ARM и управление девайсами — легко :-)

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели6.4K

Мы переехали на ARM-архитектуру и наши Appium UI‑тесты стали пробегать в три раза быстрее. И это выгоднее, чем закупать в серверную классические Xeon'ы на X86!

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

Читать далее

Семь смертных грехов в работе аналитика данных

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели11K

Поговорим о «грехах», которые часто совершают начинающие аналитики данных. Эта информация будет полезна и другим специалистам, работающим с аналитиками — например, ML и дата-инженерам, а также руководителям и менеджерам, которые хотят знать, где могут возникнуть ошибки и как их предотвратить. Просто показывать пальцем и цокать языком не будем: в статье будут полезные инсайты, которые помогут улучшить качество вашей работы.

Грешим

Как одновременно заонбордить три новые команды

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели6.4K

Привет, Хабр! Я Серёжа Пиший, я тимлид продуктовой команды Android-разработки в направлении КИНО в Okko. В этой статье расскажу про онбординг. Это будет не инструкция, а скорее история о том, как мы справились с масштабированием нашей команды на двенадцать человек практически за раз. Возможно, наш опыт поможет наладить процесс онбординга и вам.

Читать далее

MDC в реактивном стеке: как не потерять контекст в Spring WebFlux и Kotlin Coroutines

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели10K

Всё больше Java-разработчиков переходят от приложений, использующих синхронный стек, к реактивным решениям на базе Spring WebFlux и Kotlin Coroutines. Такой переход позволяет строить более масштабируемые и устойчивые к высокой нагрузке системы, эффективно используя пул потоков и асинхронное выполнение задач. Однако вместе с преимуществами реактивного подхода появляется и новая неочевидная проблема — потеря MDC-контекста (Mapped Diagnostic Context), который традиционно используется для сквозной трассировки запросов в логах.

Читать далее

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

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели3.7K

Привет! Меня зовут Андрей Романюк, я руковожу группой качества WEB в онлайн-кинотеатре Okko. В этой статье я расскажу о процессе, с помощью которого мы снизили количество багов, которые мы выкатываем в прод, когда мы о них уже знаем.(Естественно, мы всё равно их выкатываем, но таких багов в релизах стало намного меньше :) 

О чём поговорим:

Читать далее

Как мы делаем ML на Java

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели2.2K

Привет, Хабр. Меня зовут Лёша Круглик, я занимаюсь коммерческой разработкой около 7 лет. Писал код для Epam, Альфа Банка и Яндекса, а последние года три занимаюсь разработкой в Okko.

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

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

Читать далее

Terraform уже не тот? Как Pulumi меняет правила игры в Infrastructure as Code

Время на прочтение6 мин
Охват и читатели11K

Привет, Хабр! Сегодня поговорим про инфраструктуру как код. Почему Terraform уже не единственный игрок в мире IaC, а Pulumi становится всё более актуальным. Я расскажу, как эти инструменты работают, чем отличаются, и почему стоит присмотреться к Pulumi, особенно, если вы хотите гибкости и мощи в управлении облаками.

Читать далее

В стиле ретро: меньше слов — больше action items

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели3.8K

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

Привет! Меня зовут Настя, я работаю проектным менеджером и скрам-мастером в онлайн-кинотеатре Okko. За последний год я провела более 100 ретроспектив в разных командах. Не все из них были удачными.

Читать далее

История эволюции веб-сервиса: от примера из доки до космолета

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели2.1K

5k RPS, 5ms Latency и 100 экспериментов одновременно. История о том, как наша команда перестраивала веб-сервис для сплитования трафика в высокопроизводительную систему. С какими ограничениями Cpython и Gil столкнулись на пути, как обходили "узкие места" и оптимизировали сервис до микросекунд. В общем, всё о том, как мы построили "космолет" на Python и взлетели! Ну и, конечно же, ответ на вопрос: "Почему не Go? ".

Читать далее

Playwright: игра в скриншотные тесты

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели13K

Работа с Playwright всегда доставляет мне удовольствие. «Наиграв» уже десятки, если не сотни часов в библиотеке, решая проблемы, копаясь в исходниках или на просторах сети, я практически всегда находил удачное решение. И это я списываю не столько на свой опыт, сколько на удобство самой библиотеки. Чаще всего удачные решения находились уже в коробке. А то, что приходилось допиливать руками, всегда сопровождалось ощущением игры и веселья – настолько приятно и легко работать с этим инструментом. Вот уже год, как наши тесты работают стабильно без каких-либо значимых изменений. Сегодня я расскажу вам о скриншотных тестах, реализованных на основе Playwright и Storybook.

Читать далее

Как на самом деле работает Attention

Уровень сложностиСложный
Время на прочтение8 мин
Охват и читатели7.8K

Как именно работают механизмы, которые позволяют LLM так эффективно взаимодействовать с контекстом? Принято рассматривать нейронные сети как black-box, не разбираясь, что на самом деле происходит во время их инференса. Однако можно немного заглянуть «в мозги» нейронным сетям и попытаться понять, за что отвечают те или иные группы параметров модели.

Меня зовут Михаил Коновалов, я работаю ML-инженером в Okko. В этой статье я хочу рассмотреть несколько публикаций, посвященных интерпретации механизма Attention в трансформерах.

Читать далее

Как создать дашборд в Superset: гайд для новичков и полезные лайфхаки

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели83K

Superset не самый новый bi-инструмент, но его популярность продолжает расти. На мой взгляд, он достаточно прост в освоении, но все же требует некоторых усилий и времени, чтобы разобраться куда тыкать, чтобы загрузить данные и нарисовать красивый отчет. Лично я за свою карьеру в IT уже второй раз сталкиваюсь с необходимостью переезда на этот инструмент. Он снова новый для компании и многие сотрудники с ним раньше не работали. Поэтому я и решила написать статью-шпаргалку, которая поможет в несколько кликов создать работающий дашборд и всегда будет под рукой.

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

Читать далее
1

Информация

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