3 ms·
Building a _runnable_ system is yet another ability, though. This may not apply to you specifically, but - for example - think about: - clear error messages (w
by muxator 5y ago
Building a _runnable_ system is yet another ability, though. This may not apply to you specifically, but - for example - think about:
- clear error messages (with the actual data that caused it, minus privacy-sensitive information)
- possibility of reloading configuration without having to restart the whole application (configure-once-at-construction-time is not enough; not every application is a web application with a php-like lifecycle)
- atomic check pointing and restoring of long running operations, without leaving a trail of partially truncatd temporary files
- security: you do not know how to write secure software until someone hacks your software in an unexpected way. This includes knowing how actual infrastructure configuration affects the running software (symlinks, permissions, capabilities)
- performance: unless "scale" a software means blindly increasing the number of replicas, there are so many architectural lessons to be learned studying flame graphs of actually running software that it is hard to imagine to acquire those expertise without making your hands dirty. At that point, it is even possible that your software works so well it no longer needs so much hardware
- klysm 5y agoI think dynamic reconfiguration leads to less runnable software - make everything as immutable as possible and it’s easy to reason about.
- muxator 5y agoThis is indeed true in many cases, but not always. If your application is a client-side GUI you may not want to restart it on reconfiguration. This applies to other things as well: think about having to restart your reverse proxy/load balancer each time you add a new route, or rebooting your OS each time you reconfigure a systemd unit, or reinitializing your embedded HW because something changes. The possible incarnations of SW are very much varied, and not everything can be solved in the same way.
- klysm 5y agoAgreed about those cases, but we're talking about running software which I took as running services on a server somewhere.