Как стать автором
Обновить
650.37
VK
Технологии, которые объединяют
Сначала показывать

В 10 раз больше роликов с субтитрами: как VK Видео делает контент доступнее

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров656

В феврале 2025 года команда VK Видео в 10 раз увеличила количество роликов с субтитрами и точность расшифровки речи. Теперь субтитры есть в 90% контента — со знаками препинания, заглавными буквами и всеми особенностями специализированной лексики и неологизмов.

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

Читать далее

От таблицы в Excel до собственного инструмента: как мы строили в VK Cloud решение для работы с внешними партнерами

Время на прочтение5 мин
Количество просмотров1.6K

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

Меня зовут Елена Климанова. Я ведущий дата-аналитик в компании VK. В этой статье расскажу, как и почему мы прошли путь от использования excel-файлов при работе с внешними партнерами-вендорами до создания собственного продукта.

Читать далее

Лечим проблемы Kubernetes на лету по мере масштабирования проекта: опыт команды VK Cloud

Время на прочтение9 мин
Количество просмотров2.6K

Производительность etcd-кластера со множеством объектов — головная боль команд, которые любят и ценят Kubernetes. И вот почему: чаще всего для роста производительности кластера используют горизонтальное скалирование, а это приводит к нагрузке на кластер из-за увеличения времени согласования записи данных. В результате вместо шустрого кластера получается неповоротливый тяжеловес. 

Меня зовут Алексей Волков. Я менеджер продукта Cloud Containers в VK Cloud. В этой статье я расскажу о кейсе одного из наших клиентов: с каким запросом он пришел и с какими сложностями сталкивался, как мы провели тюнинг etcd-кластера и какие настройки нужны, чтобы повысить производительность Kubernetes. 

Читать далее

Видим невидимое: контроль качества Android-библиотек через объектив AppTracer Lite SDK

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров589

Привет! Меня зовут Даниил Климчук, я работаю в команде, занимающейся SDK для авторизации через сервисы экосистемы VK. В него входит несколько компонентов, а именно авторизация по протоколу OAuth 2.1, кнопка One Tap для авторизации в один клик, шторка с описанием сценария авторизации и поддержка авторизации через Mail и OK.

Мы усиленно работаем над качеством нашего SDK, и одним из важных аспектов стал контроль работы SDK на устройствах пользователей. Было решено собирать краши и перформанс-метрики. Для этого отлично подходит новый инструмент AppTracer Lite SDK, разработанный в VK. Сейчас он доступен только внутри VK, но если вас заинтересовало решение и вы хотите внедрить его к себе, напишите в телеграм-чат: t.me/tracer_feedback — обсудим такую возможность. 

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

Читать далее

Как довести фичу до продакшена без боли: пошаговый гайд от команды RuStore. Часть 3

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров446

В первой и второй частях нашего гайда мы — техлид backend-команды Rustore Григорий Рябов и руководитель команды разработки RuStore: направление платежей Александр Котельников, прошлись по всем подготовительным этапам — от Kick-off до разработки и тестирования.

Читать далее

История о свершениях одного QA: о Quality Gates и оптимизации релизных процессов в ОК

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров1.8K

Задача любого тестировщика — проверять продукт на соответствие установленным требованиям и своевременно отлавливать любые баги и ошибки. В идеальных условиях или небольших проектах эта схема работает безотказно. Но в ситуациях, когда над продуктом работает несколько команд разработки, в релизы попадает по 30-70 задач, а обновления выкатываются каждую неделю, фокуса тестировщиков может просто не хватить. В таких условиях не обойтись без Quality Gates.

Меня зовут Юлия Садовникова. Я старший специалист по тестированию в команде Core Android компании ОК. В этой статье я расскажу о Quality Gates в ОК и о том, как QA может не просто тестировать, а реально влиять на проект и процессы.

Читать далее

Do as I do: алгоритм размещения сервисов внешних поставщиков в Маркетплейсе VK Cloud

Время на прочтение8 мин
Количество просмотров565

Закономерный этап развития Cloud Native — стремление компаний иметь возможность получения быстрого и простого доступа к инструментам и технологиям под разные кейсы и бизнес-сценарии. Поэтому большинство современных облачных платформ строится на концепции предоставления пользователям всех нужных ресурсов и инструментов в формате «единого окна». И основной способ реализации этой концепции — построение каталогов приложений.

Читать далее

Как довести фичу до продакшена без боли: пошаговый гайд от команды RuStore. Часть 2

Время на прочтение5 мин
Количество просмотров619

В первой части гайда RuStore по доставке фичей мы — техлид backend-команды Rustore Григорий Рябов и руководитель команды разработки RuStore: направление платежей, Александр Котельников, разобрали подготовительные этапы, которые закладывают прочный фундамент для всей разработки: от Kick-off и архитектурного планирования до Technical Design и тестовой стратегии.

Читать далее

Kubernetes как PaaS: максимум возможностей без разработки. Часть 2

