Practical Octopus Deploy – Introduction

Introducing Practical Octopus Deploy

I started out my career several years ago as a build and install engineer (remember InstallScript? Yeah, me neither.) Today, I create web applications for a large urban county government. Naturally, we need to deploy these applications to various servers. So, like many dev shops, we’ve created our own home-grown deployment processes. Maybe you have too. We’re developers, after all!

While our processes work for us, they had become a bit unwieldy (see Figure 1.) They were also difficult to maintain and needed updating. In addition, we were starting to consider a move towards the cloud. The systems we’ve been using do not address this need at all. As a result, it was time to up our DevOps game.

Our Current Deployment Process
Figure 1: Overview of current deployment process

Getting Better All the Time

Wanting to improve, we started looking at our options. After a brief search we selected Octopus Deploy. As a result, I was asked to join a pilot project. Since I’ve been involved in build and install/deploy throughout my career, I jumped at the chance! Our hope for the pilot was that Octopus would reduce some of the headaches we’d faced. I’m happy to report that it can. Although there’s definitely a bit of a learning curve, using Octopus Deploy was a very positive experience for me.

Smells Like Teen Spirit

After the pilot ended, I wanted to summarize and share what I’d learned with the rest of my team. Due to the size of the topic, I couldn’t do this justice in one post. So this is the first post of a planned multi-part series on “Practical Octopus Deploy.” The goal of this series is to help the reader move from a blank dashboard (Figure 2) to deployment nirvana (Figure 3) as quickly as possible. Some posts will briefly touch on a few admin tasks (mostly to help define terminology.) However, the focus will be from the perspective of a developer who wants to deploy an application. The planned topics include:

  1. Practical Octopus Deploy – Introduction (this post)
  2. Practical Octopus Deploy – Environments and Roles (Start reading here if you like to understand the theory before you get to the practical.)
  3. Practical Octopus Deploy – Lifecycles
  4. Practical Octopus Deploy – Projects and Project Groups
  5. Practical Octopus Deploy – Database Change Scripts
  6. Practical Octopus Deploy – Using DBUp (Start reading here if you prefer to get your hands dirty right away.)
  7. Practical Octopus Deploy – Using OctoPack
  8. Practical Octopus Deploy – Advanced OctoPack (upcoming)
  9. Practical Octopus Deploy – Build Script Changes (upcoming)
  10. Practical Octopus Deploy – Integrating with TeamCity (upcoming)
  11. Practical Octopus Deploy – Octopus NuGet Feed (upcoming)
  12. Practical Octopus Deploy – Octopus Deploy Library (upcoming)
  13. Practical Octopus Deploy – Creating a Deployment Process (upcoming)
  14. Practical Octopus Deploy – Using Step Templates (upcoming)
  15. Practical Octopus Deploy – Variables and Variable Sets (upcoming)
  16. Practical Octopus Deploy – Automatic Release Creation (upcoming)
  17. Practical Octopus Deploy – Lifecycles Revisited (upcoming)
Practical Octopus Deploy - Empty Dashboard
Figure 2: A forlorn, empty dashboard
Practical Octopus Deploy - Dashboard After Deployment Success
Figure 3: Deployment nirvana!

Additional Resources for the Truly Curious

I had many questions while setting up the pilot project. Fortunately, I was able to find plenty of resources on the internet. While I hope this series of posts will provide enough information to get going, in each post I also plan to share some of the resources I found most useful.

  • One of the first questions I needed to answer for myself was why we selected this particular tool. While this page may lean towards “marketing spin,” it offers a compelling argument for using a purpose-built tool for deployments in general, and for Octopus Deploy in particular:
    Why Octopus Deploy?
  • The documentation on the Octopus website is extensive and quite good. Here is an overview of getting started:
    Getting started – Octopus Deploy (please come back here when you are done LOL.)
  • There are other deployment options besides Octopus Deploy, of course. There are a couple of alternatives that I found interesting, here: Honda, and here: OK Go.

Author: Russ Warner

I'm a senior software developer living near Portland, Oregon.

Leave a Reply