История разработчиков коммерческой системы видеосвязи Video Union, путь 2013 — 2022
В 2022 году существенно вырос спрос на отечественный софт, в первую очередь заменяющий зарубежные решения. Вопрос замены ПО до сих пор остро стоит во многих компаниях и государственных структурах, особенно после ухода из России зарубежных вендоров и организаций, предоставляющих удобные сервисы для коммуникации. В сегодняшнем интервью поговорим с Сергеем Выборным @serg52 — одним из основателей системы видеоконференций Video Union и одним из совладельцев этого проекта. Video Union стал одним из вариантов на замену популярных в России сервисов Zoom и Microsoft Teams, постепенно прекращающих бизнес в РФ. Сергей расскажет историю сервиса, интересные и неочевидные моменты развития проекта и как на Video Union повлияла ситуация в мире.
Как начиналась работа над проектом?
В конце 2013 года программными продуктами видеосвязи было не удивить. Рынок переполняли зарубежные решения, но у нас всё равно было желание создать продукт и вывести его на рынок. После совещания приступили к написанию софта. Выбор языка пал на С++, что наложило фактор низкой скорости. Работа команды давала успех, в середине 2014 года выпустили предварительный релиз 0.3v. Если в цифрах, то клиентское приложение было готово на 40%, а сервер — на 25%. К концу 2014 года выпустили релиз 0.8v, способный совершать видеозвонки.
Когда и почему поняли, что делаете то что надо, что вы на верном пути?
Мы поняли, что на верном пути, только когда продукт начали покупать. Каждая команда идёт по своему пути развития. Часто на рынок выходят предложения на условно готовых решениях Electron + WebRTC. Их можно сделать в очень короткие сроки. Таких систем только в России больше полусотни, но наша команда пошла сложной дорогой и делает продукт практически с нуля.
Какие проблемные этапы в работе можете вспомнить?
Работа на энтузиазме — сложная затея. 2015 год начался уходом одного разработчика из трёх и релизом 1.0v. С 2016 по 2019 года снизились темпы работы, разработка велась в основном над устранением ошибок.
2020 год шокировал своими изоляциями из-за пандемии коронавируса. Команда укомплектовалась четырьмя разработчиками, оперативно выпустили новый релиз 1.4v, закупили рекламы и стали ждать вал клиентов. Некоторый результат 2020 год показал, но, к сожалению, мы не добились резкого взлёта. Финансовый результат за год ушёл на зарплату и рекламу, а команда в конце года ушла в другие проекты.
2021 год стал годом сложных решений. В начале года нами было принято решение о:
создании бренда Video Union;
старте разработки собственного фреймворка;
старте разработки с нуля клиентских приложений на собственном фреймворке;
пересмотре цен.
Фактически мы перезапустили проект, два года плодотворной работы дают свой результат.
Можете рассказать об откровенных ошибках на разных этапах развития проекта?
Все ошибки за такой промежуток времени вспомнить сложно. Но есть одна забавная история. Ну как, в прошлом году было не смешно, но сейчас уже можно вспомнить с улыбкой. На старте проекта к нашему облаку подключилось >1000 пользователей. При очередном обновлении сервера клиентские приложения обновлялись и не устанавливали обновления. В итоге одним днём стерли всю наработанную базу.
Какие неочевидные моменты можете вспомнить?
Неочевидный момент замечен с корпоративными клиентами. У предприятий стоит единый шлюз. Как правило, он управляемый с массой ограничений, часто встречается прокси, собранное на непонятно чём и администрируемое непонятно кем. Ответ клиентов такой: «А мы не знаем, это настроили лет пять назад, так и работает». С нашей стороны было принято решение применить порт 5060 (SIP). Как правило, 100% шлюзов пускает его напрямую, в том числе и прокси.
Вопрос для хабраэкспертов. Расскажите о вашем продукте с технической стороны (на чём пишете, структура и прочие технические моменты). Настолько подробно, насколько можете.
Система реализована на языке C++ с использованием открытых библиотек, распространяемых под лицензиями BSD / Boost / Intel. Все библиотеки, кроме Intel Integrated Performance Primitives, доступны в виде исходного кода для исследования.
Сетевой обмен осуществляется по следующей схеме.
Каждый клиент устанавливает TCP-подключение к серверу, через которое обменивается управляющей информацией с сервером. Медиа-трафик по нему не передаётся. В нашем стоковом решении полезной нагрузкой этого канала связи является http (s) websocket сессия, в рамках которой передаются команды в формате json. Передача медиа-трафика (видео и звук) производится по UDP, полезной нагрузкой которого являются RTP/RTCP пакеты с зашифрованными симметричным шифром AES 256 ECB данными. Сервер не расшифровывает медиатрафик, а просто пересылает его в неизменном виде.
Приложения собираются статической линковкой со всеми библиотеками под Windows x86 и x64, под Linux частично динамической линковкой. Исполняемые файлы подписываются цифровой подписью издателя для защиты от модификации.
Для реализации пользовательского интерфейса клиентских приложений используется библиотека WUI. Это собственная разработка, использующая WinAPI, xcb, quartz.
Когда вышли в ноль или начали получать прибыль?
В 2015 году появился первый финансовый результат. Сервер к тому времени работал на windows и linux, клиентские приложения — аналогично. С 2016 по 2019 года выпущен промежуточный релиз 1.1v. Главный архитектор и разработчик в одном лице переключился на проект онлайн-касс. На конец 2019 года число коммерческих пользователей достигло 400 компаний, число бесплатных установок превысило 5 000.
Кто были первые заказчики? Как вы убеждали их попробовать использовать свою разработку, как получали фидбэк, за счёт чего потом наращивалась база юзеров?
Первые заказчики — суд в регионе и компания из Казахстана. Базу пользователей наращивали за счёт лёгкости интеграции, использования и конкурентной цены. Также всегда умели подбирать убедительные аргументы при выборе решения. Даже при условии, что у нас много оговорок по функционалу, наше решение покупают.
Какие именно оговорки по функционалу?
Ну, например, клиент под mac в разработке с лета этого года и будет готов только к февралю следующего. Также у нас нет мобильных клиентов, клиента в браузере webRTC и ещё многих полезных функций, которые мы делаем постепенно.
Я указал ранее, что можно взять зарубежные модули и слепить «российский» продукт. Electron + webRTC — это тот же Sber JAZZ, у «Яндекс Телемост», у которого внутри Jitsi, «Контур Talk», все эти решения, использующие webRTC, и так далее. Суть в том, что webRTC — это разработка корпорации Google. Хорошо работает на хромиуме от той же корпорации, то есть WebRTC — это встроенный в браузер клиент. Мы же пишем свой клиент, и это накладывает определённые задержки с проработкой совместимости и прочих моментов, к которым привыкли пользователи.
Какую работу проделали за 2022 год и с какими результатами вышли?
За год клиенты и сервер доработаны, сначала выпущен релиз 1.5, затем 1.6. Поймали первый хейт. Нам написали, «что наше приложение самое лучшее для чиновников, так как чиновник должен всегда страдать».
В мае 2022 полностью закончен переход на собственный фреймворк и выпущен релиз 2.0. В этом году с нами случилась история на тендере. Представьте, что вы автосалон, торгующий автомобилями завода ВАЗ. К вам обратился заказчик с вопросом приобретения автомобиля Lada Granta, цену возьмём условно — 500 тысяч рублей, это не сильно принципиально. Но есть момент — заказчик государственная компания, и нужно проводить торги. Заказчик готовит документацию, объявляет торги. Но происходит незадача, на торги выходит автосалон KIA и говорит, что за эти же деньги они готовы поставить автомобиль KIA RIO стоимостью 1,5 млн рублей. У заказчика радость, что они купили новенькую Kia Rio по цене Lada Granta. Мы были немного в удивлены от такой щедрости, когда аффилированная с Trueconf компания вышла на тендер с таким падением цены. Нас не огорчила эта ситуация, а наоборот, только взбодрила. Успели сходить с жалобой в ФАС, но даже при объективных нарушениях с стороны победителя мы не смогли выиграть. Это, конечно, шутка, но размер потерь завода при отмене тендера несоизмерим :)
Сухой остаток на 03 декабря 2022 года за всё время работы.
В git сделано 5 000 коммитов.
Потрачено больше 25 000 часов разработки.
Производительный клиент весом в 10 мб.
Сервер 50 мб (с учётом клиентов) потребляющий минимум ресурсов.
Упор разработки на оптимизацию видео, платформы клиентов и работу с интерфейсом.
Работаем дальше.
Как на вас повлияла СВО и последовавшие после её начала события?
И хорошо, и плохо. Вроде в душе все радуются, что Zoom, Teams и «Google Конференции» могут скоро прикрыть. А с другой стороны, мы понимаем, что в РФ нет решений с подобной инфраструктурой. Локально да, задачи решаются, глобально — нет.
Если говорить о заказах — да, есть кратное увеличение. С мая наблюдаем резкий рост интереса к нашему продукту. Причём отрабатывали крупные кейсы на 10 и 30 тысяч пользователей и больше. Могу отметить, что сфера образования сильно заинтересована в качественном продукте. В целом все приходят с желанием, чтобы было точь-в-точь как у того или иного бренда. Крайне сложно объяснять, что один в один не получится мгновенно. Многие просто не понимают, что создание продукта включает работу целой команды и не один год, и продукт пишется с нуля. А к продукту такого типа, если говорить, к примеру, о saas-решении, нужна ещё инфраструктура из геораспределённых серверов и широких каналов доступа, желательно объединённых между собой, об этом, как правило, простому пользователю неизвестно. Мы оценивали, сколько нужно на хорошую инфраструктуру, как у крупных зарубежных конкурентов. По нашим подсчетам — минимум 800 млн рублей для покрытия потребности в России с учётом обслуживания на 5 лет.
Судя по примеру с автомобилями, довольно сложно работать с госзаказчиками. Можете подробнее рассказать об этом?
Сектор госзакупок сам по себе сложный и непредсказуемый, в закупочной документации может быть всё что угодно. Тут в двух словах не расскажешь. В общем, зачастую намного больше проблем, часто проще отказаться.
Сколько сейчас человек работает в команде? Какие перспективы вы для себя видите?
Проектом занимается шесть человек. Команда работает в нескольких проектах, т.е все участники независимы. Все сотрудники из России, работают в удалённом формате. Если вдруг кто-то решит уехать за границу и работать из-за рубежа, это никак не помешает развитию проекта. С учётом примера про автомобиль, можно сказать, что мы двигаемся в правильном направлении.
Рассматриваете зарубежные рынки?
Да, рынок России не такой большой, как кажется. Клиентов много, глобально в сотни раз больше, чем в России. Работаем в направлении локализации сайта, это не так быстро. Рассматриваем любые рынки, где к РФ относятся нейтрально или положительно. Бизнес и санкции — это немного разные вещи.