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

Переливаем таблицы БД между средами: быстро и без боли на примере MS SQL

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

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

Меня зовут Евгений Грибков. Я ведущий программист в центре технологий VK. В этой статье мы рассмотрим одно из возможных решений создания скрипта перезаливки заданных таблиц из одной БД в другую на примере MS SQL.

Читать далее

Смотрим «под капот» бэкенда изображений в ОК

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

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

Меня зовут Руслан Измайлов. Я ведущий Java‑разработчик в ОК. В этой статье я хочу показать на конкретном юзкейсе весь путь изображения в соцсети ОК: от его загрузки на портал до скачивания с узлов CDN.

Читать далее

Как мы писали капчу с нуля, добавляли инклюзию, и причём тут легаси-код

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

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

Меня зовут Завен Агаджанян, я веб‑разработчик экосистемных продуктов VK ID и в этой статье расскажу, как мы писали капчу с нуля и что из этого вышло.

Читать далее

Оптимизация под контролем: инструменты и метрики для Аndroid-приложений

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

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

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

Читать далее

Техника безопасности при запуске крупной фичи: баланс между быстрыми метриками и прыжком веры

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

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

Меня зовут Алексей Сенников. Я директор по направлению контента и AI технологий в ОК. В этой статье я хочу поделиться правилами безопасного внедрения крупных фич в большие продукты, которые мы с командой выработали в процессе масштабного редизайна Ленты в ОК.

Читать далее

Tarantool CDC. Жизнь данных в гетерогенной среде

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

Часто в распределенных ИТ-ландшафтах компании используют несколько хранилищ данных под разные задачи. Это делает их важным компонентом любой системы Change Data Capture (CDC) — они помогают отслеживать изменения данных и связывать используемые хранилища. Но далеко не все CDC-инструменты способны ответить на актуальные запросы бизнеса.

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

Читать далее

Скроллим в темноте: как понять, что продуктом комфортно пользоваться в неудобных условиях

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

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

Меня зовут Татьяна Лескова, я старший аналитик-исследователь в RuStore. В статье расскажу, как мы добавили accessibility check в UX-исследования: читайте ниже, как внедрить его в свой продукт и как справляться с вызовами на этом пути.

Читать далее

Выходим за рамки привычных сценариев: как оптимизировать разработку с помощью VK Data Symphony

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

Лишь 25% времени разработчика уходит на написание кода. Остальное тратится на ревью, созвоны и другие задачи. Поэтому справедливо, что большинство команд разработки использует различные методики и инструменты, которые позволяют оптимизировать и автоматизировать бизнес-процессы.

Разбираемся, что упростить в работе разработчика и как в этом может помочь платформа VK Data Symphony.

Читать далее

Машинное обучение на Spark

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

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

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

Читать далее

Гетерогенные вычисления: проектирование и разработка вычислительной системы для нейросетей

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

Всем привет! Меня зовут Дарья Ильянова, и сегодня я хочу поделиться с вами опытом создания гетерогенной вычислительной системы для нейросетей, над которой мы работали в команде студентов Инженерно-математической школы НИУ ВШЭ и VK. Вместе с Филиппом Баулиным и Артемом Минеевым мы спроектировали прототип аппаратно-программного ускорителя для машинного обучения.

Читать далее

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

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

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

Меня зовут Алексей Шпагин. Я руковожу командой бэкенда проекта VK Звонки. В нашем сервисе видеоконференций можно проводить групповые звонки без ограничений по времени и количеству участников, совместно просматривать видео, а также демонстрировать экран в формате 4К. В этой статье расскажу, почему может снижаться качество транслируемого изображения, как эту проблему решить и какими инструментами оценивать результаты. Чтобы подкрепить рассуждения, в качестве примеров я буду использовать кейсы VK Звонков.

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

Читать далее

Возможности LLM и RAG на примере реализации бота для поддержки клиентов

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

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

Меня зовут Александр Волынский. Я технический менеджер продукта в подразделении Applied ML. В этой статье я хочу рассказать об LLM и RAG, вариантах их использования на примере нашего бота для поддержки клиентов, а также о сценариях применения полученной реализации.

Читать далее

Дедупликация в OpenZFS теперь хороша, но использовать её не стоит

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

Вот-вот выйдет релиз OpenZFS 2.3.0 с новой функцией Fast Dedup. Это огромный шаг вперёд по сравнению со старой дедупликацией и отличный фундамент для будущих доработок.

Контрибьютор OpenZFS @gmelikov и команда VK Cloud совместно перевели статью об этом релизе, в которой новая функция сравнивается со старой дедупликацией и описывается максимально подробно с практическими примерами. В 2023–2024 коллеги из Klara много работали над этой функцией, и мы согласны с ними, что она весьма хороша! 

После релиза Fast dedup на многих ресурсах в обсуждениях продолжили писать, что «новый дедуп всё так же плох, он требует столько же ОЗУ и также убивает производительность». Но эта информация лишь отчасти близка к правде и повторяет всё тот же мотив, который когда-то кто-то озвучивал на форумах.

