TFS & GO & Chef, oh my: Part 11 - The deploy process

Trying to work out a few things right now:
  1. Where do I draw the line between 'do this in Chef' and 'do this from Go'?
  2. How do you 'template' Chef recipes?
  3. Where do I draw the line between 'do this using Chef' and 'do this using Chef but via PowerShell'?
Regarding #1, I can do pretty much everything in Chef...but then you lack the visibility and variables from Go.  

This should be cleared up by figuring out exactly what we want the Go deploy pipeline to look like - where do we need the milemarkers to sit?  Or maybe we just need one stage with really detailed error handling?

Regarding #2, right now I have a cookbook for 'WebApp1', and it will only work for WebApp1, not WebApp2, or 10, etc.  I imagine there is a simple method here.  (might have found it: #{cookbook_name})

Regarding #3, it really comes down to 'I know this can be done (and how to do it) in PS, but figuring it out in Chef will take time'.  For the POC, we'll probably end up just using PS to speed us along.  For the pilot I'll want to clean the messier stuff up.

<this post went unedited for several days...>

We've now figured it out...

  1. Chef will handle infrastructure in a single Go stage (two once we figure out how to separate project and infra Chef code)
  2. Solved via calling either %GO% env vars or Chef env vars i.e. #{cookbook_name}
  3. Just had to hunker down and figure out the powershell_script stuff

So our actual sequence for deploy (as of today):
  1. SQL changes (manual)
  2. Chef infra bump (manual? move this?)
  3. Git clone the files
  4. Git clone the configs (pulls a GO environment
  5. Chef run (right now updates all layers, not 'just' the project-specific infra)
  6. Operations test suite
  7. QA test suite (manual, nothing here yet)

The demo is on Friday...

Comments

Popular posts from this blog

DFSR - eventid 4312 - replication just won't work

Fixing duplicate SPNs (service principal name)

Logstash to Nagios - alerting based on Windows Event ID