У нас было 200 тысяч камер, 100 тысяч ноутбуков и два с половиной месяца на работу

История команды, которая придумала видеонаблюдение на российских выборах.

У нас было 200 тысяч камер, 100 тысяч ноутбуков и два с половиной месяца на работу
У нас было 200 тысяч камер, 100 тысяч ноутбуков и два с половиной месяца на работу

Предыстория: почему разработчики «Зомбоящика» взялись за выборы

Всё началось с компании Undev. Это скорее был стартап, в котором занимались видеопроектами, в том числе захватом спутникового и эфирного сигналов. В 2008 году это было в новинку — в те времена не существовало «Нетфликсов», и мы строили один из первых сервисов, где можно было посмотреть передачи и сериалы в записи.

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

<p>Стартовый экран сервиса в 2009 году — скриншот из Web Archive</p>

Стартовый экран сервиса в 2009 году — скриншот из Web Archive

Несмотря на небольшой состав — около тридцати человек, — нам удалось собрать кадровые «сливки», это была одна из сильнейших команд Ruby-разработчиков в Москве.

Когда мы наигрались и задумались о монетизации, появился проект «Телемаркер». Мы подумали, что пора использовать записанный телеэфир, и в компании появились операторы — группа людей, которые просматривали все новости и размечали их.

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

Этим быстро заинтересовались крупные компании, медиа и думские фракции. Проект начал зарабатывать и вышел на пик своей востребованности в конце нулевых. Основная сложность была с содержанием штата операторов: нужно было два–три десятка человек, чтобы отсматривать все каналы.

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

Подготовка: офис с массажистами вместо Таиланда

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

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

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

Календарь с праздниками и дедлайном
Календарь с праздниками и дедлайном

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

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

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

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

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

Две тысячи бригад устанавливали технику на избирательные участки. Ноутбук закрывался и прятался в железном ящике, а камеры подключались к нему по 5- и 10-метровым USB-проводам.

<p>Инструкция по подключению USB-удлинителей для установщиков</p>

Инструкция по подключению USB-удлинителей для установщиков

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

Технические детали: нужно было выбрать дешёвый ноутбук, но при этом достаточно мощный для захвата видео с двух камер — особое внимание обращали на процессоры и USB-шины.

У нас было 200 тысяч камер, 100 тысяч ноутбуков и два с половиной месяца на работу

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

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

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

По тем временам система отработала на 10/10. До нас такого ещё никто не делал.

Нюансы: чёрные экраны и дискотеки

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

<p> Инженеры «Ростелекома» придумали гениальную металлическую пластину, которая крепит камеру к стене</p>

Инженеры «Ростелекома» придумали гениальную металлическую пластину, которая крепит камеру к стене

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

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

Причин на это было много:

  • Сбой настроек ноутбука.
  • Неверно указан участок.
  • Неправильно установлено системное время.
  • Плохой интернет-канал.
  • Баги видеобэкенда.

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

Большинство проблем удалось решить в последний момент, когда мы обновили видеобэкенд. Остальную порцию проблем мы решили с помощью удалённого доступа к ноутбукам — выполняли диагностику, правили настройки и перезагружались.

<p>Основной экран, который мы считаем шедевральной работой</p>

Основной экран, который мы считаем шедевральной работой

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

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

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

В итоге, пиковая нагрузка составила полмиллиона человек, а сайт всё пережил нормально.

Объединение с «Ростелекомом»

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

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

Это был интересный стартап с большими инвестициями, но он не выстрелил. Компания оказалась в кризисе, начались сокращения и в последний момент нас купил «Ростелеком».

Затем мы переименовались в «Рестрим» и даже сохранили автономию внутри большой корпорации. Тогда «Ростелеком» инвестировал в пилотные проекты корпоративного и частного видеонаблюдения.

У нас было 200 тысяч камер, 100 тысяч ноутбуков и два с половиной месяца на работу

Подготовка к выборам 2018 года: выкинули провода

Главное изменение по сравнению с выборами шестилетней давности — использование только IP-камер. Для них не нужен ноутбук и провода — камеры сами обрабатывают и передают трансляцию. Их мы протестировали три года назад на региональных выборах.

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

У нас было 200 тысяч камер, 100 тысяч ноутбуков и два с половиной месяца на работу

Отдельным вызовом стала разработка собственной прошивки для IP-камеры. Для производителей камер это достаточно «интимное» дело, они предпочитают не посвящать посторонних, даже таких больших, как «Ростелеком», в технические детали.

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

В момент, когда что-то начало получаться, «Ростелеком» объявил о закупке ста тысяч камер. К этому моменту у нас уже был прототип прошивки, который работал на полностью нашем коде. В условиях закупки было оговорено, что производитель поставит нашу прошивку в свои камеры прямо на заводе, и это можно считать большим успехом.

Тем не менее, мы сильно рисковали не успеть: надо было наладить производство камер, доставить их в Россию и развести по регионам. Времени критически мало — всего несколько месяцев, а запасного плана нет.

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

— Ребята, это что?

— Это то же самое, мы чуть-чуть поменяли.

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

Статистика на последних выборах

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

В этот раз мы показали в два раза меньше участков, но были выбраны самые массовые — в сумме это 80-85% избирателей. Это тоже повлияло на стоимость проекта, которая на порядок рухнула по сравнению с выборами 2012 года. Ещё сыграло свою роль то, что связь уже протянута, дата-центры оборудованы и не нужно закупать сто тысяч ноутбуков.

Статистика по выборам выглядит так:

У нас было 200 тысяч камер, 100 тысяч ноутбуков и два с половиной месяца на работу

Нервозность не пропала даже во время последних выборов. Мы дежурили в посменном режиме, кто-то совсем не спал, кто-то снимал комнату в ближайшей гостинице. Но с 2012 года удалось накопить богатый опыт — мы хорошо понимаем, как всё устроено и каких ошибок ожидать.

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

Куда это всё идёт

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

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

1919
39 комментариев

Видеонаблюдение за российскими выборами по пользе эквивалентно стрельбе из лука по невидимым драконам

33
Ответить

Лучше и не скажешь, в точку!

Ответить

А как же порьба с коррупцией?

Ответить

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

22
Ответить

они получили его очевидным образом: за 2,5 месяца до выборов они были единственным тандемом в стране, которые смогли бы такое провернуть.

5
Ответить

Откройте же всем тайну, каким позорным образом выиграли они этот античеловечный тендер?

3
Ответить

Чего минусишь? Вбросил — продолжай рассказ.

2
Ответить