Винить в этом никого не хочется. И не стоит, так как дедупликация в OpenZFS и правда была очень требовательной к правильному применению. Найти качественные гайды тоже не просто, ответ по умолчанию — «не используйте её» — был и (в целом) остаётся правильным. Но, по прошествии почти 20 лет жизни дедупа в OpenZFS, настало время вернуться к этому вопросу.

Посмотрим на свежую информацию об имплементации дедупа в OpenZFS, как он работал до улучшений, в чём была его проблема, что поменяли в fast dedup, и почему же это всё ещё не дефолт.

Читать далее

Кэшируем поток данных из Kafka в Tarantool: подробный пример реализации с кодом и результатами

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

Apache Kafka — популярный распределенный брокер сообщений, который собирает и сохраняет сообщения (данные) со всех источников, а после предоставляет их программам и сервисам-получателям. Благодаря своей производительности и архитектуре инструмент довольно активно используется в проектах, где нужно гонять большие объемы данных. Но даже возможностей Kafka не всегда достаточно — иногда системам нужен буст по скорости и надежности. И получить его можно с помощью кэширования данных в Tarantool.

Меня зовут Никита Молоствов. Я старший программист в команде разработки VK Tech. В этой статье я расскажу о том, как можно наладить взаимодействие Kafka и Tarantool, зачем может понадобиться кэширование потока из Kafka в Tarantool, и дам подробную пошаговую инструкцию, с которой каждый сможет применить мои наработки в собственной системе.

Читать далее

Мониторинг основных продуктовых метрик в Superset

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

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

Меня зовут Дмитрий Меситов. Я продуктовый аналитик в ОК, и в этой статье я хочу рассказать о том, зачем нам понадобилась смена стека для мониторинга продуктовых метрик, какие варианты мы рассматривали и какой инструмент выбрали в итоге.

Читать далее

Как выявлять и устранять узкие места в процессах разработки и при чем здесь Process Mining

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

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

Меня зовут Ольга Свиридова. Я руководитель проектов по внедрению VK Process Mining. В этой статье я расскажу, что такое Process Mining, как технология помогает выявлять узкие места в процессах и улучшать их, а также познакомлю с нашим инструментом — VK Process Mining.

Читать далее

Tracer спустя год: новые фичи и возможности инструмента для аналитики ошибок в мобильных приложениях

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

Tracer — модульный инструмент для аналитики ошибок в мобильных приложениях от OK.Tech, который мы представили год назад. За это время в Tracer зарегистрировалось более 1400 организаций и 5000 пользователей. Сейчас решение обрабатывает более 1 млрд событий в день и обслуживает приложения, которые имеют суммарный DAU в 20 млн пользователей. Опыт наших клиентов показывает, что Tracer успешно справляется с поставленными задачами, но мы всё равно не останавливаемся на достигнутом.

Меня зовут Кирилл Попов. Я руководитель направления Android-разработки в ОК. В этой статье я расскажу, какие возможности получил инструмент за последний год, и что мы планируем реализовывать в перспективе.

Читать далее

Быстрее некуда: собираем удобный поиск по коду из нескольких CLI-утилит

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

Мы никогда не читаем код как книгу — мы выбираем только конкретные интересующие места. Такие места обычно запоминаются ассоциативно, например по имени функции, строковому литералу, импорту библиотеки, комментарию и т. д. Перейти от ассоциации к файлу, а тем более к конкретной строчке кода не всегда легко. Особенно если оперируешь большим количеством проектов с активно меняющейся кодовой базой. В таких случаях выручает удобный инструмент текстового поиска.

Эффективность такого инструмента определяется как скоростью работы, так и удобством использования. В частности, кастомизация под себя позволяет разгрузить мышление и включить «мышечную память» — когда руки сами нажимают кнопки, а все внимание сосредоточено на обработке результатов поиска. Не все инструменты позволяют провести такую тонкую настройку. Меня зовут Роман Щекин, я работаю руководителем команды разработчиков в VK Cloud, и в этой статье мы с вами поищем серебряную пулю, попробуем достичь сочетания скорости и удобства в виде собранного из кросс-платформенного опенсорса поисковика.

Читать далее

Об анатомии крэшей на iOS «по-взрослому»

Уровень сложностиСложный
Время на прочтение23 мин
Количество просмотров6.9K

Привет, Хабр. Меня зовут Давид Чупреев. Я разработчик мобильных приложений в команде Core iOS ОК. 

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

Читать далее

Создание кастомного балансировщика нагрузки на Go для gRPC с приоритизацией адресов

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

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

В этой статье я поделюсь опытом создания кастомного балансировщика нагрузки на Go для gRPC, который использует приоритеты адресов для выбора наилучшего соединения. Это решение позволяет гибко управлять распределением клиентских запросов между серверами с разными уровнями доступности и обеспечивает подключение к оптимальному ЦОД с минимальными задержками.

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

Информация

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