Pull to refresh
14
Karma
0.1
Rating
Иван Кудрявцев @ivankudryavtsev

Техдиректор

Атака на Nvidia DeepStream с помощью некорректного фрейма видео в формате H264

High performance *Information Security *GPGPU *Machine learning *Artificial Intelligence

Nvidia DeepStream - широко известный в узких кругах инструмент для инференса на нейронных сетях и другой высокопроизводительной обработки видео-потоков в реальном времени на оборудовании от Nvidia.

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

Читать далее
Total votes 6: ↑6 and ↓0 +6
Views 4K
Comments 3

Сравнение криптографической производительности популярных ARM-процессоров для DIY и Edge-устройств, плюс Xeon E-2224

Cloud computing *Development for Linux *Distributed systems *CPU

В одном из наших проектов используется Edge-модуль, работающий на широком наборе оборудования c процессором ARM, типа Raspberry Pi. Данное устройство используется для того, чтобы пересылать медиа-данные посредством зашифрованного канала на сервер.

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

Читать далее
Total votes 4: ↑2 and ↓2 0
Views 2.6K
Comments 1

Настройка отказоустойчивого кластера Kubernetes на серверах с публичной и приватной сетью с помощью Kubeadm

Configuring Linux *Network technologies *Server Administration *Microservices *Kubernetes *
Tutorial

У меня возникла задача настроить отказоустойчивый Bare Metal кластер для комплексного приложения, в связи с чем и возникла данная статья. Сразу хочу сказать, что не являюсь экспертом в K8S, однако имею опыт развертывания продуктовых кластеров DC/OS (экосистемы, основанной на Apache Mesos).

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

Читать далее
Total votes 13: ↑12 and ↓1 +11
Views 15K
Comments 9

Разработка AI-продукта на основе машинного зрения. Промежуточная ретроспектива: мысли, боль, страдания

Project management *Product Management *Artificial Intelligence

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


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

Читать дальше →
Total votes 3: ↑2 and ↓1 +1
Views 3.1K
Comments 7

Короткая заметка по инциденту с перегревом RAID-контроллера LSI в сервере в холодном ЦОДе

Hosting System administration *

TL;DR; настройка режима работы системы охлаждения сервера Supermicro Optimal не обеспечивает стабильность работы LSI-контроллера MegaRAID 9361-8i в холодном ЦОД-е.


Мы стараемся не использовать аппаратные контроллеры RAID, но есть у нас один клиент, который предпочитает именно конфигурации c LSI MegaRAID. Сегодня мы столкнулись с перегревом карты MegaRAID 9361-8i в связи с тем, что платформа не чувствовала перегрева, а RAID-контроллер его чувствовал.

Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Views 7.6K
Comments 64

Детекция изменений в сцене и сохранение видеофрагментов в формате h264 на Raspberry Pi без декодирования

Working with video *Development for Raspberry Pi *


Добрый день. В этой статье я расскажу, далеко не в первый раз, как на Raspberry Pi 3 и более слабых платформах одновременно детектировать движение и сохранять/транслировать видео в формате H264. Я поделюсь с такими же новичками в мире Raspberry Pi, как и я, о том, что узнал сам за несколько дней, пока разбирался в способах решения задачи. Говорить буду о работе с камерой Raspberry Pi простым человеческим языком.

Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Views 6.4K
Comments 18

Вы решили присоединиться к разработке open source продукта. К чему готовиться?

Abnormal programming *Open source *Programming *

Здравствуйте, написать эту статью меня побудил мой опыт участия в open-source проекте Apache Cloudstack, куда я периодически отправляю фичи и багфиксы. Меня нельзя назвать активным контрибьютором, поскольку я вношу вклад лишь время от времени, когда мне что-то требуется от продукта или я нахожу баг, от которого моему кластеру "зудит".


Опыт, описанный в этой статье — сугубо личный, причем характерный именно для продукта Apache Cloudstack.

