Continuous deployment step by step

This is not a how-to blog post guiding you to DEVOPS heaven. I write down the steps we are taking to get continuous deployment in place for our project. Every time we take another step I’ll update this post.

First of all: what are we aiming at?

We do our project using scrum. Product owners, scrum master and developers form the team. Like most projects we struggle with things like build, release and automated tests. Things scrum assumes to be just there. What do we want our continuous deployment to do?

Continuous deployment for us is being able to get the software build, deployed and tested without user interaction.

TFS 2015 with the scrum template is the tooling we use. TFVC is the version control. Build will create the software and do the unit testing. Release Management handles the deployment.

Step by step

Below is a schema of the proces we have in place now.

continuous_deployment

1. Build

First we created a build definition that pulls the sources from version control and puts the software on a drop location. During the build the unit tests are run. This was created the first week of the project.

We created / configured the proces for the build in the project portal. The supplied Visual Studio template was a good start. After a few days we added some steps like a powershell to update the assembly version with the build number.

2. Release

With the build creating software on the drop location we started creating the release pipelines. Installation of the software is done with DSC.

All developers (and testers) now have the tooling to start a release. Everything is triggered manually, but that will soon change.

3. Schedule

In the build definition we setup the trigger to scheduled every night. Now we have a nightly build.

4. Auto deployment

Together with the nightly build we added another step to the build that triggers the release of that build. This is done with an API call. Now we have new software on our server every morning.

Next steps

We plan to include test manager in the mix. After the auto deployment the integration tests are run and a report is waiting our team in the morning.

Takeaway

gwe0dlvd9e0-benjamin-child

You might notice that this post is really superficial and not of much use when you run into trouble. Since every project is different and google-is-your-friend, I’m sure you’ll manage.

My post describes the steps we (you) need to take to get continuous deployment implemented in the project. I think multiple small steps are better than one huge leap. In the end we need to add business value by writing software. Sometimes the tooling gets in the way of that.

About erictummers

Working in a DevOps team is the best thing that happened to me. I like challenges and sharing the solutions with others. On my blog I’ll mostly post about my work, but expect an occasional home project, productivity tip and tooling review.
This entry was posted in Development, Tooling and tagged , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.