Парк, который настраивается по сети
Сервер в диспетчерской и клиент на каждой машине. Настройка систем, доставка и обновление ПО, запуск приложений, контроль состояния — командой, а не поездкой к технике. Узлы, куда клиент установить нельзя, сервер ведёт напрямую.
Что меняется, когда парк подключён
Пока машин единицы, всё держится на выездах и на памяти инженера. На десятках машин это перестаёт работать: версии расходятся, конфигурации живут в чьей-то голове, о неисправности узнают от водителя.
Обновление бортового ПО
Раньше новая версия — это выезд к каждой машине, и половина парка месяцами остаётся на старой.
Стало сервер выкладывает дистрибутив, машины забирают его по сети и обновляются сами.
Ввод машины в парк
Раньше настройка по чек-листу вручную — и каждая единица техники в итоге чуть-чуть своя.
Стало клиент находит сервер и получает готовую конфигурацию для своего типа техники.
Реакция на проблему
Раньше о вставшем приложении или перегреве узнают от водителя, а причину ищут на месте.
Стало состояние систем и процессов видно в диспетчерской, перезапуск — командой.
Как устроено
Два приложения и канал сообщений между ними. Канал работает поверх обычной локальной сети и не зависит от того, какая операционная система стоит на машине — и стоит ли вообще.
Клиент попадает на машину
Устанавливается вручную при подготовке техники или разворачивается с сервера: тот передаёт исполняемый файл на узел по SSH и запускает его в первый раз.
Клиент сам находит сервер
Сервер объявляет себя в сети широковещательным сообщением со всем, что нужно для подключения. Клиент отвечает и встаёт на связь — прописывать адреса на каждой машине не нужно.
Сервер отдаёт рабочую конфигурацию
Клиент опознаётся типом техники и своим уникальным идентификатором: по типу сервер понимает, какую конфигурацию отдать, по идентификатору — адресует команды конкретной машине.
Дальше всё делается командами
Обновить программу, поменять настройку, перезапустить приложение, перезагрузить машину, собрать состояние — из диспетчерской, без выезда к технике.
Клиент на машине
Основную работу выполняет клиент — он знает, как устроена конкретная система. Это не монолитный агент, а набор модулей: каждый закрывает свою часть работы и вызывается сервером отдельно.
Настройка системы
Параметры сетевых адаптеров, IP и DHCP, разрешения на видеовыходах, обновление пакетов. Клиент выполняет и произвольную команду с параметрами, и набор готовых зарегистрированных операций — результат возвращается на сервер.
Доставка и обновление ПО
Загружает дистрибутивы и нужные библиотеки, распаковывает, раскладывает типовые конфигурации, обновляет рабочие программы. Файлы забираются с сервера по локальной сети или напрямую из интернета, если машине это разрешено.
Контроль приложений
Список запущенных процессов и их потребление ресурсов, запуск, остановка и перезапуск, постановка в автозапуск — и для собственных программ, и для системных служб.
Мониторинг состояния
Температуры основных компонентов, загрузка процессора, память, диск, сеть, состояние конкретных процессов. Данные снимаются готовыми экспортёрами — значит, их можно забрать не только в наш интерфейс.
Питание и канал связи
Выключение и перезагрузка по команде. Транспортный модуль держит связь с сервером: находит его в сети, ведёт обмен командами и телеметрией и отдельным путём настраивает прикладные программы на борту.
Сервер в диспетчерской
Сервер решает, что и когда должно произойти на машинах, и хранит всё, что им нужно скачать.
- Управление клиентами. Прежде всего это командный сервер: рассылает инструкции — что нужно сделать на конкретной машине прямо сейчас — и держит конфигурации всего парка.
- REST API. Бекенд для интерфейса диспетчера и для интеграции с системами заказчика.
- Раздача артефактов. Единая точка загрузки дистрибутивов, прошивок и конфигураций: наружу за обновлениями ходит только сервер, машины забирают файлы по локальной сети.
- Оборудование без клиента. Прямое взаимодействие с узлами, на которые клиент установить нельзя, — вплоть до заливки прошивок.
- Первичное развёртывание. Доставка и запуск клиента на новом узле по SSH — машина подключается к парку с нулевого состояния.
- Состояние парка в одном месте. Телеметрия со всех клиентов собирается на сервере и отдаётся в интерфейс или во внешнюю систему мониторинга.
Узлы без операционной системы
На борту всегда есть железо, куда клиентское приложение просто некуда установить: модули ввода-вывода с протоколом DCON, микроконтроллерные платы, наши собственные контроллеры. Такие узлы не остаются в стороне от парка — их ведёт сервер напрямую: находит, настраивает, заливает прошивку.
Для собственных устройств прошивка собирается особым образом — так, чтобы устройство умело обновлять само себя, не завися от программатора и физического доступа к плате.
Платы ввода-выводаРазвёртывание и интеграция
Платформа рассчитана на реальный парк, а не на демо-стенд: закрытые сети без интернета, разношёрстные машины, техника, до которой далеко ехать.
Где живёт сервер
В облаке или на сервере заказчика — в том числе в закрытом контуре без выхода в интернет. Обновления в такой контур попадают через сервер, а не через каждую машину по отдельности.
Что нужно на машине
Одно клиентское приложение. Оно не требует установленной среды исполнения и работает на Windows, Linux и macOS — на бортовом компьютере, на промышленном ПК или на рабочей станции.
Связь с тем, что уже есть
Состояние парка отдаётся через API, а с машин снимается экспортёрами с интерфейсом Prometheus — телеметрия может уходить в уже используемую систему мониторинга.
Сухой остаток
Под ваш парк
Состав платформы подбирается под то, что реально стоит на машинах: какие приложения нужно обновлять, какое оборудование опрашивать, что должно быть видно диспетчеру. Мы сами разрабатываем и бортовую электронику, и софт к ней, поэтому доработка под конкретный парк — нормальный процесс, а не спецзаказ.
Обсудить проект