Читать дальше →
Total votes 36: ↑36 and ↓0 +36
Views 14K
Comments 12

Эксперимент проверки применимости графовой СУБД JanusGraph для решения задачи поиска подходящих путей

Programming *System Analysis and Design *Database Administration *


Всем привет. Мы разрабатываем продукт для анализа оффлайн-трафика. В проекте есть задача, связанная со статистическим анализом путей движения посетителей по областям.


В рамках этой задачи пользователи могут задавать системе запросы следующего вида:


  • сколько посетителей прошло из области "A" в область "Б";
  • сколько посетителей прошло из области "A" в область "Б" через область "C", а затем через область "Д";
  • сколько времени заняло прохождение посетителя определенного типа из области "А" в область "Б".

и еще ряд подобных аналитических запросов.


Движение посетителя по областям представляет собой направленный граф. Почитав интернеты, я обнаружил, что графовые СУБД используются и для аналитических отчетов. У меня появилось желание посмотреть как будут справляться с подобными запросами графовые СУБД (TL;DR; плохо).

Читать дальше →
Total votes 9: ↑7 and ↓2 +5
Views 2.5K
Comments 11

Много свободной RAM, NVMe Intel P4500 и все люто тормозит — история о неудачном добавлении раздела подкачки

Configuring Linux *System administration *Server Administration *

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


Преамбула


Мы эксплуатируем облако средних размеров, которое строим на типовых серверах следующего конфига — 32 ядра, 256 GB RAM и NVMe накопитель PCI-E Intel P4500 размером 4TB. Нам очень нравится эта конфигурация, поскольку она позволяет не думать о недостатке IO, обеспечив корректное ограничение на уровне типов инстансов (экземпляров) VM. Поскольку NVMe Intel P4500 обладает впечатляющей производительностью, мы можем одновременно обеспечить как полное предоставление IOPS машинам, так и резервное копирование хранилища на сервер резервных копий с нулевым IOWAIT.

Читать дальше →
Total votes 30: ↑30 and ↓0 +30
Views 19K
Comments 31

Open360: как мы начали с разработки модели премирования и сделали IT-систему для внутреннего HR

Personnel Management *


TL;DR: рассказываю о задаче оценки вклада сотрудника в общий результат и новой open source системе проведения круговой оценки сотрудников, разработанной в нашей компании, на базе метода оценки 360 градусов.


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


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


  • разработчик ⟶ руководитель проекта;
  • сотрудник ⟶ топ-менеджер;
  • участник проекта ⟶ клиент.

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


В конце статьи будет обзор опубликованной на GitHub системы, которая может использоваться и вашей компанией, если вы планируете использовать похожие решения.

Total votes 11: ↑9 and ↓2 +7
Views 6K
Comments 16

Обзор возможностей библиотеки Apache Curator для Apache Zookeeper

High performance *Open source *Java *Scala *Concurrent computing *

По долгу работы мне приходится сталкиваться с проектированием и разработкой распределенных приложений. Такие приложения часто используют различные средства межпроцессного взаимодействия для организации взаимодействия компонентов. Особые сложности возникают в процессе реализации алгоритмов, обрабатывающих связанные данные распределенно. Для поддержки таких задач используются специализированные системы распределенной координации. Самым популярным и широко используемым продуктом является Apache Zookeeper.

Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Views 14K
Comments 14

Решение проблемы ограничения PTRACE_ATTACH в контейнерах Docker

Configuring Linux *System administration *Virtualization *Server Administration *DevOps *


В последние два года мы широко используем Docker как для разработки, так и для выполнения систем в производственной среде, и все текущие продукты для наших клиентов разрабатываются именно с учетом данной системы контейнеризации. Стоит отметить, что Docker достаточно сильно изменяется от версии к версии, добавляя как дополнительные возможности (Swarm, Compose), так и дополнительные инструменты повышения защищенности и контроля приложений.

Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Views 9.1K
Comments 0

Интеграция Apache CloudStack со сторонними системами. Подписка на события с помощью Apache Kafka

