Continuous Delivery

Workshop

Purpose

Learn how to configure and use a state-of-art build server and set up a full continuous deployment pipeline.
You will get both the theory, the practical hands-on experience and a lot of fun.

Fun

There is no reason why learning cannot be fun at the same time. In this course you will get to use Lego Mindstorm robots to simulate test and production environments and what can be more fun than that?

Suited for

This workshop is mainly targeted at developers, testers, delivery managers & agile teams who will have an interest in knowing the inner workings of a modern build server.
For people in the management level who are more interested in the why over the how, I recommend looking at the Executive Brief.

About the workshop

This workshop focuses on combining theory and hands-on experience with a lot of fun.
The participants will work in pairs, setting up a full Continuous Delivery pipeline in Teamcity, integrating with GIT as the source control and deploying to Lego Mindstorm robots which we will use to simulate the test and production environment.

We will work in sprints, where each cycle will consist of an introduction where the theory and features of the build server are discussed, followed by a work phase where the teams will set up the part of pipeline we are currently working on.
Finally we will round the cycle of by having a short retrospective about the work done.

By the end of the day, the team will have configured a full Continuous Delivery pipeline, including security gates on multiple levels and providing a manual push-button release to production for builds who passed the gates.
When deploying to production the the robots will score points, dependendt on how well the program executes.

Topics

Topics covered:

  • Creating build configurations. A build configuration is the container for the automated build and deployment process.
  • The participants will get hands on in configuring several of these to support our different scenarios and process steps.
  • Setup VCS hooks. We will integrate the build server in the version control system used and run the builds whenever the source code changes.
  • Setting up the build step. We will configure the build server to build the source code.
  • Setting up the test step. We will configure the build server to run tests against the build code
  • Setting up the deployment of the code. We will configure the build server to deploy the build and tested code to the actual systems.
  • Build artifacts. We will use build artifacts to show reports of the test runs etc and show how we can make build artifacts and packaging fit into a QA or the regular deployment flow
  • Custom reporting. We will extend the build server to show our custom output on the status and detail pages.
  • Gating. We will set up the build server in a way as to herd code towards an actual deployment. We will actively use the source control as a mechanism for moving code from a raw and untested state towards a stable and releasable state.

Topics NOT covered in depth, but still essential to continuous deployment:

  • How to write tests. Automated testing is paramount in continuous deployment and is also a whole topic in its own right. In this course we will run tests against the code, so participants will ensure that tests are run on each build, but writing actual tests will not be covered.
  • Making build scripts. A prerequisite of a continuous deployment pipeline is the ability to build, test and deploy your system with a minimal of effort. It is so simple that a computer can do it, which is in a way the whole point. As an essential part of the continuous delivery flow are the build, test and deploy scripts. As these scripts will be closely related to technology and design of your systems, writing these are not covered in this course. The participants will wire up the build server with pre-existing build, test and deploy scripts and will also have to parameterize their inputs etc, but they will not get any hands on in actually writing these scripts.
  • Source control. Git is a distributed version control system and used at the VCS for the course. However all source control operations are done by the course portal and the participants will not directly use source control in this course.

Want to know more about this course, pricing or have other questions?