We use this solution to promote deployments to different environments. We have test, speaking, pre-production and production environments. We use it to manage post-deployment or pre-deployment hooks and to run automated tests immediately after deployment to validate that everything works as it should.
The rollback feature has been most valuable. We can write scripts from scratch. Octopus maintains an independent package for every deployment. The fact that we can rollback deployments to a previous package if something goes wrong has reduced our workload. The access control allows us to divide complex levels of access control which has been a powerful feature for us.
This solution could be improved by making it easier to divide variables in YAML file or JSON files.
We have been using this solution since 2018.
It is a scalable solution.
Prior to using Octopus, we used Jenkins. We moved to Octopus because it is easy to use for our DevOps engineers.
The initial setup is straightforward and for a simple use case, takes one to two days.
Before deployment, I would advise getting the necessary processes ready before using the CI/CD flows provided by Octopus. In the course of setting up Octopus, you need to have a rollback script and scripts that handle the customization of Docker. Once these things are in place, it makes the setup faster.
Depending on the load, we run a cluster multiple server deployment because as the number of engineers increases and the number of deployments increases, it can slow down the system.
I would rate this solution a seven out of ten because it has served our use case very well.