I like this framing of physical and logical machines from NixOps docs:
NixOps specifications are modular, and this makes it easy to separate the parts that say what logical machines should do from where they should do it. For instance, the former might say that machine X should run a PostgreSQL database and machine Y should run an Apache web server, while the latter might state that X should be instantiated as an EC2 m1.large machine while Y should be instantiated as an m1.small. We could also have a second physical specification that says that X and Y should both be instantiated as VirtualBox VMs on the developer’s workstation. So the same logical specification can easily be deployed to different environments.
Right now I use hosts and traits to represent something similar but I'm not sure I'm sold on that naming yet.
I like this framing of physical and logical machines from NixOps docs:
Right now I use
hosts
andtraits
to represent something similar but I'm not sure I'm sold on that naming yet.