Make it highly available and redundant. Power, cooling, networking, hardware, and software redundancies are needed.
Make it immutable. Change and mutable state will create maintenance. Implement functional programming, if you write software.
Monitor it and make it self-restart. Somebody already mentioned watchdogs, for hardware.
Make it ultra secure. No outside networking?
Program finite state machines....
If you imply a "hardware and software" solution, these points sound like you need redundant hardware and Erlang/OTP. Take a peek at OTP and the Erlang-based languages (Erlang, Elixir, Joxa, and LFE).
At least with redundant power, cooling, hardware, and Erlang/OTP (Elixir/OTP, etc.,) you gain the ability to do all of these things.
With Erlang/OTP, you can achieve very high uptimes, and if you design it correctly, you do have the ability to hot-patch running code, if you do have to (rarely) perform maintenance.
While you're at it, you also get distributed programming, concurrency, and parallelism, for free, with Erlang/OTP. This, in and of itself, can "reduce maintenance."