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

·Naasson Agro

Три Raspberry Pi и правило «работает без интернета»

Мозги контейнерной фермы — три одноплатника в тройном резервировании, в офлайн-первом режиме. Ферма продолжает работать при потере связи с внешним миром.

В серверной стойке технического контейнера стоят три Raspberry Pi 4. Не сервер, не промышленный контроллер, не облако — три одноплатника по цене хорошего смартфона, работающие в схеме с тройным резервированием.

Такое решение принято объяснять экономией. Экономия здесь побочный эффект; причина другая.

Офлайн-первый режим

Ферма продолжает работать при потере связи с внешним миром. Это не обещание доступности, а требование к архитектуре, из которого следует всё остальное.

Растение не умеет ждать восстановления канала. Полив, климат и фотопериод должны выполняться по расписанию независимо от того, доступен ли кто-то снаружи. Значит, вся логика, от которой зависит жизнь культуры, обязана жить на площадке — и решение о том, включить насос, не может требовать сетевого запроса.

Из этого требования вытекает выбор железа, а не наоборот. Если решения принимаются локально, то нужен не мощный узел с надёжным каналом, а несколько дешёвых узлов, которые переживут друг друга.

Почему три, а не два

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

Три узла позволяют выбрать большинством. Это старая и скучная схема, и она работает без арбитра со стороны — что как раз и требуется, потому что арбитр со стороны означает сеть, а сеть мы только что объявили ненадёжной.

Что это не решает

Тройное резервирование защищает от отказа узла. Оно не защищает от одинаковой ошибки на всех трёх узлах: если логика неверна, три копии повторят её единогласно и с полной уверенностью.

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

Отдельно про полевые узлы

Три Raspberry Pi — это надзорный уровень. Ими не управляются насосы напрямую. Каждый исполнительный узел фермы имеет собственный микроконтроллер, и у него своя логика безопасности.

Это разделение важнее, чем кажется. Если надзорный уровень целиком отключить, узлы не начнут делать глупости — они продолжат держать последнее безопасное состояние. Такая структура называется деградацией, и она устроена так, чтобы каждый следующий отказ отнимал возможности, а не добавлял риска.

Что даёт удешевление

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

Мы не выдаём это за инженерную доблесть. Просто когда требование «работает без интернета» стоит на первом месте, дальше почти все решения выводятся из него сами.