How ConDep came to life

imageSome people have asked me how ConDep came to life. Here’s the short story…

ConDep had several incarnations before it ending up as a DSL as today. The first version I created at Frende (where I work and where ConDep also came to life) was a set of PowerShell scripts and WebDeploy executing from a build server (TFS back then) (there’s a Hanselminutes interview where I talk about that experience). 2nd version was a web application using PowerShell Remoting and WebDeploy Packages to push applications on demand (one click deployent). That worked for a while, but didn’t scale and was not flexible. 3rd attempt was creating a set of custom providers for WebDeploy which didn’t work at all. And finally, the 4th attempt, about 3 years after the 1st, ConDep started to come to life. The breakthrough was when I found a decent way of using the WebDeploy API in .NET to automate deployment and execution.

When I figured out how to do PowerShell over WebDeploy’s runCmd (remote cmd.exe) I had solved the 4 most pressing issues:

  1. Remote DOS (cmd.exe) execution over HTTP/HTTPS
  2. Remote PowerShell executing (without PS Remoting) over HTTP/HTTPS
  3. Decent deployment for files, directories and web applications that was not XCopy and also over HTTP/HTTPS
  4. Built-in intelligence of how to work the load balancer during deployment.

Some have also been surprised that an open source framework like this come out of a Norwegian insurance company. For me and for my coworkers (I hope) this is not surprising at all. First of all we use a number of open source frameworks and tools on a day-to-day basis and value them greatly, but most importantly solving deployment issues and technical time to market is not my company’s main focus area. So it made perfect sense to push this out to the community, get feedback and hopefully get help and input shaping it to become much better than we could ever figure out on our own. And in all fairness, I’ve created the majority of ConDep on my own private time, but couldn’t have done that without the challenges and experience I’ve got from where I work, and not to forget feedback and challenges from co-workers.

Have you tried or are using ConDep? Let me know what you think!