Same reproducibility is important in building and deploying our software releases.
We use Jenkins as well as Gitlab-CI for our Continuous Integration activities. These CI systems allow us to run the same exact build to the target environment and skip all manual interaction from deployment.
We have also started to test using Docker containers as our build environments. Docker provides full isolation between projects and allows us to have a PHP based web service, tools written in Go and Django based backends built on same servers without them ever noticing each other, all due to container isolation.
No more weird bugs in the build system due to system package updates or mismatching versions, each project can be built in it’s own custom made container.