3 ms·
Speaking to NixOps in practicular, I've used quite a bit at previous jobs, and still use it for my personal stuff. It's very good and convenient (if you alread
by GlennS 6y ago
Speaking to NixOps in practicular, I've used quite a bit at previous jobs, and still use it for my personal stuff.
It's very good and convenient (if you already know Nix), but it doesn't have a lot of maintainers so it's missing a lot of features compared to Terraform.
For a lot of people these features don't matter, but at companies over a certain size they're probably be considered table stakes:
* Not really a good story out of the box for teams, because the state file is just an SQLite database on your computer. Terraform has all sorts of helpful options for where to store its state file. There was some work in progress to improve this on NixOps last time I looked.
* Doesn't support AWS load balancers. There is support for Azure load balancers though, so maybe this will come in the future? You can setup a load balancer separately and point it at your NixOps deployed instance, but meh.
* Doesn't support AWS ECS/Fargate, which is a shame because that would be an excellent combination (building a customized NixOS docker image is very easy and space-efficient).
* Doesn't support authenticating with temporarily assumed AWS roles. AWS "best practice" encourages using these.
On the other hand, it does have one feature that Terraform doesn't: you can very easily build and deploy your code at the same time as your infrastructure. Whether it's actually a good idea to do so is up for debate, but it's certainly convenient.
It's also usually a bit faster than Terraform I find.