Does Octopus version your deployment process?

I was asked an interesting question at the Chicago ALM User’s Group tonight. I can’t recall the exact question, but the essence of it was, “does Octopus version your deployment process?” I meant to answer the question but I got side-tracked with another question. So here’s my post to amend that unanswered question.
Short answer? Yes. Long answer? Yeah, sorta. How so? Let me show you. Start by clicking on the Configuration link in the upper right-hand corner within the Octopus UI, and then look for the “Audit” tab on the left-hand side.
 
Audit-Menu
 
The Audit tab by default shows all the most recent events that occurred. Some filtering of projects led me to this alteration of my deployment process as seen below:
 
Audit-Line
 
Clicking on the “show details” link will display the raw JSON data. I’m showing only a small portion of the data that’s displayed but you should know that Octopus displays the entire JSON data document within the Audit page.
 
audit-change
 
The “yeah” portion of my long answer has to do with _how_ Octopus Deploy shows you the difference between the changes that were made. Octopus shows the raw JSON that’s stored and the alterations that were made highlighted in green or red. Green meaning added and red meaning removed. What’s happening here is that I changed the WebRoot text value in my deployment process from “\” to “d:\apps\OctopusLiveDemo.Web.#{CurrentEnvironment}”. Pretty easy, right?
JSON (JavaScript Object Notation) is not the most readable of formats for most people but for developers, this is pretty easy. Unfortunately, it’s not obvious what the change is amidst the entirety of the JSON document so you’re forced to scan for the color change to find the exact alteration. This particular example I’m showing has a lot more JSON which I omitted for clarity. Does this qualify as versioning deployments? “Yeah”. It’s a little verbose but for developers, it’s works well.
My “sorta” is in reference to how cumbersome it is to find the needle in the haystack of audit events. Granted, there are a few ways to access in the raw data within Octopus’s RavenDB, you can programmatically find your changes. But my gripe however, is with the filter on the Audit tab as it’s still lacking more filters to obtain this information quickly. I’ve proposed changes for filtering on the UserVoice site and while my change request was added into Octopus, it’s still difficult to find something this specific. Can Octopus Deploy improve on it’s audit filtering? Sure. But in terms of priority, is low on the totem pole of desired features.
 

ianpaullin

Share

2 Responses

  1. Great post Ian. Another angle to this is that Octopus takes “snapshots” of the deployment process (the steps) and variables each time you create a release.
    You can see these if you go to the Releases tab, then find an old release. You can see the variables included in the snapshot, and only the steps in the process when the release was created will be included.
    While audit events help by showing a diff, we could also do more to allow you to explore these snapshots (the data is there, just no UI) – hopefully we’ll get chance to add this feature in the future.

    • Thanks, Paul! Yes, I mentioned in my presentation that all saved releases are effectively snapshots and that the variables are preserved. That’s definitely a “versioning” mechanism within a deployment process.
      For the audience member who asked the question, I believe they were asking for a “diff” type mechanism and I thought of the audit, but I didn’t respond to it quickly and he had another question that took me off track. Of course it wasn’t until several hours later that I realized I forgotten to respond to that specific diff question. 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

Post comment