Share →
Buffer
Bryon Root on Visual Studio ALM

What tools should you use to achieve Continuous Delivery (CD) for software development and a release process? Do you have a Continuous Delivery process? In this blog, I will be share some of the applications to get started with CD. 

Applies to

  • Release Management
  • Configuration Management
  • Build Engineers
  • Development
  • Testing
  • Operations

Prerequisite

The Where, How, What, and Why

I like to start by asking the Where, What, and Why questions

  • Where do I start
  • What are the costs and benefits of these tools
  • Why do I need them

As with any tools/applications they need to have a purpose to be used. Just because they look shiny and awesome does not always mean they are the right tools for the jobs.  I have a number of specialized tools in my bike and woodworking toolboxes that only do one thing and one thing well.  I would not use these specialized tools to hang a picture or to scrap paint with – I have other tools for that.

The Essentials Tools in Every CD Toolbox

Where to start?  This can be a hard question at times. Looking at all of the information on the internet can get confusing in regards to what tools to use. Everyone has a different opinion on what tools are best.  So not to disappoint, I’m going to provide my opinion on what tools are currently the best to get started on creating the framework for a CD system.

Team Foundation Server 2012.2 (TFS) and Visual Studio 2012.2 (VS)

    • Why – TFS and VS provide the integration, workflow, and reporting platform that is required for CD.  There are other systems available but not one that has the full Application Lifecycle Management (ALM) combined within one system. 
    • Cost – The cost can be summed up with, how much does your current solution cost you to integrate with each other and maintain it, compared to one full body integrated solution that has at a high-level:
      • Work Item tracking
      • Source Control
      • Builds and release
      • Testing
      • Reporting
      • Team Project Portals
    • Benefit – Having a full ALM integrated platform that is fully scalable to fit any size team, whether that is a team of five to a worldwide enterprise team.

NuGet

    • Why – Dependency management for your applications
    • Cost – NuGet is free
    • Benefit – Packaging and management of dependencies in a project for development. The NuGet package manager and NuSpec file gives the release information that is required for traceability and transparency.

Chocolatey

    • Why – Installing tools and applications fast and efficiently 
    • Cost – Chocolatey is free
    • Benefit – Easy download and install process of a third party software to any machine.  It provides configuration management as a standardized process to build out environments.

ProGet

    • Why – On-premises NuGet repository is for hosting your releasable packages
    •  Cost – It ranges between free and 995 USD per year
    •  Benefit – Having a package repository for all teams to access is a key part of CD. ProGet installs the NUGet repository with ease.  The Enterprise version has the ability to manage access by LDAP and a built-in source symbols server.

Octopus Deploy

    • Why – Octopus Deploy is a lightweight deployment tool used to manage and track releases to an environment.
    • Cost – Free to $1999 USD for the complex source code
    • Benefit – The benefit of this tool is incredible. It’s the mechanism for CD and DevOps to be attainable. Octopus Deploy provides deployment dashboards, a secured agent server base system, NuGet package, web configuration transforms, PowerShell integration, and an easy promoting process (just to name a few!). In fact, Red-Gate likes the tool so much that they took the source code and modified it to fit their specific needs. 

Ready-Roll

    • Why – Database deployment is not easy and having a standard practice using standard tools is hard to find.
    • Cost – $345 USD per user
    • Benefit – The ready-roll features provide the database developer with the missing options from SSDT tools. The ability to create a rollback and to create a .nupkg package that can be quickly deployed using Octopus Deploy are two key features. Database development should not be outside of the normal delivery pipeline

The Cost and Benefit

The essential tools that I’ve selected are the most bang for your buck at the time of this posting!  If you take out TFS, the overall licensing cost for the essential tools combined are under $2,000.  This is very inexpensive considering the cost of not having these types of tools in your delivery pipeline.

The essential tools provide huge benefits to any size team that wants to have a CD process. Not having essential tools or similar ones like them makes CD not achievable. These types of applications are the core framework of any CD process.

These tools can be used by all teams, from Development to Operations. They reduce the cost of individualized tools and processes that occurs in each department. Having different tools and processes are not only costly, but can cause major issues and create silos, thereby not having a reliable, repeatable, and streamlined CD process. 

Why Do I Need Them

Software delivery is moving at a faster pace than ever, as well as, the ever-growing customer delivery cycle requirements and expectations.  What was a good delivery cycle 2 years ago is now not acceptable – customers are craving the next features and fixed bugs immediately. 

The essential tools provide the framework to create a healthy software delivery flow process with transparency, fast feedback loops, continuous integration, faster cycle times, one delivery process, and reporting.

Conclusion

I have outlined some of the essential tools that are needed to achieve CD. These of course are my picks and I’m sure others may have different opinions.  For me, keeping it simple is one of my key goals.  The delivery pipeline will get complicated on its own, and the tools should not add to that complexity.

I also want to state that tools are only one part of the whole CD practice.  People and processes make up the most important part.  The tools are just that, tools.  How we use these tools, make the difference in having a successful workflow to continuously deliver software to customers at a reliable rate.

Print Friendly
Tagged with →  
  • Maarten Balliauw

    Did you also look at http://www.myget.org as opposed to ProGet?

  • B4root

    We did look at myget and it is a great off-premises cloud solution. The ProGet is an on-premises solution to house your NuGet packages. Some companies do not wish to have their source code out in cloud server.

  • Michael Van Hoff

    We are currently a Perforce house with considerable history stored there, so switching to TFS is not something done lightly. I like the tool stack you have outlined here and wondered what you thought of replacing TFS in this stack with TeamCity over Perforce and maybe YouTrack or JIRA?

    Also, we use VMware ESX and want to implement dynamic provisioning. It appears that a combination of Octopus Deploy and Chocolately would allow for configuration of raw machines, but we want to also dynamically create new servers on-demand. We’re currently looking at several tools including Nolio, Puppet, and Chef. Any suggestions on a tool that might fit better than another into this stack?

  • Michael Van Hoff

    After a little looking around, might have answered my own question on the provisioning, though I’m still interested in your thoughts. PowerCLI is a PowerShell library from VMware that allows scripting of vSphere management, including creating VMs on the fly. With Octopus Deploy supporting PowerShell, I can’t imagine it’s too far to go to generate VMs on-demand.