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

Передаём GPU-буферы напрямую в TensorFlow Lite

Блог компании VK Разработка мобильных приложений *Разработка под Android *Машинное обучение *TensorFlow *

Привет, Хабр! Меня зовут Олег, я работаю с машинным обучением в VK Видео, внедряю нейросети в Клипы ВКонтакте для создания эффектов дополненной реальности. В статье расскажу, как запустить TensorFlow Lite сетку с передачей GPU-буферов — как входного, так и выходного. Этот подход помогает сэкономить на пересылке данных между CPU- и GPU- памятью, когда данные уже находятся в GPU-памяти и модель применяется с помощью GPU-делегата TensorFlow Lite. 

Весь процесс покажу на примере реализации для Android, код можно найти в моём GitHub-репозитории.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 974
Комментарии 1

Новости

Много машин в облаке — это не больно: IaC для управления масштабной инфраструктурой

Блог компании VK Системное администрирование *IT-инфраструктура *Облачные вычисления *

Server Room by OliverWeiss97

Здравствуй, Хабр! Меня зовут Алексей Волков, я продуктовый менеджер Kubernetes как сервис в VK Cloud Solutions. Исторически сложилось так, что настройка серверов — это ручной труд. Однако по мере роста и усложнения инфраструктуры управлять ею все сложнее. 

В этой статье я расскажу, что такое инфраструктура как код, дам общее представление о принципах, на которых строится IaC, и постараюсь показать, как правильные подходы позволяют без проблем управлять огромным парком виртуальных машин.
Читать дальше →
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 1.1K
Комментарии 0

Как мы настраивали CI в два захода

Блог компании VK

Я тружусь младшим разработчиком в отделе внутренней мобильной разработки VK. Когда я пришел в команду, у нас не было CI. При этом в одном репозитории у нас было семь приложений, и при каждом обновлении приходилось по отдельности их собирать, тратя на это кучу времени и сил. Я решил автоматизировать сборку, написав человеческий CI. И это — его история.

Читать далее
Всего голосов 10: ↑7 и ↓3 +4
Просмотры 2K
Комментарии 0

Hudi, Iceberg и Delta Lake: сравнение табличных форматов для озера данных

Блог компании VK Big Data *Хранилища данных *
Перевод

Lake Berryessa by chateaugrief

Выбор формата хранения данных при создании Data Lake влияет на производительность озера, удобство его использования и совместимость с другими инструментами. 

Команда разработки Cloud Big Data от VK Cloud Solution перевела статью — сравнение трех форматов данных: Apache Hudi, Apache Iceberg и Delta Lake. Посмотрим, какие в них применяются подходы к производительности обновлений, параллелизму и совместимости, и разберем, какой формат больше подойдет под ваши задачи.
Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 1.1K
Комментарии 0

Угнать за 5 миллисекунд: как мы наладили быструю доставку данных в сложной биржевой системе с помощью Tarantool

Блог компании Конференции Олега Бунина (Онтико) Блог компании VK Высокая производительность *Хранение данных *Tarantool *

Привет! На связи Олег Уткин из отдела архитектуры систем хранения данных Tarantool. Я хочу рассказать, как в ходе проекта для Московской биржи мы консолидировали потоки данных из разных торговых систем и наладили их доставку клиентам. По пути мы собрали много граблей и сделали несколько интересных выводов, которыми я далее поделюсь.

Читать далее
Всего голосов 33: ↑33 и ↓0 +33
Просмотры 2.7K
Комментарии 1

«Меняем коней на переправе»: опыт замены компонентов Kubernetes на работающем кластере

Блог компании VK DevOps *Облачные сервисы Kubernetes *

Fix by MacRebisz

Привет, я Андрей Квапил, Solution Architect в компании «Флант». Моя специализация — архитектурные решения на базе Kubernetes, в том числе на bare metal, а также разработка и эксплуатация облачных платформ и software-defined storage. 

