Practical Octopus Deploy – Lifecycles

Understanding Octopus Deploy Lifecycles

The previous post in this series discussed environments and roles in Octopus Deploy. In this post, we’ll examine Octopus Deploy lifecycles, lifecycle phases, and how they control deployments. We’ll also see how a lifecycle phase contains and interacts with Octopus environments. This is the third post in a multi-part series about using Octopus Deploy.

The Bizarre Lifecycle of an Octopus
Figure 1: The bizarre lifecycle of an octopus

Typically, a web application deploys through several stages on its way from development to production. In Octopus, the lifecycle allows Continue Reading →

Practical Octopus Deploy – Environments and Roles

Understanding Octopus Environments and Roles

When first trying out a new application, it’s tempting to jump right in. Often, you can learn a lot about a new system through usage and discovery. However, Octopus Deploy introduces a new vocabulary that needs to be understood. In particular, two concepts that crop up constantly are environments and roles. This post will provide a magic decoder ring.

Orphan Annie's Decoder Ring
Figure 1: What Ralphie got in the mail

Saving the Environment

The Octopus documentation describes an Octopus environment as simply Continue Reading →

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 Continue Reading →

Ninject Parameterless Public Constructor Errors

About once a year I have to set up an entire new application from scratch. To help speed this process along, there are many NuGet packages that we typically use. Since we strongly believe in IOC and DI, one of our more important packages is Ninject.

Houston, We Have a Problem

Doing this work so seldom, it is always a bit of a trick to get everything set up properly. Commonly, after installing the Ninject NuGet packages, the first time you try injecting a service into a controller and running a WebAPI method, you will see Continue Reading →

Call stored procedures using DbContext

Staying Warm and Dry

Sometimes I find myself needing to create a complicated bit of logic in the SQL layer (say, for statistical reports.) Later, perhaps someone will ask to see these statistics exposed on a screen through the UI. Suddenly I need this same logic further up the stack. While I’m a fan of using LINQ, too much code duplication of complex logic can result in a maintenance headache. This is even more true when the duplication crosses languages, as when going from SQL to C#. Staying DRY is a good thing.

While I’d prefer to confine most of my coding logic to C# and keep my databases as simple as possible, sometimes this is not practical. In this article I will demonstrate how to call stored procedures using DbContext.

Putting Things In Context

My organization likes to Continue Reading →