Having learned the benefits of applying TDD to application code, my team decided to apply the same technique to infrastructure code. There isn't quite as much literature available, and we faced many challenges, but we ended up with a rewarding result: a continuous integration server that runs tests at several levels, including acceptance tests. The technology stack involves Chef, Test Kitchen, Vagrant, KVM, Serverspec and Jenkins. Although each one of these parties has at least a good level of maturity, integrating all the blocks has been the interesting part. We discuss how to put together virtualization solutions, configuration management and BDD specs to converge into a fully automated continuous integration system that can and, in our opinion, should become part of the workflow for DevOp teams."
I plan to include a practical demonstration of the concepts discussed by using most of the tools involved.
The idea for the presentation came from observing the positive reaction from the DevOps community after the publication of the following blog post that I wrote myself: http://www.agilosoftware.com/blog/configuring-test-kitchen-jenkins/
Basically the interest revolves around the fact that although there are good tools to treat infrastructure code with the same dignity and professionalism as application code, there is not as much maturity in the ways to converge all the parts into an integrated solution, and ours is a possible approach to this problem.
Speaker: Stefano Rago