ASIDE: I really feel that terminology like this “turns off” a lot of everyday software developers from really getting into some of the more advanced topics, but then again I guess it depends on what you consider “everyday”, doesn’t it?
Either which way, the past few months I’ve spent a fair amount of time at work so that some of the important things that I do can be repeated easily, and by someone other than me. This started out by building the solution with all the dependencies. Then became doing automated unit testing. I already knew there was something called “continuous integration” that provided mechanisms for exactly this, so I looked around and picked what appeared to be the easiest and cheapest – CruiseControl.NET. I really had very little issues installing and configuring, even though I edited the config files with notepad++ a LOT more than I wanted to… but it worked. There was just one agent and a project for each software solution, and I pretty much relied on msbuild to build the solution. At some point I integrated Nant build files into the process, I believe when I found the need to deploy to various environments (with each environment deployment having its own CC.NET agent). Works quite well and I already see it saving quite a bit of time, especially in deploying to environments. Lastly, I came across a neat article somewhere that talked about continuous monitoring, so I implemented another CC.NET agent dedicated to service monitoring and configured projects to monitor various web sites/services (makes HTTP requests and is successful if a response is returned) and Windows services (queries services using sc query) for basic availability.
Anyone else use anything like this? I’m considering trying out Team City and switching out for that as well as using Uppercut or something else instead of Nant… but would really be interested in anyone else’s take on this sort of thing.
I expressed a desire to host a NBDN webinar detailing this work a lot more, but wonder if for those people I know would they even be interested in this topic…?