Deployment is a crucial consideration
Software deployment — the various processes involved in getting new software releases, patches and updates out to the target web, application and database servers — is an important part of software delivery. This is expected to be as seamless as possible for users (if not invisible), and is often required while the hosted system is in use and running.
Deployment is also part of scaling, ensuring the software is correctly installed when further servers or infrastructure is added to increase performance and availability, or when servers are replaced.
We strongly believe in scripting and automating the deployment process in every way possible, amongst our general ethos of automation and consistency. Deployment is often carried out under significant external pressure — for example rapid response requiring an urgent software change — or the need to scale quickly to meet new demand. It is important that the team have the ability to prepare and action a deployment with confidence that it can be installed seamlessly, and also quickly rolled back if needed, all happening in a consistent, planned manner regardless of whether key members are or are not present.
What is Octopus Deploy?
Octopus Deploy is a commercial offering specifically targeted at managing the software deployment process — the activities involved in dispatching software releases, patches and updates to the central web and application servers that host the web and enterprise applications that users access.
It automates the process, and tracks releases, versions, and history across all the different target environments, and provides clear management and visibility of a lifecycle path, for example, deploying each version release first to staging then to pre-release and finally to production.
Like an octopus with various limbs, it reaches out to the various target servers and environments — where we have "Octopus Tentacles" (of course) — and it manages the installation process, with visibility of the process and outcome.
Octopus & your business
Deployment is about confidence and consistency, and Octopus is one of the tools we may use to help you with these in your application.
It helps enable that buzzword of continuous deployment (CD) — keeping your systems deployed in a more rapid cadence, reducing some of the fear factor involved in processing each deployment.
It automates the process, making it faster for software to be deployed, but most importantly reduces potential for manual deployment mistakes, while providing detailed visibility of what software was deployed, where and when.
For fast-paced, agile organisations this allows new code to be shipped more frequently, responsive changes to be put in place, and allows for a much tighter feedback loop, reducing the friction from concept to reality.
- It is a streamlined deployment tool suitable for many deployment scenarios
- Can track releases very easily across multiple software projects at a time
- Works amazing when paired with TeamCity Build to provide comprehensive CI/CD pipelines
- Can run automated scripts and customise deployment steps
- It can easily scale across multiple build servers, environments, and multiple tenants
- Really easy to manage, track and securely roll out deployments even for very complex projects
- Can easily roll out patch deployments, rollbacks, deployments on multiple targets at the same time, create standard deployment cycles etc.
What does it mean for us?
At Canary, we use Octopus to maintain, track, properly version and deploy server-based software applications.
- Successful deployments each time
- It is flexible with support for projects of any complexity
- Octopus provides for immediate visibility of deployed software versions