Moving Target

So my neat little phases instead turned into a 2 Phase Project for Lab Construction, with Phase 1 containing 7 Virtual Machines, configured as follows:

  • TestAD01
    • Server 2012 R2 Datacenter, 1024MB Ram, 60GB Hard Drive
    • Active Directory / DNS Roles (Domain: “test.internal”)
  • SQLServer
    • Server 2012 R2 Datacenter, 1024MB Ram, 60GB Hard Drive
    • SQL Server 2012 Enterprise SP2 x64 (For TFS DataTier)
  • TFS2013
    • Server 2012 R2 Datacenter, 2048MB Ram, 124GB Hard Drive
    • Team Foundation Server 2013 Update 4
  • TFSBuild
    • Server 2012 R2 Datacenter, 1024MB Ram, 124GB Hard Drive
    • Team Foundation Server Build Service
  • RMServer
    • Server 2012 R2 Datacenter, 1024MB Ram, 127GB Hard Drive
    • Release Management for Visual Studio 2013 with Update 4
  • SQLServer2
    • Server 2012 R2 Datacenter, 1024MB Ram, 60GB Hard Drive
    • SQL Server 2014
  • IISServer
    • Server 2012 R2 Datacenter, 1024MB Ram, 60GB Hard Drive
    • No Roles (Eventually this will have the IIS role installed, however I am looking to see if using DSC and the RM Server, we can automate the configuration of the VM)

All the VMs are practically ready to go, with just Updates now running! This weekend I can start making some build definitions and configure the release management Server. I’ll document the various means of build automation, etc in the coming weeks as I come up to each one. I’m not going to bother describing step by step how to set up the lab since it’s all straight forward, but I will note that my Team Foundation Server 2013 instance has both Reporting and SharePoint disabled since they aren’t needed for continuous integration.

The Phase two I likely won’t be this weekend since this will give me a lot to work with. However I presently imagine I’ll also be looking at setting up a Chef server to use it for configuring Linux VMs with Release Management, a NuGet Server (with deployments to it automated with Release Management). There will also likely be a lot of other deployment scenarios that I’ll think of as I get further entrenched at work and start rolling up my sleeves.


Forging the Lab

Well it has become readily apparent that my thoughts on creating a lab are well placed in order to get me up to speed. Unfortunately my internet connection is not yet the 100mbs thing I would love it to be, so I’ve got about 8 Hours of downloads to get all the Microsoft Software I need for a temporary lab. Given the ground I need to cover, I’ve decided to break the lab setup into 5 Phases.

  • Phase 1: (Figure out general functionality of TFS and project management using Dummy Projects)
    • Active Directory
    • Team Foundation Server – Version Control
    • SQL Server for TFS
  • Phase 2: (Figure out current build automation features and how pipelines work)
    • Team Foundation Server – Build Servers/Test Labs
  • Phase 3: (Start working on automating deployment on each build for staging tests)
    • IIS Server
    • ALM Deployment Automation
    • MS Certificate Server
  • Phase 4: (Implement Automated Deployments with the following)
    • Wix Toolkit (MSI XML)
    • ClickOnce Deployments
    • IIS WebDeploy
  • Phase 5: (Project Automation)
    • At this point I’ll be looking for ways to use a CMDB to build, rebuild and migrate deployments. This could mean deployment of new virtual machines whenever a new project comes online, or building a server from scratch for each deployment.

Sadly however beyond kicking off a bunch of downloads and wiring up my physical lab tonight, it looks as though this project may take me a couple days, with phase 1 not swinging into full action until this weekend. I have a fair amount of reading on TFS to make sure I get the deployment right, and I’m tempted to try and script it just to be sure. To be continued…

Happy New Year, New Job, New Blog!

Well given the long weekend, being the first post of the new year, and the first post of my blog’s relaunch, I thought I would start off covering my professional interests, outside interests, and then a look ahead to the things I’m excited for.

Professional Interests

I’ve landed a new Career as a DevOps Engineer at AIG. (A lot has changed!) So far after hearing about what they have going on I’ve been all over the place reading up on all sorts of stuff, trying to sort out what I think the coolest and most useful would be. For my own reference, I’ll be making a list below:

  • PowerShell DSC -DSC Resource Kit / Writing Custom Extensions
  • VCE (
  • Microsoft Team Foundation Server 2013
  • Microsoft Application Lifecycle Management
  • Chocolatey (
  • Puppet (On the fence about whether it’s really worth while, they bought the guy who made chocolatey so they are serious about the windows space, but with MMC 5 and OneGet there may not be any point beyond living in a mixed environment.)
  • NUnit / Pester (TDD/BDD testing libraries for C#/PowerShell respectively)
  • ClickOnce (I believe this is currently being used somewhat, and since it’s slotting into Microsofts DevOps agenda, important to know)
  • NuGet (Would be a good way of centralizing shared binaries in a large corporation, and performing version control on them.)
  • Artifactory (Kind of crazy, lets you run private Nuget, apt, maven, and who knows what the heck else repositories, while also integrating with TFS and other build systems.)

I’ll note some of this stuff isn’t on their agenda, but I thought I’d do my own research on related things so I can contribute my own findings on their plans for the future.

Personal Interests

Granted that is all the stuff that I think is directly applicable to my job. To practice all this stuff, I’m thinking of setting up a lab and configuring some services I know really well, so that I can master the underlying tech. So in my mind I’m thinking of setting up a lab with the following:

  • Server 2012R2: Active Directory Domain
  • Server 2012R2: IIS 8 /SQL Server 2012R2
  • Server 2012R2: Windows Print Services + PaperCut
  • Server 2012R2: CAS Server
  • Server 2012R2: TFS 2013 Server + ALM
  • MakerFarm Web Application / Reprancher Dummy Application

I’m hoping to leverage PowerShell DSC so that I can get up the entire lab in a couple minutes on any cloud. This also means I’ll get some practice creating Custom DSC Modules, so that I can deploy PaperCut in an automated fashion, along with the CAS Server. However I’d likely want my TFS Server to be stateful, which would then make my AD Domain stateful as well, so I’ll have to think about it more.

Looking ahead

Lastly it seems Microsoft thought competing with a presidential election year would be good for their sales. Granted I’ll take good news where I can get it, and they have a promising lineup in 2016 with the release of PowerShell /MMF 5.0, Server 2016, and best of all native support for Docker Containers. Be far my favorite linux tech I’ve been following these days has been Docker (Followed by Cloud Foundry and then Stack) since the concept of Operating System Virtualization has always been my favorite¬† on the Virt stack (Versus Machine Virtualization or Application Virtualization). I know being a MSFT fan puts me in a Bias, but with that, along with .Net Core for packaging self contained cross platform apps and DSC moving over onto linux machines, and the System Center Platform¬† + Azure Pack they will have a very appealing Private Cloud Platform.

But more important than going with a pure MSFT stack is the fact they they have defected from codeplex to github and have been opening up most their APIs and a lot of their source, which means you can mix and match your tech to build your own stack. Given PowerShell’s extensibility, with enough automation platforms and specific tech will be meaningless and slotting things in and out of the stack will be completely transparent. Granted I’m likely being over-optimistic, but I’ll laugh at myself in about 18 months once I start kicking the tires on all the tech I just evangelized.