4 ms·
This kind of discussion seems irrelevant once you move to the immutable deployment model. A new deployment means a new server that the load balancer switches to
by gregwebs 12y ago
This kind of discussion seems irrelevant once you move to the immutable deployment model. A new deployment means a new server that the load balancer switches to. Discard the old server. Obviously this doesn't work as well if you are not on the cloud or otherwise not operating in a cloud-friendly (don't write to the filesystem unless it is something like ceph) way. But I have no idea why people are still updating cloud servers instead of replacing them.
- cwp 12y agoYes and no. It's true that immutable servers work around the flaws in puppet et al. However, nix still still really useful even when you have immutable servers. Once the components of an app are described as nix packages you have a lot of flexibility in working with them: • deploy to a local sandbox for development • deploy to virtualbox instances for end-to-end testing • deploy to cloud instances for testing or production ..all from the same package descriptions. I've found it really valuable to have a precisely-defined and exactly reproducible environment for my code, whether in development, testing or production.
- nXqd 12y agodeploy to sandbox, virtualbox o cloud instance is just a small change of ip address in Ansible. This is convenient, but in my point of view it's not really important. The way nixOS provisions new system is great, there is no doubt about that. But the process of making an immutable system to me, it's a bit tricky. In nixOS, for now you cannot debug a provisioned system without doing it "properly". And it takes time. It would be great if nixOS has debug mode for nix package manager, I think it's not so hard. For Ansible (and etc ..), you can debug and note it down, then change the playbook, destroy the old one and up new one. It may cost the same time.
- gfxmonk 12y agoDiscarding the old server and replacing it with a new one is a very brute force way of dealing with the problem. That's not to say it's bad (it will obviously work exactly as advertised), but I don't see it working well for me. In particular, I want something with a quick turnaround. I very frequently deploy to a virtualbox VM during development. With NixOS this often takes <10 seconds, and that still feels slow. I cannot imagine that you can do immutable deployment anywhere near as quickly or conveniently (but I'd be excited if you can tell me I'm wrong).