Octopus Deploy 2.6 is now in pre-release! For those who like to live on the edge, you can Download the Octopus Deploy 2.6 pre-release. And who wouldn't want to live on the edge when this release contains so many new features? Here are the highlights:
- Lifecycles to control promotion and automate deployments
- Automatic release creation from NuGet push
- Running steps in parallel
- Up to 5x faster package uploads
- Skipping offline machines
Lifecycles
This heading just does not have enough fanfare for this feature. Imagine balloon's springing out, trumpeters trumpeting and confetti cannons making a mess everywhere.
Okay I will stop, but I do love this feature!
Lifecycles let you specify and control the progression of deployments to environments. You not only have the ability to order environments for deployment but you can:
- set environments to auto deploy when they are eligible for deployment
- gate your workflow to be sure that N QA environments have been deployed to before moving on
- group multiple environments into a single stage
- deploy to more than one environment at a time
Yep, deploy to more than one environment at a time!
A Lifecycle consists of phases and retention policies. Let's start with phases.
Lifecycle Phases
A Lifecycle can consist of many phases. A phase can consist of many environments. Each phase will allow you to add environments to it. You can gate each phase, to be sure that N many environments have been released to before the next phase is eligible for deployment.
When selecting which environment to add to a phase you have the choice of if they will be a manually release or auto release. If they are set to auto release, when they get to their phase of the deployment chain, they will begin deployment.
Lifecycles and Retention Policies
Lifecycles have their own retention policies. Each has an overall retention policy that each phase will inherit. However you can overwrite this for each phase.
This will mean for development where you have 1300 releases a week, you can have a very strict retention policy set to delete all but the last 3 releases. But for production you can keep everything forever. Or somewhere in the middle if your needs aren't so extreme
Lifecycles and Projects
Lifecycles are assigned to projects via the Process screen.
You might notice that your Projects Overview screen has had a bit of an overhaul.
It will now display your most recent releases, where they are at per environment, and provide any deployment or promotion buttons. It allows you to see the most current, and previous deployments at a glance. Solid green being your most recent deployment, medium faded green as your previous deployment, and light faded green as all others.
Lifecycles, Releases, Deployments, and Promotions
The release page now gives you a graphical tree of where a deployment is currently, which phase and what's deploying. You may notice a few things here. The deploy/promote button got a bit smarter. It knows whats next in the chain. It also allows you to deploy to any environment that has already been deployed to.
You can now release to multiple environments at the click of one button. Yep.
Or you can use this select box, and choose them all!
And when you have finished a deployment, the promote button knows what's next and gives you the option to promote to the next environment.
The deployment screen got a little simpler too. Much easier to find the deploy now button. But don't worry everything is available under Advanced, and if you are so inclined you can tell it to remember to show the advanced settings all the time.
Lifecycles and Blocking Deployments
If you have a bad release that has just done some bad stuff (tm) to your QA server, you might want to block that release from being released further down the chain until the issue is resolved. Now you can block a deployment.
Step 1 block the deployment for reasons.
On your release screen you can see that the promote button has vanished and your Lifecycle deployment tree has a red icon for those environments it cannot promote to.
You will also now see a warning marker on your overview, and will no longer see promotion buttons for that release. In fact all promotion buttons are gone for it. You can only at this point deploy to environments that have already been deployed to. Unblocking when the issue is resolved will give you full access to deploy the release.
Lifecycles and Automatic Release Creation
Yes, there is still more!
On a project process screen, you can define the name of a package, that when pushed or uploaded to the internal repository will automatically create a release for you.
And if you have your first environment in the Lifecycle setup to automatically deploy, this means you can push a NuGet package to the internal repository and have it automatically create a release and deploy it! We are looking at you TFS users!
As you can see Lifecycles is a feature that has it's hands in many areas of Octopus, it's a large feature, that we are very proud of. We have used this opportunity to try to listen to your feedback and suggestions in UserVoice to to add in more value. We really hope you like it as much as we do!
Run Steps in Parallel
Another feature in 2.6 allows you to setup multiple project steps to run in parallel.
You can select on a project step for it to run in parallel with the previous step.
The process page has been updated to show these steps grouped together. If they run on the same machine, they will still queue unless you configure the project to allow multiple steps to run in parallel
Retention Policies have moved
As seen above, retention policies have moved into Lifecycles. You will no longer find a Retention Policy tab under Configuration. They are also not able to be set for Project Groups any more. This leaves setting the retention policy for the internal package repository.
This has been moved to where the packages live, under Library -> Packages.
Package Upload Streaming
In 2.6 when Octopus downloads a package and then sends it to the Tentacles, it will now do so via streaming. We have seen a 5x speed increase. This will also alleviate some of the overhead memory that Tentacle was using to store the package chunks before saving.
SNI Support
As well as fixing up some issues with SSL bindings, we added SNI support.
Skip Offline Machines
Currently, when doing a deployment to very large environments, offline machines can get in your way. We now give the ability to continue with the deployment but skip the offline machines.
We now show offline machines (displayed in red) on the deploy screen. This will allow you to go back and check the machines connection. Or you can use the "ignore offline machines" feature.
This will automatically list all machines but the offline machines.
This ends the tour of what's new in 2.6. We have only mentioned the big features in this release, but there were quite a few smaller changes and bug fixes made, so please check the release notes for more details on these smaller items. We hope you are excited about Lifecycles as we are!
Download the Octopus Deploy 2.6 Pre-release now!