Here at Russell we have a fairly strict deployment story. As you can imagine with any financial company, when dealing with other people’s money mistakes are punishable by death. Having a failed rollout because your 37 page install document wasn’t completely accurate and left out some minor detail that prevented the server administrator from continuing is a pretty big mistake. To mitigate this risk, we as developers try to control and automate as much of our deployments as possible. Some of the strategies we use include:Automated build that produces a deployment package that is rigorously tested for completeness
A single rollout script to be run in SQL server that is tested with every build
Heavy use of PowerShell scripts to automate complex tasks like setting up MSMQ queues
Deployment of applications using MSI installers built with Wix
Wix or Windows Installer XML, is a great tool for creating very high quality, professional looking installers. The down side is that it has a learning curve steeper than Everest and suffers from severe angle bracket tax. It is not uncommon to struggle for several days trying to get a Wix based MSI to do all the little things you want it to accomplish for you. To get over these hurdles you need a solid foundation of knowledge and a really nice abstraction layer. Kevin Miller has laid out the solid foundation for us in his series from 2007 called Creating Windows Installers Using WIX. I highly suggest reading it and walking through your own project using the raw Wix model. When you are done with that, let me introduce you to a really nice abstraction layer. Oleg Shilo’s Wix# project allows you to define your installation package in C#, you know, a general purpose programming language that is designed to model real world processes. Not a markup language like XML. Seriously, if I could go back to 2001 and find the guy that decided that XML was the solution to all problems and beat him senseless, I would. Read more: I Am Not Myself
A single rollout script to be run in SQL server that is tested with every build
Heavy use of PowerShell scripts to automate complex tasks like setting up MSMQ queues
Deployment of applications using MSI installers built with Wix
Wix or Windows Installer XML, is a great tool for creating very high quality, professional looking installers. The down side is that it has a learning curve steeper than Everest and suffers from severe angle bracket tax. It is not uncommon to struggle for several days trying to get a Wix based MSI to do all the little things you want it to accomplish for you. To get over these hurdles you need a solid foundation of knowledge and a really nice abstraction layer. Kevin Miller has laid out the solid foundation for us in his series from 2007 called Creating Windows Installers Using WIX. I highly suggest reading it and walking through your own project using the raw Wix model. When you are done with that, let me introduce you to a really nice abstraction layer. Oleg Shilo’s Wix# project allows you to define your installation package in C#, you know, a general purpose programming language that is designed to model real world processes. Not a markup language like XML. Seriously, if I could go back to 2001 and find the guy that decided that XML was the solution to all problems and beat him senseless, I would. Read more: I Am Not Myself