Octopus Deploy

Octopus Deploy

Developer(s) | Octopus Deploy Pty. Ltd. |
---|---|
Stable release | 3.3 / January 29, 2016; 5 months ago(2016-01-29)[1] |
Operating system | Windows 7, Windows Server 2008 or later |
Type | Release management software |
License | Proprietary commercial software |
Website | octopusdeploy |
Octopus Deploy is used to deploy applications securely to servers that are on-premises or in the cloud.
It has a web-based interface, which can be used to modify and execute deployments, and a dashboard that teams can use to view the status of deployments.
Developer(s) | Octopus Deploy Pty. Ltd. |
---|---|
Stable release | 3.3 / January 29, 2016; 5 months ago(2016-01-29)[1] |
Operating system | Windows 7, Windows Server 2008 or later |
Type | Release management software |
License | Proprietary commercial software |
Website | octopusdeploy |
Usage
In a typical installation, a team would commit code to their existing source control system. [5] A continuous integration server would then compile the code and run unit tests. The last step of the build process would be to bundle the binaries, content files and configuration files into a package that is ready to be deployed. [6] [7]
Architecture
To perform deployments to remote machines, Octopus relies on a software agent called Tentacle, which is a Windows service that runs on the machines that applications will be deployed to (web and application servers, for example). [1]
In order to communicate in different network configuration scenarios, the Tentacle agent can be installed in one of two modes:
In either configuration, Octopus uses an SSL connection with both client and server certificates. During installation a two-way trust relationship is established, ensuring that the Octopus server only sends commands to a Tentacle that it trusts, and that the Tentacle only accepts commands from an Octopus server that it trusts. [1]
Deployment orchestration
Users can define multiple environments, such as test, staging and production environments, and multiple projects that will be deployed.
Each project has a “deployment process” that specifies the steps that should be taken when deploying.
Examples of a deployment process might be:
Run a PowerShell script to stop an application server and back up a database
Deploy an ASP.NET web application package, and update IIS
Deploy and reconfigure a Windows Service package
Deployment processes can also include manual steps (approvals), which allow a deployment to pause for a human to intervene before the deployment continues.
Configuration management
To handle differences between environments, Octopus Deploy allows users to define “variables”, either as part of each project, or (as of Octopus 2.0) in “libraries” which are shared between projects.
Variable values can be scoped to environments; for example, a SQL database connection string might have different values depending on the environment being deployed to. Variables can also be marked as “sensitive”, which results in them being encrypted and removed from any log entries.
Rest API
Octopus Deploy 2.0 included a complete overhaul of the user interface (UI) and back end, making the application “API first”.
The Octopus Deploy server presents a REST API in which all functionality in the UI can be performed (this is built in C# using the Nancy web framework). [1] The UI itself is built using AngularJS, and all functionality is performed using that REST API. [1]
A C# client library is also available on NuGet for consumers of the REST API.
Octopus and Red Gate deployment manager
In July 2012, Red Gate purchased the rights to fork Octopus Deploy to use as a baseline for the product that would later become Red Gate Deployment Manager. [2] Red Gate Deployment Manager is based on the Octopus Deploy 1.0 architecture. Red Gate Deployment Manager was retired October 1, 2015. Octopus Deploy development continues. [2]