Everipedia Logo
Everipedia is now IQ.wiki - Join the IQ Brainlist and our Discord for early access to editing on the new platform and to participate in the beta testing.
Octopus Deploy

Octopus Deploy

Octopus Deploy is an automated software deployment and release management server. It is designed to simplify deployment of ASP.NET applications, Windows Services and databases. [2] [3]

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.

[4]

Octopus Deploy
Developer(s)Octopus Deploy Pty. Ltd.
Stable release3.3 / January 29, 2016; 5 months ago(2016-01-29)[1]
Operating systemWindows 7, Windows Server 2008 or later
TypeRelease management software
LicenseProprietary commercial software
Websiteoctopusdeploy.com

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]

Octopus is then designed to deploy this package, and promote it between environments.

For packaging applications, Octopus Deploy uses the NuGet package file format from Microsoft. [8] [9]

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:

  • Listening, in which the agent is a TCP listener and listens for connections from the Octopus Deploy server; [1] or,

  • Polling, in which the agent actively polls an Octopus Deploy server asking for jobs to do [1]

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.

[1]

Examples of a deployment process might be:

  1. Run a PowerShell script to stop an application server and back up a database

  2. Deploy an ASP.NET web application package, and update IIS

  3. 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.

Support for Linux deployments via a tentacle running on Mono was scheduled for version 2, [15] but was later rescheduled for version 3. [15] [1]

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.

[1]

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]

References

[1]
Citation Linken.wikipedia.orgThe original version of this page is from Wikipedia, you can edit the page right here on Everipedia.Text is available under the Creative Commons Attribution-ShareAlike License.Additional terms may apply.See everipedia.org/everipedia-terms for further details.Images/media credited individually (click the icon for details).
Jul 21, 2016, 6:08 PM
[2]
Citation Linkoctopus.com"Octopus Deploy 3.3"
Jul 21, 2016, 6:08 PM
[3]
Citation Linkblog.devopsguys.com"AUTOMATED RELEASE MANAGEMENT FOR.NETWITH OCTOPUSDEPLOY"
Jul 21, 2016, 6:08 PM
[4]
Citation Linkmindscapehq.com"Be a better developer: Octopus Deploy"
Jul 21, 2016, 6:08 PM
[5]
Citation Linkcodecomputerlove.com"Octopus Deploy"
Jul 21, 2016, 6:08 PM
[6]
Citation Linkblog.tomasjansson.com"Effective continuous deployment with TeamCity, Octopus Deploy and PowerShell"
Jul 21, 2016, 6:08 PM
[7]
Citation Linkdocs.octopusdeploy.com"Octopus in your delivery process"
Jul 21, 2016, 6:08 PM
[8]
Citation Linkbyronpate.com"Octopus Deploy 2.0 Review"
Jul 21, 2016, 6:08 PM
[9]
Citation Linkchris.eldredge.io"How the Motley Fool Uses Octopus Deploy"
Jul 21, 2016, 6:08 PM
[10]
Citation Linkdocs.octopusdeploy.com"Packaging applications"
Jul 21, 2016, 6:08 PM
[11]
Citation Linkbooks.google.co.inInstalling and Confguring a Tentacle
Jul 21, 2016, 6:08 PM
[12]
Citation Linkdocs.octopusdeploy.com"Listening Tentacles"
Jul 21, 2016, 6:09 PM
[13]
Citation Linkdocs.octopusdeploy.com"Polling Tentacles"
Jul 21, 2016, 6:09 PM
[14]
Citation Linkkeza.net"Build Status and Deploy Button with a Raspberry Pi, Octopus and CruiseControl.net"
Jul 21, 2016, 6:09 PM
[15]
Citation Linkgithub.com"Octopus Deploy Command Line Tools"
Jul 21, 2016, 6:09 PM
[16]
Citation Linkhelp.octopusdeploy.com"Linux deployments?"
Jul 21, 2016, 6:09 PM
[17]
Citation Linkoctopusdeploy.com"Roadmap and upcoming features"
Jul 21, 2016, 6:09 PM
[18]
Citation Linkpaulstovell.com"Convention-based HTTP API on top of Nancy (with documentation!)"
Jul 21, 2016, 6:09 PM
[19]
Citation Linkoctopusdeploy.com"Octopus 2.0 UI: Angular, Grunt and responsiveness"
Jul 21, 2016, 6:09 PM
[20]
Citation Linknuget.org"Octopus 2.0 UI: Angular, Grunt and responsiveness"
Jul 21, 2016, 6:09 PM