For Octopus 2.0 we're making a lot of changes to how we execute long running deployment tasks, and how we communicate with our remote agents. As part of this work, I'd like to give our tasks output page a bit of love and attention.
As a deployment server, Octopus Deploy orchestrates a lot of long-running tasks. Examples of the tasks we execute include:
- Checking that machines are responding (health checks)
- Upgrading the agent service
- Internal database backups
These tasks aren't just executed sequentially; most of them perform various activities in parallel. We download NuGet packages in parallel, we upload them to machines in parallel, and we install them on remote machines in parallel. Communicating what's going on in a user-friendly way is important.
Currently the deployment details page is split between a basic summary of steps, and a hierarchical tree of log entries.
The first thing we're going to try and do is to combine both of these into a single view, which will be the default thing you see when you view a task. Rather than giving you a bunch of logs to look at, we'll show progress bars and summaries of what is going on.
Any errors, warnings or "alert" messages will also be shown here, so you don't have to crawl through a log to see what went wrong:
At the top will be a simple progress bar that will estimate how long the deployment will take based on how long the various parts of the deployment have taken previously, and how long they have taken so far (i.e., we'll use real numbers for the parts of the deployment that have finished, and for unfinished parts we'll guess it from previous runs):
Sometimes, of course, you have to drill in to see what went wrong. The next tab gives you the full deployment log just like we did previously:
We're making a couple changes here:
- We'll present the dates in a consistent time zone
- We'll put the dates on the right to try and make it easier to read the messages
The other tabs include:
- Artifacts (I incorrectly used "Attachments" in those mockups), which are a cool concept I'll talk about in a future post
- History, which will show you details about who scheduled the task, who canceled it, and so on
What other information would you like to see when viewing a deployment/task in Octopus? What other information would you like to be able to capture during a deployment so that you can show it here?