For software targeting Windows and .NET, infrastructure is no longer the bottleneck it once was. VMs can be built and provisioned within minutes, whether we’re using on-premise Hyper-V or VMware, or commodity public cloud such as AWS or Azure. However, Continuous Delivery needs repeatability of infrastructure configuration, which means automation, not point-and-click or manually executed PowerShell commands.
For Windows and .NET, our future-proof infrastructure or platform choices are currently:
VMs running on commodity cloud
Effectively just Microsoft Azure, using features such as Azure Cloud Services
In the future, we will see containerization technologies like Docker for running Windows-specific workloads, but these remain Linux-only at the time of writing. Microsoft is working in partnership with Docker to extend the Docker API to support containers running Windows.
Most organizations that need pools of VMs for testing should use commodity cloud providers like Amazon AWS, Microsoft Azure, ElasticHosts, or Rackspace. The real costs of building and maintaining a self-hosted VM infrastructure (sometimes called “private cloud”) are much higher than most people realize, because many costs (power, cooling, resilience, training, disaster recovery) are hidden. Unless your organization has niche requirements (such as high throughput, low latency, or compliance restrictions), you should plan to use commodity cloud infrastructure. ...