netmap2.0 Демо

Учёт каналов связи холдинга

Канал живёт в трёх реальностях. Учитывать надо все три.

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

Стенд на реальных объёмах: 40 площадок, 200 каналов, 1088 волокон.

SVC-0005 · 1 Гбит/с SVC-0006 · 1 Гбит/с · «резерв» общий участок трассы — оборвутся вместе

Порядок цветов волокна — тот же, что система присваивает жилам при вводе кабеля: синий, оранжевый, зелёный, коричневый, серый, белый, красный, чёрный, жёлтый, фиолетовый, розовый, бирюзовый.

01 Дубль

Два договора. Одна траншея.

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

В договоредве услуги, два оператора, две строки расхода
На схемедве линии между теми же точками
В моделиобе трассируются до одного участка RS — резерва нет, а платят за него оба года

Спуститься от договора до жилы нельзя, пока физика — картинка. Поэтому netmap моделирует её как данные: кабель, волокно, сварка, участок канализации. Дубль после этого — не находка инженера, а строка отчёта.

Избыточная закупка · демо-стенд

Каналов активно200
Расход в месяц26 278 000 ₽
Найдено дублирующих пар1
SVC-0005 · SVC-0006120 000 ₽/мес
Ложный резерв (общий риск)2 пары
Экономия за год1 440 000 ₽

02 Модель

Четыре графа, связанные насквозь

Ёмкость — число в битах, а не текст. Конец канала — строка таблицы, а не колонка, потому что трёхточечные каналы реальны. Муфта не обязана стоять на площадке, потому что она стоит в колодце.

L3Сервисный
Что куплено, у кого, за сколькодоговор, стоимость в месяц, роль в схеме защиты
serviceservice_endpointservice_pathcontractorg
L2Транспортный
Что технически светитсяпорт ↔ порт, ёмкость в бит/с рядом с единицей ввода
linkcapacity_bpscapacity_unit
L1Физический
Что лежит в землекабель с раскладкой «модуль × волокно», сварки, патчи, термирование
cablefiberequipmentportconnection
L0Инфраструктура
Где именно лежитканализация, грунт, опоры — общий риск чаще создаёт траншея, чем кабель
route_sectioncable_sectionsitespacerack

Трассировка L3 → L1 — рекурсивный обход в базе. Паспорт канала доводит маршрут до номера модуля, номера волокна в модуле и цвета оболочки.

03 Аналитика

Шесть вопросов, на которые отвечает запрос, а не совещание

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

R1

Избыточная закупка

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

выдаёт экономию в месяц по каждой паре

R2

Расходы

Сколько холдинг платит — в разрезе оператора, организации или площадки. Разрез обязателен: одно число не с чем сравнить.

выгрузка в XLSX, суммы числами

R3

Загруженность линков

Сколько ёмкости линка продано активными каналами и сколько осталось. Приостановленный канал перестаёт считаться проданным, но волокно держит.

свободное считает сервер, не браузер

R4

Общий ресурс риска

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

общие кабели и участки — списком

R5

Последствия аварии

Обрыв этого кабеля гасит эти каналы этих организаций на эту сумму. Запрос без отбора отклоняется: он ответил бы на незаданный вопрос всем холдингом.

по кабелю, участку или площадке

R6

Качество данных

Активный канал без договора, порт без линка, кабель без трассы, канал без маршрута. Аналитика врёт ровно настолько, насколько дырява модель.

показывает, чему верить нельзя

04 Интерфейс

Карта, схема разварки, паспорт

Три места, где физика перестаёт быть абстракцией: где трасса лежит, как в муфте сварены жилы и по какому именно волокну идёт проданный мегабит.

Карта трассы
УЗЕЛ-04 УЗЕЛ-21 МФ-11
Цвет линии — способ прокладки: канализация, грунт, опоры. Щелчок по участку показывает, чьи каналы по нему идут.
Схема разварки
CBL-0031 · М2CBL-0044 · М1 1/0/11/0/2 1/0/31/0/41/0/5 пучок пересечений = жилы перераспределены
Таблица читается, пока разварка регулярна. Перераспределённые жилы видно только рисунком — параллельные линии против пучка.
Паспорт канала
КабельМодульВолокноУчасток
CBL-00312синийRS-0142
CBL-00441зелёныйRS-0143
CBL-00441зелёныйRS-0151
CBL-00773жёлтыйRS-0166
CBL-00773жёлтыйRS-0170
CBL-00911оранжевыйRS-0188
От договора до жилы одним документом. Выгружается в XLSX — тем, кому его нести на совещание.

05 Устройство

Собран под закрытый контур

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

СерверGo 1.23, один статический бинарь · distroless, non-root
БазаPostgreSQL 16 + PostGIS · RLS на каждой таблице, default deny
ДоступНепрозрачный токен сессии в базе, argon2id · отзыв мгновенный, JWT нет
КонтрактOpenAPI 3.1 — источник правды · клиент и валидация генерируются из него
БраузерНи одного запроса к базе напрямую · React 19, TypeScript strict
МиграцииJob с advisory lock · чексумма, транзакция на файл, провал = провал Job
РазвёртываниеKubernetes, Helm · отдельные Deployment для API и веба
ДанныеСуточный дамп, хранение две недели · восстановление описано, не подразумевается

06 Демо

Стенд открыт. Данные настоящего размера.

40ПЛОЩАДОК
200КАНАЛОВ
1088ВОЛОКОН
365СВАРОК И ПАТЧЕЙ

Холдинг из девяти организаций, 124 кабеля, 236 участков трассы, 60 линков. Отчёты считаются по этим данным, а не по заготовленным ответам: дубль SVC-0005 / SVC-0006 находится там сам.

Демо открывается на странице входа. Учётные данные выдаются по запросу.