Как стать автором
Поиск
Написать публикацию
Обновить
295.75
VK Tech
Разрабатываем софт для бизнеса
Сначала показывать

Фаззинг как основа эффективной разработки на примере LuaJIT

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

Представьте, что в основе вашего коммерческого продукта используется компонент с исходным кодом, который написан на смеси языка С и самописного ассемблера. Из-за слабой детерминированности поиск репродьюсеров сложен, а без репродьюсера мейнтейнер проекта заявляет: «Сделайте так, чтобы я про вас больше не слышал». Я расскажу, как мы построили процесс активной поддержки LuaJIT в СУБД Tarantool, сократили количество инцидентов в продакшене, сократили затраты на бэкпорт патчей из основного проекта и какую роль во всем этом сыграл фаззинг и его специфика.

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

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

Я рассмотрю специфику работы с проектом исходного кода на примере LuaJIT, расскажу, как устроено тестирование в нашем форке и какую роль там играет фаззинг. Расскажу о специфике фаззинга LuaJIT и о том, каких результатов мы в этом достигли за последние два года.

Читать далее

Pyra: краткий обзор и первые впечатления

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

Ко мне спустя 9 лет после предзаказа приехала штука из вот этой статьи. Это буквально «новый старый компьютер» из 2016. Посмотрим, что он из себя представляет, что умеет и как выглядит. Внутри много фото и личного мнения.

Читать далее

Как мы в VK Tech построили технический радар для масштабной инженерной команды

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

Привет, Хабр! Меня зовут Александр Петрушин, я старший разработчик в VK Tech, и сегодня хочу рассказать о нашем опыте создания технического радара.

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

Так родилась идея создать собственный технический радар — инструмент, который помогает командам лучше ориентироваться в технологическом ландшафте компании. В статье расскажу, зачем он нам понадобился, как мы подошли к сбору и визуализации данных, какие технические решения приняли и какие выводы сделали в процессе. Покажу, как мы использовали GitLab API, LLM и немного магии, чтобы всё заработало почти без ручной работы.

Если вы хотите привести технологии в компании к порядку и при этом не утонуть в бюрократии, этот текст для вас.

Читать далее

Универсальная С++ фабрика объектов: для Qt и не только

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

Привет, Хабр! Меня зовут Михаил Полукаров, я занимаюсь разработкой Desktop-версии корпоративного супераппа для совместной работы VK Teams.

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

В этой статье я покажу, как сделать универсальную фабрику объектов, покрывающую большую часть потребностей, следующую принципам DRY (Don’t Repeat Yourself), а также как можно использовать некоторые «фишки» новых стандартов С++. 

Читать далее

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

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

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

Меня зовут Максим Кокряшкин, я занимаюсь разработкой языковых рантаймов в Tarantool. Это решение класса middleware, разрабатываемое VK Tech, сочетающее в себе базу данных in-memory и application-сервер. Как раз таки наш application-сервер, который позволяет писать логику и хранимые процедуры, работает на LuaJIT

Читать далее

Как построить отказоустойчивый кластер СУБД

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

Привет, Хабр! Меня зовут Андрей Капустин, я менеджер продукта в компании VK Tech. Для построения систем хранения и обработки данных по объектам мы часто используем различные СУБД, которые объединяем в большие геораспределенные кластеры. Кластер СУБД содержит данные, необходимые для функционирования Mission Critical процессов, поэтому нам необходимо гарантировать постоянную доступность, обеспечить отсутствие потерь и минимизировать время предоставления данных по запросу.

Читать далее

Как превратить набор кубиков в ресурсно-сервисную модель для аналитики и алертинга приложений

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

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

Читать далее

Domain-Driven Design: чистый подход к проектированию бизнес-логики

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

Недавно наша команда столкнулась с новым проектом — крупной backend-системой, которую руководство решило реализовать в формате монорепозитория. Масштаб бизнес-логики оказался огромным, и быстро стало понятно, что без четкой архитектурной дисциплины невозможно поддерживать читаемость, изолировать бизнес-логику и эффективно управлять сложностью. Поэтому мы выбрали подход Domain-Driven Design (DDD), при котором домен описывает бизнес-правила, а оркестратор и инфраструктура вынесены в отдельные слои. Меня зовут Рамиль Куватов, я разработчик в VK Tech, и эта статья — попытка описать и систематизировать принципы, которые помогают нам сохранять архитектуру чистой, а систему — устойчивой к изменениям.