System administration *Virtualization *Cloud computing *Server Administration *DevOps *


В данной статье рассматривается подход к интеграции Apache CloudStack (ACS) со сторонними системами посредством экспорта событий в брокер очередей сообщений Apache Kafka.


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

Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Views 4.6K
Comments 2

Настройка отказоустойчивого управляющего сервера Apache CloudStack с использованием репликации MariaDB Galera

System administration *Virtualization *Cloud computing *Server Administration *DevOps *


После моих первой и второй статей об Apache CloudStack ко мне обратился пользователь с вопросом о том, как организовать высокодоступный управляющий сервер ACS с использованием Galera. Ранее я не использовал такую топологию развертывания, но по этому поводу решил попробовать выполнить такую настройку.


В статье описывается метод развертывания отказоустойчивой конфигурации управляющих серверов Apache CloudStack совместно с мультимастер-кластером MariaDB (Galera).

Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Views 5.8K
Comments 0

Знакомьтесь, Apache BookKeeper — реплицируемый сервис журналов

High performance *Open source *Java *Big Data *Distributed systems *


По роду своей деятельности мне достаточно часто приходится участвовать в проектах, в которых создаются высокодоступные, высокопроизводительные системы для различных рынков — реклама, финтех, сервисы классов SaaS, PaaS. В таких системах применяется вполне устоявшийся набор архитектур и компонентов, которые позволяют эффективно обеспечить соответствие продукта требованиям, например, lambda-архитектура для поточной обработки данных, масштабируемый микросервисный дизайн программного обеспечения, ориентированный на горизонтальное масштабирование, noSQL СУБД (Redis, Aerospike, Cassandra, MongoDB), брокеры сообщений (Kafka, RabbitMQ), распределенные серверы координации и обнаружения (Apache Zookeeper, Consul). Такие базовые инфраструктурные блоки чаще всего позволяют успешно решить большую часть задач и команда разработки не сталкивается с задачами разработки компонентов среднего уровня (middleware), которые, в свою очередь, будут использованы бизнес-ориентированной частью разрабатываемой системы.

Читать дальше →
Total votes 3: ↑3 and ↓0 +3
Views 4.4K
Comments 1

Применение LibVirt API, InfluxDB и Grafana для сбора и визуализации статистики выполнения VM

Virtualization *Server Administration *DevOps *

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


В целом, в связи с более широкими требованиями к систем визуального анализа информации и потребностями в части интеграции с источниками данных стали распространяться специализированные решения для ad-hoc анализа данных, такие как Kibana, Grafana и иные. Данные системы могут интегрироваться со специализированными хранилищами временных рядов данных, одним из которых является InfluxDB. Статья расскажет о готовом решении, распространяемом в виде образа Docker, использующем LibVirt API, Grafana и InfluxDB, предназначенном для сбора и анализа параметров исполняющихся VM для гипервизора KVM.

Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Views 9.9K
Comments 11

Резервное копирование томов LVM2 с защитой от перегрузок IO с использованием сигналов SIGSTOP, SIGCONT

System administration **nix *Server Administration *Backup *

Настройка резервного копирования уверенно занимает одно из важнейших мест в деятельности администратора. В зависимости от задач резервного копирования, типов приложений и вида данных резервное копирование может осуществляться с помощью различных инструментов, таких как rsync, duplicity, rdiff-backup, bacula и других, коих существует огромное множество.


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

Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Views 4.5K
Comments 23

Использование утилит timeout & strace для мониторинга неактивности пользователя для разрыва соединения Shellinabox

Python *Development for Linux *

Недавно я занимался тем, что исследовал какие существуют решения для реализации web-ssh прокси-сервера. Суть задачи заключается в том, чтобы дать пользователям возможность соединяться с произвольным ssh-сервером посредством web-интерфейса. Обычно, решения web-ssh предназначены для соединения с сервером, на котором они развернуты, но в рамках моей задачи мне хотелось, чтобы пользователь мог указать IP, порт, имя и пароль пользователя (или ключ) и выполнить соединение с произвольным сервером. С ходу найти подобного решения мне не удалось.


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

