4 марта страна голосовала под камерами. На 91 тысяче избирательных участков установили по две веб-камеры, подключили их к интернету и вывели трансляцию на единый портал. Заявку на проект сформулировали в конце декабря – на развёртывание оставалось чуть больше двух месяцев. Для инженера-инфраструктурщика это интереснее политики: задача редкого масштаба, выполненная в жёстком дедлайне.
Что пришлось построить
Камеры – лишь видимая часть. За ними стоит цепочка: канал связи до участка, серверы приёма потоков, хранилище записей и фронтенд трансляции. На многих участках интернета не было вообще – операторы тянули линии, ставили спутниковые комплекты там, где провода не дойти, поднимали 3G-каналы. По разным участкам пропускная способность отличалась в разы, поэтому потоки кодировали в нескольких качествах и резали битрейт под реальный канал.
Серверная часть распределена по нескольким дата-центрам в разных регионах. Это не прихоть, а требование к отказоустойчивости: один ЦОД не примет потоки от 182 тысяч камер и не отдаст их зрителям. Нагрузка на хранение колоссальная – записи с каждого участка держали для последующего разбора жалоб, и объёмы измеряются петабайтами.
Где была настоящая нагрузка
Запись потоков – задача предсказуемая: поток пишется на диск с постоянной скоростью. Настоящее испытание – раздача трансляции зрителям в день голосования. Сотни тысяч человек одновременно открывали портал, переключались между участками, обновляли страницы. Это классический пик трафика на чтение, и здесь работают те же приёмы, что мы разбирали на примере высоконагруженных госуслуг: кэширование, CDN для отдачи видеосегментов, горизонтальное масштабирование фронтенда под нагрузку.
Связать разнородные подсистемы – приём потоков, каталог участков, авторизацию, статистику – напрямую «каждый с каждым» в таком масштабе невозможно. Десятки сервисов от разных подрядчиков по дедлайну сводятся только через общую шину интеграции, а не точечными интеграциями. Почему шина обмена выигрывает у point-to-point, мы писали отдельно – здесь это правило проявилось в чистом виде: каждый новый поставщик данных подключался к шине, а не плодил пары интеграций.
Что показал проект
Главный вывод – масштаб решает не оборудование, а проектирование и логистика. Камеры дешёвые и однотипные. Сложность в том, чтобы за два месяца спланировать каналы для десятков тысяч точек, согласовать работу операторов связи, развернуть распределённые ЦОДы и протестировать всё под реальной нагрузкой. Любая ошибка масштабируется на 91 тысячу участков сразу.
Второй урок – про эксплуатацию. Систему нельзя «включить и забыть». В день голосования нужен мониторинг каждого потока, дежурные смены, процедуры замены оборудования на местах. Камера на участке выходит из строя так же буднично, как голосовой помощник теряет связь с сервером – разница лишь в цене сбоя.
Для бизнеса и госсектора здесь практическая мораль: проекты с тысячами распределённых точек – это в первую очередь инфраструктура и интеграция, а не «коробка» с камерами. Если вы планируете подобную географически распределённую систему, начинайте с архитектуры каналов, ЦОДов и шины обмена: от расчёта нагрузки до развёртывания и сопровождения.