We are looking at rebuilding our small production running redundant servers with IIS, .Net 4, MSSqlServer 2003 setup.
The previous tri-server configuration evolved organically and has a lot of hand-configured pieces that sort-of mesh together but not in any complete way. Plus the deployment story is a bunch of unversioned PowerShell scripts that work most of the time. Same with configuration files, slightly different between production and development (and not in an automatically generated way). Same with logging, monitoring, etc.
I am curious if there is a consensus on how such things should be setup in a convention over configuration way to minimize system administration efforts.
In Ruby world, there seem to be consensus on VM images + Chief/Puppet + GitHub. Or services like EngineYard for external hosting. But I was not able to find similar advice for MS/.Net environment.
I am looking for low-cost solution, not an all-singing all-dancing enterprise software that would be an overkill for 4-6 VMs.