Однако, для открытого пакета shellinabox я обнаружил решение на блоге на немецком языке, которое я и решил довести до нужного мне уровня. В итоге, получился симпатичный контейнер Docker, который можно найти как на GitHub так и на Dockerhub, который решает все необходимые задачи.


Но, статья не об этом, а о сопутствующем коде на Python, который мне пришлось написать. Дело в том, что мне не нравилось, что если пользователь открыл web ssh и куда-то ушел, то сессия будет висеть бесконечно, что на мой взгляд неприемлемо.

Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Views 3.9K
Comments 0

Публичное облако в стиле AWS EC2 на базе Apache CloudStack с использованием гипервизора KVM и хранилища NFS

Virtualization *Cloud computing *Server Administration *DevOps *

logo

Apache CloudStack представляет собой универсальную платформу управления средами выполнения виртуальных машин (часто такие продукты именуются “панель управления облаком VPS”). Использование Apache CloudStack (далее, ACS) дает администратору возможность развернуть облако с требуемыми сервисами в короткий срок, а после развертывания эффективно управлять облаком в течение всего жизненного цикла. В рамках данной статьи даются рекомендации по дизайну облака, который может использоваться на практике и подходит для большинства провайдеров публичных облаков, планирующих построение публичных облачных сред малых и средних размеров, обладающих максимальной простотой администрирования и не требующих специальных знаний для отладки и обнаружения проблем. Статья не является пошаговым руководством настройки Apache CloudStack.


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

Облако с описанным в статье дизайном успешно используется для оказания коммерческих услуг по аренде VPS. В рамках облака развернуто хранилище на 16 ТБ, состоящее полностью из SSD накопителей Samsung Pro 850 1TB, организованное в программный RAID6, 176 ядер Xeon E5-2670, 768 GB RAM, сеть на 256 публичных адресов.
Читать дальше →
Total votes 3: ↑3 and ↓0 +3
Views 9.6K
Comments 5

Три года успешного предоставления услуг публичного сервиса аренды виртуальных машин с Apache CloudStack

System administration *IT Infrastructure *Virtualization *
Sandbox
В середине 2014 года мы в приняли решение о необходимости переноса услуг публичного сервиса аренды виртуальных машин (далее сервис VPS) с платформы OpenQRM, которая была выбрана на тот момент без должного анализа потребностей клиентов и не отвечала требованиям как к управляемости так и к философии поведения (надо сказать, что разработчики OpenQRM вообще странно подошли к разработке, создав продукт из кучи bash-скриптов, кода на PHP и кучи костылей). В общем, наши пользователи были несчастливы, сервис был так себе и приносил скорее убытки, чем прибыль. Необходимо отметить, что наша дочерняя компания, которая как раз оказывает операторские услуги — небольшая региональная компания и мы не рассматривали создание большого сервиса VPS в тот момент, а основной задачей виделось переход на стабильный и надежный продукт, который бы отвечал следующим требованиям:

  • простота в развертывании и настройке для нужд сервиса VPS;
  • готовность к использованию и достаточно широкая база пользователей;
  • простота в диагностике ошибок;
  • удобный пользовательский интерфейс;
  • API для управления виртуальными машинами.

Размер инфраструктуры не планировался большим — на тот момент мы рассчитывали использовать 512 — 1024 ГБ RAM, 128 — 256 ядер Xeon E5-2670, 10 — 20 ТБ хранилища, 200+ виртуальных машин. Сервис предполагал предоставление виртуальных машин с непосредственным присвоением публичных IPv4, о поддержке IPv6 речь не шла. В качестве технологии виртуализации мы ориентировались на KVM. Хранилище — классическое NFSv3.
Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Views 4.3K
Comments 18

Information

Rating
2,787-th
Location
Россия
Date of birth
Registered
Activity