3 ms·
> There were plenty of ways to automate deployments for .Net over a decade ago. There's a difference between just pure "automate deployments" and what Octopus
by paranoidrobot 7y ago
> There were plenty of ways to automate deployments for .Net over a decade ago.
There's a difference between just pure "automate deployments" and what Octopus does.
While sure there's been tools like NAnt around forever, back when Octopus came out* there wasn't a good easy to use workflow tool for deployment orchestration.
Sure, you could use TeamCity/Bamboo/TFS to deploy your code, but it was really focussed on the CI side of things, and the process of building a pipeline was often quite a pain to manage, with them not really understanding 'environments'.
You could, and in many cases often did - tell your CI system to deploy direct to a dev/staging environment - but it really wasn't intended for production environments. If you wanted to orchestrate deploying to more than one machine, it was a pain, and doing even tens of machines required that you built a ton of tooling to do this.
Octopus comes along and gives us the ability to:
- Define environments (ci, dev, staging, preprod, production, etc)
- Define a common deployment workflow, with branching/conditionals based on the environment/machine
- Define a release workflow, for how a release needed to progress through environments (eg: a release MUST pass deployment on a preprod environment before it can be deployed to production)
- Define a release which comprises one or more artifacts (particularly useful if you have multiple parts to your applications - such as a website as well as a service)
- Give a good overview of what's deployed where.
- Easily roll back a release for an environment - just pick up the previous good release, and re-deploy it to that environment.
While sure I could have achieved all of that, the reality was that few people would put all the effort in to building it themselves, AND making it reliable.
* = I recall Stovell talking/writing that the whole reason he built Octopus in the first place was because he kept running into the same issues over and over when he was at a consulting firm. There just wasn't any tooling, free or commercial, that would do these things nicely.
- scarface74 7y agoAll of this can be done with TFS and agents running on the deployment machines. This is the earliest article I could find about using TFS for deployments from 2010. http://geekswithblogs.net/TarunArora/archive/2013/02/23/continuous-integration-automated-deployments-and-release-management.aspx http://geekswithblogs.net/TarunArora/archive/2013/02/23/cont... Don’t get me wrong, while for the most part, I hate dealing with “pets” and I was hired partially to kill all the servers we could and go all in on AWS’s native hosted toolings, Octopus Deploy is a joy to use even just to deploy CloudFormation templates where the actually code is either in S3 (lambda) or ECR (Docker) not to mention deploying to our remaining pets. Just the ability to use Octopus Deploy’s library sets that are scoped to environments that can be referenced in Config files and templates is worth paying for. On the other hand, I am on a mission to kill Jenkins and replace it with AWS CodeBuild - Serverles builds using a Docker Containers.