В Kubernetes часто можно столкнуться с ограничениями, immutable-полями и прочими особенностями. Я хочу показать, что при необходимости такие ограничения можно обходить, а также познакомить вас с паттерном controller и наглядно продемонстрировать работу CNI-, CSI- и CRI-плагинов.
Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Просмотры 2.4K
Комментарии 1

Docker Everything Bagel: как развернуть локальный стек данных

Блог компании VK Big Data *Хранилища данных *
Перевод

Container au Havre pour les 500 ans by 0Lifea.

При разработке Open-source-проекта важно помогать пользователям и оставлять рекомендации. Но чтобы это делать, иногда нужно буквально «прочувствовать их боль»: воссоздать их рабочую среду, запустить тот же код и посмотреть на ту же ошибку. А учитывая сложность современных стеков данных, это бывает непросто.

Команда Kubernetes aaS VK Cloud Solutions перевела статью об инструменте Everything Bagel, который позволяет эффективнее работать с локальными стеками данных.
Читать дальше →
Всего голосов 14: ↑10 и ↓4 +6
Просмотры 1.1K
Комментарии 0

Альтернатива MapReduce при поиске в распределенной БД

Блог компании VK Администрирование баз данных *Tarantool *

Привет, меня зовут Сатбек, я работаю в команде Tarantool. Расскажу, как реализовать в шардированном кластере поиск, скорость которого не зависит от количества мастеров и объёма хранимых данных. Условно назову этот способ индексным слоем:

- Опишу общую схему построения поиска.

- Приведу пример реализации.

- Дам рекомендации по разработке.

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

Использовать будем БД Tarantool (версия ≥ 1.10), а также фреймворк для построения кластеров Tarantool-Cartridge (версия 2.7.0).

Для лучшего понимания желательно познакомиться с фреймворком Tarantool-Cartidge, модулем vshard, а также языком Lua, так как пример написан на нём.

Читать далее
Всего голосов 21: ↑21 и ↓0 +21
Просмотры 2.9K
Комментарии 3

Как устроены облачные сети и чем они отличаются от On-premise

Блог компании VK Системное администрирование *IT-инфраструктура *Облачные вычисления *Облачные сервисы

Cloud Station — Photoshop Art by PhaseRunner

Принципы построения облачных и On-premise-сетей различаются: в облаке много новых сетевых сущностей и подходов к построению инфраструктуры. Но новое не значит сложное.

Меня зовут Болат Кажкенов, я архитектор VK Cloud Solutions. В этой статье я расскажу, чем различаются облачные и On-premise-сети, какие преимущества и недостатки есть у каждого из решений. 

Если раньше вы не работали с облачными сетями и представляете их устройство только в общих чертах, то, надеюсь, моя статья поможет вам восполнить пробелы в знаниях и проконсультировать коллег, если вдруг в вашей компании встанет вопрос о миграции в облако. Все примеры я буду показывать на нашей облачной платформе — VK Cloud Solutions.
Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Просмотры 4K
Комментарии 0

Как в PayPal разработали Dione — Open-source-библиотеку индексирования данных для HDFS и Spark

Блог компании VK Big Data *Хранилища данных *Hadoop *
Перевод

Maksym Kaharlytsky on Unsplash

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

Чтобы этого избежать, в PayPal разработали новую Open-source-библиотеку, которая позволяет быстрее выполнять многострочные и однострочные выборки из больших данных. Во время работы над библиотекой они создали новый формат хранения индексов Avro B-Tree и для пользователей Spark реализовали API на Scala и Python.
Читать дальше →
Всего голосов 17: ↑16 и ↓1 +15
Просмотры 1.2K
Комментарии 1

Восприятие цвета в интерфейсе: почему мы видим его по-разному

Блог компании VK Интерфейсы *Графический дизайн *Дизайн

Про инклюзивность в интерфейсах и то, как дизайнеру учесть особенности цветового зрения.

