Перейти к содержанию

·Промышленный мониторинг

Выкат по воздуху, у которого есть пауза и откат

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

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

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

Пауза как первоклассная операция

Не «отмена», а именно пауза: часть узлов уже на новой версии, часть на старой, состояние зафиксировано и не двигается.

Это нужно, потому что проблема обнаруживается не сразу. Первые десять узлов обновились нормально, на одиннадцатом появилось странное поведение — и надо остановиться, не откатывая уже сделанное, чтобы посмотреть.

Выкат без паузы предлагает выбор из двух плохих вариантов: продолжать, надеясь, что показалось, или откатывать всё.

Откат как проверенный путь, а не теоретическая возможность

Откат должен быть тем же механизмом, что и накат, а не отдельной аварийной процедурой.

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

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

Волнами, а не сразу

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

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

Это ровно то же, что делается при обновлении сервисов, с одной разницей: здесь «не в работе» определяется производственным расписанием, а не долей трафика.

Что делает выкат невозможным

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

Отсюда требование: выкат должен переживать недоступность узла без потери состояния. Узел, который был офлайн во время обновления, получает его позже, а не выпадает из учёта.

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

Почему рядом стоит цифровой двойник

Потому что перед выкатом хочется знать, что произойдёт.

Модель площадки с ролями и политиками доступа позволяет проверить намерение до исполнения: какие узлы затронуты, что они наблюдают, что произойдёт при их недоступности.

И она же держит опасные операции в карантине. Наблюдение и управление различаются по правам: право обновить прошивку наблюдающего узла и право отправить команду в оборудование — не одно и то же право.

Чего мы не делаем

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

Граница проходит там же, где и везде в этом направлении: мы читаем состояние существующего производства и не вмешиваемся в него без отдельного, явно разрешённого пути.