What is release management?
We think about release management as how teams formalize their rules around software releases. For any non-trivial application, a software team typically has many “pre-production” environments, such as dev & test environments. “Release management” refers to how builds of the software flow between these environments, and includes decisions such as:
- Scheduling: When is it OK to deploy a release? What kind of downtime window are we allowed, if any?
- Approvals: Who needs to be notified about - and approve - releases before they're deployed to production?
- Promotion: Before we can deploy to production, what dev, test, or staging environments must we deploy to?
- Repeatability: How do we know that what we tested in test is exactly what we're about to deploy to production?
- Permissions: Who's allowed to deploy to specific environments?
- Auditing: What records do we keep about our deployments?
- Visibility: How can all the people who care, easily see where our releases are at?
- Traceability: Can we see - end-to-end - why a change happened, and when it ended up in production?
Agile software development encourages teams to do work in small iterations and to iterate based on real user feedback, which results in more frequent releases. Continuous delivery encourages teams to be "always ready" to deploy changes. But all of the questions and rules described above are still important to answer. For teams with requirements around compliance, it might not be enough to simply write these rules down or leave them undefined - you might also need to show how these rules are enforced.
Let's be honest: software teams love automation and shipping working software to production, but they don't always love the approvals and governance that come with it.
Octopus Deploy is a release management, deployment automation, and operations tool in one. It helps developers and operations folks with their immediate needs: how to automate software deployments repeatably and reliably. But it's also got all the release management capabilities you need to meet your audit and compliance requirements. And because release management is baked into the tool that's doing the deployments, it eliminates all of the spreadsheets and documents that you'd otherwise use to track releases.
All your releases in one place
The main Octopus dashboard gives everyone on your team easy answers to questions such as:
- When did we last deploy to production?
- Was last night's deployment to test successful?
- Is something happening to the dev environment right now?
Promote releases between environments
A “release” is a build of your software that gets promoted between environments - from dev, through test, QA, and eventually production.
Octopus can enforce rules such as “releases must be deployed to staging before they go to production.” Or even a more advanced rule, like “you must deploy the release to at least two of the test environments before it can go to production.”
Octopus can require approvals before, after, or even half-way through a deployment. Approvals make it possible for a human to be involved, and to either sign off & approve or cancel the deployment.
Consistency for the win
You deploy to dev & test environments far more often than you deploy to production.
Octopus Deploy takes advantage of this fact to help make production deployments more reliable.
While other deployment tools assume every environment is different, Octopus assumes you want to follow a consistent deployment process for every environment. So every time your developers use Octopus to deploy to dev, or your testers use Octopus to deploy to a test environment, they're testing the same deployment process you're going to run for a production deployment. It also means you'll get a chance to find and fix issues in your deployment process long before they hit production.
Everything you'd expect
Connect Octopus with Atlassian Jira to see when your bugs and work items in Jira were deployed to production.
Azure DevOps Integration
Connect Octopus with Azure DevOps to see which changesets and work items were included in a deployment, or to see the Octopus release dashboard within your Azure DevOps dashboard.
We've been overhauling our internal infrastructure and back-end systems over the past month, including a move back to full @OctopusDeploy deployments; rediscovering how nice it is to have a platform-agnostic orchestrator that can deploy practically anything, anywhere ❤Nicholas Blumhardt