Привет, Хабр! Меня зовут Катя Невзорова, я старший программист в департаменте Игры. В этом материале я решила поделиться тем, как мы с командой делаем геймплей для игры Rush Royal.
Новости
KPHP спустя 2 года
Ровно два года назад — в ту же самую дату и в то же самое время — я опубликовал статью «ВКонтакте снова выкладывает KPHP».
Сегодня рассказываю, куда мы продвинулись за эти два года: про язык, рантайм, использование KPHP вне ВКонтакте, другие open-source проекты и февраль 2022-го.
Изобретая бота: система обработки сообщений на примере конструктора чат-бота
Привет, Хабр! Я Игорь Латкин, архитектор в KTS. Мы занимаемся различными цифровыми продуктами для бизнеса, специализируемся на HRTech, EdTech и DevOps. Также у нас есть несколько собственных продуктов, и один из них тесно связан с очередями сообщений. Об этом интересном решении я хочу сегодня рассказать. Эта статья — конспект моего диалога с архитектором Tarantool Монсом Андерсоном. Посмотреть видео можно в записи. Бонусом в конце — ответы на вопросы зрителей.
От Single-Instance-прототипа до облачной промышленной платформы интернета вещей: как мы разрабатывали Cloud IoT Platform
В продуктовой разработке нередко случается, что из кастомного проекта для конкретной компании рождается самостоятельный продукт. Так случилось и с Cloud IoT Platform: из небольшого пилотного проекта мы создали облачную промышленную платформу интернета вещей.
Магазин приложений RuStore: зачем он нужен и чем полезен
Привет, я Илья Сверчков, операционный директор RuStore. В этой статье я хочу подробнее рассказать о предпосылках, процессе создания и возможностях магазина приложений RuStore для разработчиков. В частности поговорим о монетизации, продвижении и модерации приложений.
Вижу цель: три решения задачи по созданию предсказательной ML-модели
Использование интеллектуальных систем в продуктах на пике популярности: алгоритмы помогают определить, какую музыку и фильмы предпочитают пользователи, куда они хотят полететь в отпуск, — и почти никогда не ошибаются.
Создание точных интеллектуальных систем — актуальная и сложная задача. Актуальная, потому что интеллектуальные системы активно используют, например, интернет-магазины, стриминговые сервисы, развлекательные площадки. Алгоритмы помогают компаниям повысить конверсию и средний чек, увеличить лояльность и уменьшить отток клиентов.
Что ждет data-инжиниринг в будущем
Отношение к data-инжинирингу и к профильным специалистам со временем меняется. Возможно ли, что в скором времени data-инженеры перестанут быть востребованными? Команда VK Cloud перевела статью о ближайшем будущем для всех тех, кто работает с данными.
Что такое data-инжиниринг
Давно ли работающие с данными компании открыли новую профессиональную область и мы услышали термин «data-инжиниринг»? Лет десять назад. Когда бизнес осознал, насколько полезными могут быть данные, спрос на data-инженеров резко вырос. По данным Google, отмечается экспоненциальный рост интереса к термину «data-инженер», который достиг пика примерно в 2020 году.
Так что же такое data-инжиниринг, столь стремительно набравший обороты и остающийся востребованным вот уже несколько лет? В традиционном понимании data-инженерами называют людей, занимающихся перемещением, формированием и преобразованием данных из источников с помощью инструментов извлечения аналитических сведений, которые нужны для работы разных отделов компании.
nocc — распределённый компилятор для гигантских проектов на С++
У нас есть задача постоянно компилировать тонны плюсового кода. Наш проект — почти 200 000 cpp- и h-файлов, множество Git-веток, сотни разработчиков, десятки билд-агентов: его нельзя единожды скомпилировать, приходится перекомпилировать постоянно, параллельно, разные версии.
Наш проект необычный. Потому что эти 200 000 файлов — это результат автогенерации. Потому что пишем мы на PHP, а потом через KPHP все PHP-исходники превращаются в плюсы. Именно так разрабатывается бэкенд ВКонтакте.
Компилировать тысячи объектников долго. Локально это занимает много часов. Мы использовали distcc — но всё равно медленно. Мы даже пропатчили distcc для поддержки precompiled headers — но даже тогда медленно. И решили написать своё — чтоб стало, наконец, быстро.
В итоге мы написали замену distcc — компилятор nocc. Он не имеет никакого отношения к PHP и даже к KPHP, а просто предназначен для компиляции .cpp → .o в промышленных масштабах.
Это техническая статья про параллелизацию, демоны и специфику С++. Ссылки на GitHub и видео приложу в конце статьи.
Open Source для MLOps: сравнение популярных решений
Здравствуй, Хабр! Меня зовут Александр Волынский, я занимаюсь разработкой ML Platform в VK Cloud. Наша ML-платформа стала доступна пользователям совсем недавно, некоторые из её компонентов сейчас находятся на этапе бета-тестирования. В этой статье я расскажу, как мы выбирали Open-Source-инструменты для MLOps-платформы, какие решения сравнивали, на каком варианте остановили выбор и почему.
Чем занимается AppSec?
Не так давно мне в очередной раз задали вопрос: «Чем занимается AppSec?». И обычно, отвечая на этот вопрос в двух словах, я чувствую, что должен дать больше информации. Поэтому решил подготовить эту статью.
Эволюция архитектуры данных: как потребности бизнеса изменили инструменты для хранения данных
Команда VK Cloud перевела статью о том, как с течением времени менялась и развивалась архитектура данных и какие инструменты появлялись в ответ на потребности бизнеса.
Введение
Задачи по работе с данными отделяют от бизнес- и других аналитических задач (BI, дата-сайенс, когнитивные решения и т. п.) с тех пор, как появились первые ИТ-системы и бизнес-приложения. Из-за высокой ресурсоемкости рабочие нагрузки по аналитической обработке данных приходится отделять от ИТ-систем, отвечающих за бизнес-операции, иначе они столкнутся со сбоями и нехваткой ресурсов, что приведет к неудобствам для пользователей, работающих с системой.
Как запускать SQL в Go с максимальным комфортом
Писать SQL руками или использовать ORM — тема очень спорная, и я опишу, как использовать первый подход максимально эффективно. А какой из подходов выбрать, думаю, каждый сам для себя уже решил.
Подводные камни Spark: что делать с перезаписью и дополнением в таблицах
Таблицы — это фундаментальная часть заданий Spark, и при изучении документации кажется, что работать с ними нетрудно. На самом же деле опасности поджидают на каждом повороте. Команда VK Cloud перевела статью о том, с какими трудностями вы можете столкнуться и как их преодолеть.
Создаем сложные интерфейсы и спецэффекты на базе Qt. Часть I
Привет, Хабр! Меня зовут Михаил Полукаров, я занимаюсь разработкой desktop-версии в команде VK Teams. Каждый день нашим мессенджером пользуются миллионы людей, поэтому мы уделяем особое внимание интерфейсу пользователя. Он должен быть не только функциональным и отзывчивым, но ещё и привлекательным с эстетической точки зрения. Для создания графических интерфейсов мы используем Qt Framework, и уже накопили много опыта в решении нетривиальных задач с помощью этого инструмента. Настолько много, что статью пришлось разделить на две части.
Под катом мы пройдём путь от создания отдельных компонентов-примеров, экспериментов с маскированием, прозрачностью, размытием и перекрывающимися компонентами до разработки небольшого демонстрационного приложения, объединяющего все полученные ранее решения.
Цветные функции: ищем плохие архитектурные паттерны
Когда у языка нет цветовой дифференциации функций… то у языка нет цели?
Я уже много лет занимаюсь компиляторами и языками в целом. Хочу поделиться интересной мыслью, которая когда-то пришла мне в голову. Почему-то такого я нигде не видел.
Если немного расширить понятие функции (ввести атрибут «цвет»), можно описывать паттерны вида «вызывать логгер из performance-critical мест — это плохо» или «ходить в базу при рендеринге шаблонов запрещено».
Идея абсолютно не зависит от языка и применима к любому: хоть JS, хоть Go. Разберу её подробно в статье, и это будет интересно больше с теоретической точки зрения. Хотя мы даже сделали практическую реализацию для PHP, чтобы использовать у себя. Ссылки на GitHub и видео приложу в конце, а пока обо всём по порядку.
Что делать со сбоями в подах: практическое руководство с примерами конфигураций
Команда VK Cloud перевела статью о том, почему возникают сбои в кластерах Kubernetes и как с ними бороться.
Осознанные прерывания и непреднамеренные сбои
Поды исчезают по причинам двух категорий: если возникает неустранимая ошибка аппаратного обеспечения или системы либо если их уничтожает человек или контроллер. Первую категорию необратимых ситуаций мы называем непреднамеренными сбоями приложения. Например:
- происходит сбой оборудования, на котором размещен узел;
- администратор кластера по ошибке удаляет (экземпляр) виртуальную машину;
- ВМ исчезает из-за сбоя в работе гипервизора или облачного провайдера;
- возникает критическая ошибка ядра;
- узел исчезает из кластера из-за сетевого раздела кластера;
- происходит выселение пода с ноды из-за отсутствия ресурсов на ней или превышения лимитов.
Примечание: Большинство этих событий неспецифичны для Kubernetes и должны быть знакомы пользователю, за исключением проблемы с отсутствием ресурсов на ноде.
От Web до Desktop за 2 недели: технология Electron на практике
Если у вас есть компьютер и вы используете его по назначению, то скорее всего вы так или иначе работали с приложениями на Electron (даже если об этом не знали).
Меня зовут Сергей Володин, я руковожу командой разработки VK WorkMail. В этой статье я расскажу, как на основе Electron мы за две недели создали PoC кроссплатформенного настольного приложения Почты, что узнали о технологии и к каким выводам пришли.
Как следить за кластером Kubernetes: 6 главных метрик, на которые нужно обращать внимание
Загвоздка с Kubernetes в том, что это не единая система, как, например, Redis RabbitMQ или PostgreSQL, а комбинация нескольких компонентов Control Plane: etcd, API-сервера и других. С помощью виртуальных машин или серверов они помогают контролировать пользовательские нагрузки, и от всех поступают огромные потоки метрик, в которых очень легко запутаться.
Команда VK Cloud перевела статью о том, на какие именно метрики стоит обращать внимание в первую очередь, чтобы грамотно мониторить рабочие нагрузки и поддерживать кластеры в исправном состоянии.
Everything Bagel, часть II: версионные таблицы озера данных в lakeFS и Trino
Команда VK Cloud уже переводила статью о том, как развернуть локальный стек данных с помощью инструмента Everything Bagel. Теперь переводим вторую часть, в которой на практике разбираем, как выполнять запросы к разветвленным данным lakeFS через механизм распределенных запросов Trino.
Как базы данных «ключ-значение» обеспечивают производительность и масштабируемость без границ
Команда VK Cloud перевела статью о базах «ключ-значение». Вы узнаете, в чем их преимущества перед другими БД, какие базы работают по этому принципу и чем они отличаются между собой.
В чем суть баз «ключ-значение»
Суть проста — объекты в них хранятся и извлекаются с помощью ключа. Так мы прощаемся с:
- таблицами, столбцами и вводом ant data — всем, что можно так или иначе назвать blob-объектом;
- отношениями между объектами;
- сложными операциями.
Что же мы получаем взамен, когда отбрасываем все это?
Информация
- Дата основания
- Местоположение
- Россия
- Сайт
- vk.com
- Численность
- 5 001–10 000 человек
- Дата регистрации
- Представитель
- Анастасия Гутор