Время на прочтение12 мин
Количество просмотров2.3K

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

Читать далее

Как довести фичу до продакшена без боли: пошаговый гайд от команды RuStore. Часть 1

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров1.5K

Полтора года назад мы в RuStore собрали новую команду, чтобы с нуля разработать собственное платёжное решение. Тогда всё началось с одной фичи. Казалось бы, «просто запилить», чего тут сложного. Но на деле это обернулось целым кварталом разработки, бесконечными доделками и болью на финальном этапе интеграции. Тогда мы столкнулись с типичным набором проблем — от отсутствия документации и слабой декомпозиции до невозможности предсказать сроки. Да, в конечном итоге всё как-то заработало, но по ощущениям исключительно на энтузиазме.

Читать далее

Минус Lua, плюс перформанс: как толстый клиент на Go сделал работу с Tarantool эффективнее

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

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

Меня зовут Максим Коновалов, я архитектор Tarantool в VK Tech. В этой статье я расскажу, зачем и как мы уходили от Lua и что получили в итоге.

Подробнее

Эволюция хранилища ВКонтакте: от первой реализации до наших дней

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

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

В этой статье я расскажу про хранилище ВКонтакте: как оно менялось, что мы делаем для оптимизации занятого места и как гарантируем сохранность данных.

Читать далее

Как правильно пофиксить INP и весь Performance: опыт команды ОК

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров972

С 12 марта 2024 года метрика FID (First Input Delay) из семейства Core Web Vitals заменена метрикой INP (Interaction to Next Paint), которая оценивает скорость отклика сайтов. При этом, согласно оценке Google, по метрике FID было оптимизировано 93% сайтов, но лишь 65% — по INP. 

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

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

Читать далее

Оптимизация конкурентных приложений в Go

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров8.2K

Конкурентность — одно из ключевых преимуществ Go, но на практике она нередко превращается в источник боли: гонки, дедлоки, утечки горутин, избыточная сложность. Всё дело в том, что встроенные инструменты Go действительно мощны — но требуют аккуратности, понимания и здравого подхода.

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

Читать далее

CI/CD по кнопке: как мы автоматизировали сборку SampleApp для SDK RuStore

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

Если вы хоть раз тестировали SDK для Android, то знаете, сколько времени и нервов может уйти на подготовку окружения и сборку тестового приложения. Особенно если это делает не разработчик, а, например, тестировщик или менеджер — сначала нужно настроить окружение, скачать и обновить ветку до актуального состояния, открыть Android Studio, найти нужные параметры в build.gradle, внести правки вручную, запустить сборку. И каждый раз надеяться, что ничего не отвалится.

Читать далее

Как оптимизировать код на Go? Раскладываем по полочкам

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

Привет, Хабр! Меня зовут Дмитрий Гурьянов, я руковожу командой Manuls в VK HR Tek (система ведения кадрового электронного документооборота). Сегодня расскажу о нюансах оптимизации на разных уровнях исполнения кода на Go.

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

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

Читать далее

От данных к действию: как мы масштабировали direct-коммуникации в RuStore

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров678

Привет! Меня зовут Григорий Афонин, я продакт RuStore — магазина приложений для Android, Harmony OS, ОС «Аврора». В магазине мы реализовали всю необходимую пользователям и разработчикам архитектуру — скачивание приложений, оплату недоступного в зарубежных сторах софта и игр. 

Читать далее

Разработка CLI с помощью пакета Cobra: как не наступить на змею при написании

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

Привет, Хабр. Меня зовут Иван Добряев, я разработчик программного обеспечения в Центре технологий VK. Сегодня хочу поделиться опытом по одной достаточно прикладной, но весьма увлекательной теме — разработке командной строки (CLI) на Go.

Платформа для инференса ML-моделей (inference platform) у нас молодая, ей всего лишь полгода, и мы активно расширяем команду. Так что, если вы хотите писать сервисы на Go с нуля, то приходите к нам, у нас найдутся задачи на любой вкус.

Читать далее

Корпоративная разработка: существующие риски и практики обеспечения доверенности в коде

Время на прочтение10 мин
Количество просмотров1.1K

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

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

Меня зовут Сергей Склабовский. Я менеджер продукта в VK Tech. В этой статье я хочу рассказать о существующих рисках совместной разработки и основных подходах обеспечения доверенности в программном коде при разработке. 

Читать далее

Эффективный пакетный инференс моделей. Опыт инженеров VK

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров1.3K

Привет, Хабр!  На связи Артём Петров, я занимаюсь разработкой ПО в центре технологий VK. Хочу рассказать о важной задаче обработки больших объёмов данных с использованием нескольких экземпляров одной и той же модели машинного обучения. Этот процесс называется batch inference («пакетный инференс») и позволяет значительно повысить производительность системы, особенно когда речь идёт о таблицах большого размера.

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

Информация

Сайт
team.vk.company
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия
Представитель
Дмитрий Головин