It depends on what you mean, what your goals are, what you are trying to build, etc.<p>"No maintenance whatsoever?" I doubt it. Things break, get old, go obsolete, are insecure, and wear out.<p>Perhaps, you should worry about "nines of uptime" or "fixed requirements" or something along those lines.<p>Simplicity is first. The more complex, the more maintenance.
"Everything Should Be Made as Simple as Possible, But Not Simpler" - <a href="http://quoteinvestigator.com/2011/05/13/einstein-simple/" rel="nofollow">http://quoteinvestigator.com/2011/05/13/einstein-simple/</a><p>"No moving parts."<p>Make it highly available and redundant. Power, cooling, networking, hardware, and software redundancies are needed.<p>Make it immutable. Change and mutable state will create maintenance. Implement functional programming, if you write software.<p>Monitor it and make it self-restart. Somebody already mentioned watchdogs, for hardware.<p>Make it ultra secure. No outside networking?<p>Program finite state machines....<p>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).<p>At least with redundant power, cooling, hardware, and Erlang/OTP (Elixir/OTP, etc.,) you gain the ability to do all of these things.<p>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.<p>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."<p>See <a href="https://pragprog.com/articles/erlang" rel="nofollow">https://pragprog.com/articles/erlang</a> and <a href="http://stackoverflow.com/questions/8426897/erlangs-99-9999999-nine-nines-reliability" rel="nofollow">http://stackoverflow.com/questions/8426897/erlangs-99-999999...</a>