Читать далее

Repka-Pi 3: DMR хотспот

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

Привет, Хабр! Меня зовут Иван Куликов, я руководитель направления backend разработки в VK Tech, и хочу поделиться своим путем боли и преодолений по запуску DMR Хотспота на базе MMDVMHost и DMRGateway на российском аналоге RaspberryPi — RepkaPi

Читать далее

Смотрим под капот объектному хранилищу VK Cloud: что скрывает архитектура Object Storage

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

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

Меня зовут Андрей Капустин. Я менеджер продукта Tarantool в компании VK Tech. В этой статье я расскажу об объектном хранилище VK Cloud, его архитектуре и месте Tarantool в ней. 

Читать далее

Приоткрываем завесу: о принципах работы дисковых хранилищ VK Cloud

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

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

Привет, Хабр. Меня зовут Василий Степанов. Я руководитель команды разработки Storage в VK Cloud. В этой статье я расскажу о том, как устроено наше дисковое хранилище: какие диски используются в VK Cloud и как мы с ними работаем.

Читать далее

Как перестать беспокоиться и начать внедрять интеграционные тесты

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

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

Привет! Меня зовут Александра Смирнова, я старший фронтенд-разработчик в команде Календаря, VK WorkSpace. На момент начала работы нашей команды в B2B-Календаре для нашего окружения не было отдельных тестов. Мы прошли непростой путь, перед тем как начать писать тесты для B2B-окружения. Хотим рассказать, как встроили наши тесты в существующую инфраструктуру и наладили процессы для их стабильного прохождения. Для краткости я буду называть их «автотесты» или просто «тесты», имея в виду именно интеграционный вид тестирования.

Про автотесты

Хакатон Samsung IT Academy Hack 2025: обзор задачи от VK Tech

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

С ростом объема генерируемых данных повышаются требования к компетенции ИТ-специалистов в части работы с Big Data и решениями для их сбора, обработки и хранения. Это общий тренд, который по мере цифровизации бизнеса только набирает обороты. 

В соответствии с этим вектором IT Академия Samsung в апреле 2025 года провела уже второй хакатон IT Academy Hack 2025. VK Tech стал индустриальным партнером и предоставил инфраструктуру для студентов, а также подготовил одну из двух задач, которую студенты решали в рамках хакатона.

Меня зовут Павел Кутаков, я эксперт-архитектор команды VK Tech в направлении Data Services. В этой статье расскажу об актуальных решениях для работы с данными, а также о задаче и подходах, которые можно было применить для ее решения.

Читать далее

Как консолидировать данные из разрозненных хранилищ с помощью Tarantool CDC

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

Компании часто сталкиваются с необходимостью переливать данные между системами. Но нередко это превращается в настоящий квест: форматы данных могут различаться, для интеграции инструментов может не быть готовых коннекторов, самостоятельно гарантировать консистентность данных в целевой системе может быть сложно или невозможно. Поэтому подобные задачи редко обходятся без применения CDC (Change Data Capture).

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

Как разрабатывался Tarantool CDC

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

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

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

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

Читать далее

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

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

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

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

Читать далее

Пару слов о «ломаном» универсальном ИИ: o3, Gemini 2.5 и туманное будущее

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

Сегодня в мире ИИ-бум. Но мы до сих пор не знаем, как измерять интеллект, креативность или эмпатию этих систем. Тесты, которыми мы пользуемся, далеки от идеала. Но самое главное — они изначально создавались не для ИИ, а для человека. Команда VK Tech перевела статью о том, что такое универсальный ИИ, как вообще тестировать и «измерять» искусственный интеллект и как на самом деле неравномерно распределяются его возможности и способности.

Читать далее

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

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

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

Читать далее

Тестируем особенности искусственного интеллекта: o3, GPT-4.1 и o4-mini

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

Искусственный интеллект в последнее время постоянно радует нас разными новостями и новыми моделями. Команда VK Tech перевела статью со сравнением трех новых моделей — это поможет понять, какую же использовать для каких задач и чем модели по-настоящему отличаются друг от друга. Дальше передаем слово авторам оригинальной статьи.

Читать далее

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

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

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

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

Информация

Сайт
tech.vk.com
Дата регистрации
Численность
1 001–5 000 человек
Местоположение
Россия
Представитель
Евгений Левашов