At present, we use a network of bare-metal servers, which are managed by Chef, with a custom deployment system which deploys build artefacts from CI as defined in Chef. It's tidy, smart and quick – but it does require a fair bit of infrastructure.
We're in the middle of piloting a switch to Nomad (https://www.hashicorp.com/products/nomad), replacing much of the custom deployment system with it, though still running on bare-metal servers. It's an absolutely fabulous bit of software that really hits the use-cases for an organisation of our size, so I'm excited to see how that works out.
For side-projects where things like HA aren't much of a concern, I've settled on some minimal shell scripts to deploy tarballs over SSH. It's actually pretty neat – CI builds a project, and runs a small script to copy the results to a server and restart the services. It's always worth considering the simple solutions if you don't need the more advanced features!
We're in the middle of piloting a switch to Nomad (https://www.hashicorp.com/products/nomad), replacing much of the custom deployment system with it, though still running on bare-metal servers. It's an absolutely fabulous bit of software that really hits the use-cases for an organisation of our size, so I'm excited to see how that works out.
For side-projects where things like HA aren't much of a concern, I've settled on some minimal shell scripts to deploy tarballs over SSH. It's actually pretty neat – CI builds a project, and runs a small script to copy the results to a server and restart the services. It's always worth considering the simple solutions if you don't need the more advanced features!