1. Define your deployment process once
Your deployment process tells Octopus how your application will be deployed. It's made of high-level steps that run against groups of deployment targets (virtual machines, Kubernetes namespaces, and more).
The deployment process editor gives you access to over 450 automation step templates that cover a range of technologies and infrastructure, including .NET, Java, Docker, Kubernetes, Tomcat, JBoss, Terraform, Pulumi, database deployments, monitoring solutions, and firewalls. Octopus also includes steps for Slack and email notifications, and can pause deployments for humans to intervene. This allows you to keep everybody informed about the status and pull the right people into the process when they’re needed.
Octopus supports advanced deployment patterns, including rolling, blue-green, canary, and multi-tenancy to support your deployment strategy. This makes it possible to gradually roll out releases, test new features with a subset of your user base, and deploy customer-specific versions of your apps.
2. Configure environments & variables
Variables in Octopus let you use the same deployment process across your environments without hardcoding configuration settings into your process. Octopus can store passwords and other secrets so they can be used in your processes but remain secure and uncompromised.
During deployments, Octopus automatically replaces values in your configuration files - no scripting needed.
Variable values can be scoped to one or many environments, or even to individual targets, steps in your process, or tenants in a multi-tenant application. Variables support filters so the output is exactly what’s needed.
Variables can be shared between projects, deployment processes, and the operations runbooks that keep your software running, giving your team a single source of truth.
3. Deploy and promote with confidence
Octopus understands how real software teams work. Most releases get deployed to dev or test environments, and some get promoted further - eventually into production, when the time is right.
- Enable self-service dev & test deployments, but limit access to production deployments
- Guarantee that a release has been tested in a test environment before it's promoted to production
- Prevent a release from being promoted if a bug is discovered
- Require approvals before or after a deployment
- Wait for a human to perform a task that needs to be done manually
Octopus brings the deployment logs into a single central view, even as deployment steps run in parallel, so you'll always know what's happening.
Deploy just about anything without scripting. Send Slack notifications, notify monitoring tools of a deployment, upload files to your CDN, run a SQL script – Octopus probably has a deployment step for it. View the full list of templates in the community library.
Automate routine and emergency runbooks
Octopus creates a central location for teams to manage, control, audit, schedule, and execute runbooks. You can see when a runbook was last executed, you can see any changes to the runbook, and you can run the same runbook against different environments. Team members can easily find a runbook and click a big green button to run it. Everyone can see the output from the last run and whether it succeeded or not.
Runbook automation helps teams to automate recovery processes and execute them against their infrastructure. Restart web servers on Windows or Linux, recreate infrastructure, reset caches, clean up files, or anything you can automate in your favorite scripting language.
Any team member with permission can execute the runbook for fast incident recovery without requiring unfettered access to the infrastructure, and a detailed audit log helps meet your compliance needs.
System administrators and operations teams are often overwhelmed with emails, Slack messages, and help desk tickets asking them to fix problems or perform specific tasks. This is compounded by the increasing complexity of IT environments (Kubernetes, microservices, and more) as well as security and compliance requirements.
Runbook automation helps teams to reduce this burden by automating the most common tasks so teams can run them themselves. Self-service operations enable end-users, development teams, and support staff to independently execute tasks to save time, and it enables operations teams to work on strategic projects instead of busywork.
You want to guarantee that what you tested last week is the same thing that you're deploying to production today. You don't want to recompile or resolve dependencies in between that, as it introduces risk.
You deploy to dev & test more often than production. By reusing the same deployment process between environments, and treating differences as exceptions rather than the rule, production deployments are far more likely to succeed.
Try, try again
Most build/CI servers follow the "fail early, fail fast principle". For deployments, you want the opposite! If something happens during a production deployment, you want to keep going and do the best you can, or ask for a human to intervene.
Many DevOps tools today assume everyone on your team has coding skills. The high-level deployment steps in Octopus and the friendly user experience means everybody can understand how the deployment works and even contribute to it, without needing to become YAML experts.
Everything in Octopus is designed to help minimize downtime as much as possible during a deployment. Use advanced deployment patterns like blue-green, canary or rolling deployments to keep downtime to a minimum. In single-server environments, Octopus tries to do as much as can be done ahead of time, to keep the maintenance window as short as possible.
The opinions and built-in functionality in Octopus are designed to make you productive, but they might not work for everyone. We've built plenty of escape hatches, from options to change the default behaviors, to running custom scripts in your deployment process, to a comprehensive API that does everything the UI can do.
Cross platform & secure
The Tentacle agent is available for Windows or Linux. All communication happens over TLS, and authentication happens using client and server certificates, establishing a two-way trust relationship. Alternatively, Octopus speaks fluent SSH.
Push or pull
Tentacle can be set up either in listening mode (like SSH or PowerShell remoting), or polling mode (like RabbitMQ or Jenkins build agents). This gives you full control when it comes to firewalls and how Octopus interacts within your network.
Remote delta compression for faster deployments
Delta compression speeds up the package acquisition phase of your deployments, especially when the limiting factor is transfer bandwidth. Instead of pushing complete packages to remote machines, Octopus can usually just send a small patch, without you needing to do anything different in your build process.
Proxies and advanced network topologies
Octopus and Tentacle communicate over HTTPS, and can navigate proxy servers. That makes it possible to use Octopus across DMZ's, or to set up proxy servers as a jump box into a private network. If there's a way to get bits between networks, Octopus and Tentacle can usually find some way to navigate it.
of responses in 2 hours or less
We're here when you need us!
Get friendly, world-class support from a team of experts near you at no additional cost. Our team is located in the United States, United Kingdom, and Australia, and you'll nearly always get a response within two business hours.
Ready to get started?
Download Octopus Deploy Server, or create a free instance of Octopus Cloud. Our getting started guides will walk you through everything required to deploy your first application.
Build a tutorial for your stack
Octopus integrates with your existing source control system and build server, and takes care of all of the DevOps automation that happens after a build completes.