note k8s vs nix rollback/introspection
This commit is contained in:
parent
797291a4aa
commit
9c3736612f
1 changed files with 2 additions and 1 deletions
|
|
@ -70,7 +70,7 @@ From this, we can observe that **the NixOS module system is not inherently slow*
|
|||
|
||||
### Append-based Reconfiguration
|
||||
|
||||
Current scalable systems, such as Kubernetes'-based container orchestrations[^6], are capable of directly modifying configuration parameters of their target nodes at runtime. These executions are fast, but sacrifice both the _formal introspectability_ of using a structured language such as Nix, and the _seamless rollback and redeployment_ endemic to Nix's reproducibility.
|
||||
Current scalable systems, such as Kubernetes'-based container orchestrations[^6], are capable of directly modifying configuration parameters of their target nodes at runtime. These executions are fast, but sacrifice both the _formal introspectability_ of using a structured language such as Nix, and the _seamless rollback and redeployment_ endemic to Nix's reproducibility[^13].
|
||||
|
||||
In our system, we propose implementing _append-based reconfiguration_, where individual segments of trivial Nix configuration are appended to an existing configuration. For example, to adjust the number of threads used by a theoretical server, we might adjust the value of its `server_threads` configuration parameter using the following _appended_ Nix module:
|
||||
|
||||
|
|
@ -267,3 +267,4 @@ Approaches considered, but ultimately discarded, include:
|
|||
[^10]: https://mynixos.com/nixpkgs/option/system.etc.overlay.mutable
|
||||
[^11]: Control system stability theory; as exemplified by considering response delay as loss of phase margin: https://en.wikipedia.org/wiki/Phase_margin
|
||||
[^12]: Mastodon uses a simple environment variable present in its service to adjust the number of web-server processes and threads: https://github.com/NixOS/nixpkgs/blob/nixos-25.11/nixos/modules/services/web-apps/mastodon.nix#L28
|
||||
[^13]: Users with complex Kubernetes stacks will likely object that tools exist to make "introspection" and "rollback" possible; but these rely on an online, authenticated server connection to etcd for introspection and use the underlying version control software for rollback. These neither provide the granular introspectibility offered by Nix, nor Nix's ability concretely re-construct a system's state during rollback.
|
||||
|
|
|
|||
Loadingâ¦
Add table
Add a link
Reference in a new issue