Привет! Меня зовут Николай Комиссаров, я руковожу командой дизайна Пульса (pulse.mail.ru) и медиапроектов в VK, а также занимаюсь социальными проектами компании. 

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

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

Читать далее
Всего голосов 19: ↑19 и ↓0 +19
Просмотры 3.1K
Комментарии 2

Kubernetes Resource Model (KRM), или YAML всему голова

Блог компании VK IT-инфраструктура *DevOps *Облачные сервисы Kubernetes *

Connections by GrahamSym.

YAML (YAML Ain't Markup Language) — язык сериализации данных, который обычно применяется в файлах конфигурации, используемых в Kubernetes, Docker, Ansible и многих продуктах. Сейчас этот инструмент незаслуженно недооценен, многие просто не понимают пользы YAML для Kubernetes.

Меня зовут Дмитрий Евдокимов, я основатель и технический директор компании Лантри. Мы разрабатываем Observability-решения, помогающие клиентам повышать прозрачность происходящего на всех уровнях Kubernetes. И в том числе видеть, как компоненты работают и взаимодействуют между собой. 

Я расскажу, как YAML может упростить управление системами и автоматизацию большинства процессов, чтобы Kubernetes был удобной рабочей системой не только для DevOps и SRE, но и для всех ИТ-специалистов. 

Статья написана на основе моего выступления на VK Kubernetes Conference — вы можете посмотреть его в записи
Читать дальше →
Всего голосов 22: ↑21 и ↓1 +20
Просмотры 1.7K
Комментарии 0

Репликация с нуля за 5 простых шагов (невозможна)

Блог компании VK Алгоритмы *Хранение данных *Tarantool *
Меня зовут Сергей Петренко, я работаю в команде кластерных технологий Tarantool. В прошлом году я рассказывал о том, как в Tarantool появилась синхронная репликация и поддержка автоматических выборов лидера на основе Raft. Теперь предлагаю погрузиться во «внутренности» репликации в Tarantool. Я расскажу, как устроена репликация, по какой логике она работает и почему самые очевидные решения не всегда самые оптимальные.

Если вы давно хотели углубиться в эту тему и разобраться в устройстве репликации на живом примере, то эта статья для вас.
Читать дальше →
Всего голосов 32: ↑32 и ↓0 +32
Просмотры 4.4K
Комментарии 2

Как безопасно завершить работу пода в Kubernetes: разбираемся с graceful shutdown и zero downtime деплоймент

Блог компании VK Облачные вычисления *DevOps *Облачные сервисы Kubernetes *
Перевод

Landing deck by maciejkuciara

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

Команда Kubernetes aaS VK Cloud Solutions перевела статью о том, как безопасно завершить работу пода.

Основные термины из статьи:

Graceful shutdown — предсказуемое окончание работы системы, когда все запущенные процессы корректно завершают работу без потери данных или негативного пользовательского опыта.

Zero downtime deploy — нулевой простой во время развертывания новой версии приложения. Пользователь не заметит его недоступности.

Понятная схема, которая показывает, что происходит в кластере при удалении пода (PDF).
Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Просмотры 4.9K
Комментарии 3

Чек-лист по безопасности контейнеров

Блог компании VK Информационная безопасность *DevOps *Облачные сервисы Kubernetes *
Перевод

Fortress of the Arch by JeremyPaillotin

Команда разработки Kubernetes aaS VK Cloud Solutions перевела чек-лист по безопасности контейнеров, составленный на основе выступления Лиз Райс на конференции GOTOpia Europe 2020. Чек-лист проясняет специфику некоторых наиболее вероятных уязвимостей и помогает их избежать.

1. Отделили ли вы сборки от продуктового кластера?


Сначала вы наверняка будете создавать образы контейнеров при помощи того или иного конвейера CI/CD. Это может быть служба хостинга или, скорее, self-hosted-решение, если мы говорим о корпоративном Kubernetes. 

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

Помните: если вы запустили Docker-файл, то в нем можно выполнять любой произвольный код. То есть любой, кто меняет код в ваших Docker-файлах, может запускать в них что угодно. Поэтому всегда проверяйте, что Docker-файлы может редактировать только команда, которой вы доверяете. Иначе есть риск, что кто-то воспользуется уязвимостью ядра и получит несанкционированный доступ к продакшен-приложениям.
Читать дальше →
Всего голосов 22: ↑20 и ↓2 +18
Просмотры 7.7K
Комментарии 2

Как подружить Git с приложением на Webpack+React

Блог компании VK JavaScript *Git *

Иногда бывает полезно отображать некоторую информацию из Git-репозитория прямо в приложении. В статье мы воспользуемся преимуществом встроенной в NodeJS функции execSync и будем показывать в приложении три версии мастер-ветки.

Читать далее
Всего голосов 22: ↑22 и ↓0 +22
Просмотры 2.9K
Комментарии 5

Container image: доставить это немедленно

Блог компании VK DevOps *Облачные сервисы Kubernetes *


Привет, меня зовут Дмитрий Светляков, я руководитель группы эксплуатации облачной платформы ВКонтакте. Занимаюсь администрированием 12 лет, и более 6 из них — контейнерными технологиями.

В рунете мало информации о том, как ускорить доставку container image. Надеюсь, наш опыт поможет администраторам больших контейнерных инсталляций ускорить доставку образов на конечные узлы, организовать альтернативный источник их получения и сделать этот процесс отказоустойчивым. 
Читать дальше →
Всего голосов 28: ↑26 и ↓2 +24
Просмотры 7.4K
Комментарии 10

Проектирование кластеров Kubernetes: как выбрать оптимальную стратегию автомасштабирования

Блог компании VK Облачные вычисления *DevOps *Облачные сервисы Kubernetes *
Перевод

Pyramids of Egypt by acrosstars22

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

Команда Kubernetes aaS VK Cloud Solutions перевела статью о том, как задавать размеры узлов кластера, настраивать горизонтальное и кластерное автомасштабирование и выполнять избыточное резервирование ресурсов под кластер для ускорения масштабирования.
Читать дальше →
Всего голосов 27: ↑26 и ↓1 +25
Просмотры 4.8K
Комментарии 2

Все дороги ведут в геймдев: истории о том, как люди приходят в индустрию из других областей

Блог компании VK Блог компании Pixonic Блог компании MY.GAMES Разработка игр *Карьера в IT-индустрии

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

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

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

Мы опросили нескольких ребят из наших студий и узнали, как складывалась их жизнь до того, как они пришли в геймдев, как это произошло, и что они могут посоветовать тем, кто пока только начинает думать о том, не попробовать ли себя в разработке игр. Туториалы, мануалы, самостоятельное изучение движков, гейм-джемы и модостроение — а как насчет старта карьеры совсем без портфолио? 

Обо всем этом — читайте ниже.

Читать далее
Всего голосов 26: ↑25 и ↓1 +24
Просмотры 11K
Комментарии 3

Как работать с Minikube: рекомендации и полезные советы

Блог компании VK Системное администрирование *DevOps *Kubernetes *
Перевод

Kube Earth by Anarki3000

Minikube — популярное решение для запуска локального кластера Kubernetes на macOS, Linux и Windows. Несмотря на большой набор функций и кроссплатформенную поддержку, Minikube всё же отличается от полнофункционального кластера Kubernetes.

Часто это сбивает с толку разработчиков и новых пользователей Kubernetes, которым нужно протестировать приложение в локальной среде. Команда Kubernetes aaS VK Cloud Solutions перевела статью о том, как наладить беспроблемную работу с Minikube.
Читать дальше →
Всего голосов 33: ↑32 и ↓1 +31
Просмотры 8.7K
Комментарии 2

Информация

Дата основания
Местоположение
Россия
Сайт
vk.com
Численность
5 001–10 000 человек
Дата регистрации
Представитель
Анастасия Гутор