Monday, July 8, 2013

Continous Installation : An overview

Way back in 2009 I made a post that my company also uses CCNet for Continuous installation, you can read that one here : here. A quick overview, at that time we had
5 programs, and only used a WPF front end, WCF services and a database. And these had to be installed at 15 of our customers, meaning actually doing 75 installations.
Manual installation of 1 program took 20 minutes so this meant 75 * 20 = 1500 minutes which equals to 25 hours. So a good 3 days of work just installing !

Now we increased the amount of programs, the type of them and the amount of customers. The type of programs to install :
  • wpf click once
  • wcf services
  • windows services
  • VSTO addins
  • ms sql reports
  • web sites
And some customers use Terminal Services, which means they do not want to use click-once, but just xcopy deployment. Meaning all the assemblies of the front-end must be copied to a share on the terminal server(s).
Yes that is plural, we even a a customer that has 26 Terminal Servers !
Off course the corresponding databases need to be created and upgraded, the IIS needs to be configured, backups taken, folders created and cleared, ...
All that maintenance per server is also done via CCNet.
Installing a new version at a customer is very easy, upload the files to an ftp server, update and upload the customers CCNet.config.
All this updating is done via a program I wrote, not manually editing the config :-)
Below is an overview of 2012 :
programAmount of classic installs
dmnstrt680
Brgrzkn\Bvlkng2680
Brgrzkn\BrgrljkStnd637
Brgrzkn\BrgrljkStndRprtng268
Cmmn416
Fnncn\Bkhdng\BBC1259
Fnncn\Bkhdng\BBCBstlbnRprtng573
Fnncn\Bkhdng\BBCRprtng2540
Fnncn\Bkhdng\BBCStdRprtng4
Fnncn\Bkhdng\Ngb693
Fnncn\Bkhdng\NGBRprtng3
Fnncn\Bkhdng\NbRprtng2
Fnncn\Bkhdng\Schbrck1
prtns168
Rmmcmxtrn\Fnncn\Bkhdng\Bbc264
Rmmcmxtrn\Fnncn\Bkhdng\Ngb1
Rp\BnkTrmnl34
Rp\DcmntBhr793
Rp\Dcmntn470
Rp\d1
Rp\GbrkrsBhr1082
Rp\GbrkrsBhrRprtng91
Rp\GsSrvc38
Rp\PrcsBwkngRprtng26
Rp\PrcsMngr135
Rp\Rpprtn382
Rp\Rfrnts1034
Rp\RprtSrvrMngmntRprts5
Rp\Strtpgn862
Rl\Rmtljkrdnng119
Rl\RmtljkrdnngRprtng59
Scrtrt\MtngNT50


This is an total of 15370 installations !

And this is the downside of the story, it goes way to easy and fast :-)

Doing this the old-fashioned way would take 307400 minutes which are 5123 hours. Roughly 128 weeks (40 hour week)
just keeping the 20 minute per install, which is very fast for a manual install. And this does not take into account the new type of programs, copying them to X terminal servers, ....

The new way took me 4010 minutes which is 66 hours or a week and a half. And this is totally automatically, so no errors done on replacing settings and the like.

And because there are only 52 weeks in a year, .... this is a HUGE timesaver.