In the Commerce Server product documentation, several baseline deployment configurations are covered in extreme detail. In practicality, this is only of partial use – as these configurations are extremely generic and do not map back to particular real world problems and scenarios. Looking at Commerce Server at a high-level – several real-world deployment scenarios immediately come to mind – in order of least complex to most complex…
The Standalone User
For various reasons, people may want to run Commerce Server entirely standalone. This would typically be for development or demonstration purposes and typically leverage a single piece of hardware. Often times, this type of environment must co-exist with other desktop applications – as it is indeed often running on a desktop.
The Dedicated Server
Within the space of Internet hosting, it is often times very economical to lease a dedicated server – sometimes for as little as under $50 per month. This can represent a valid and often overlooked utilization of Commerce Server and allow the technology to be leveraged economically for small-scale e-commerce operations.
The Single Environment Web Farm
Medium sized organizations often times deploy Commerce Server in a single Web farm with some distribution of function – for both performance and redundancy purposes. (Yet the entire deployment can still run on a small enough number of machines as to match up with fingers on a hand.)
The Multi-Environment Web Farm
Larger organizations often times deploy Commerce Server across multiple Web farms, each one serving a different purpose with only one actually processing transactions from live customers. The other Web farms are often utilized for the purposes of dedicating hardware to other functions such as code development, code testing, data entry of business data, and validation of business data.
Shared Hosting of Commerce Server
Although it is desired, this is not a practical configuration. For shared hosting to be effective, customers cannot impact each other from a software perspective even if they are utilizing the same hardware. From a .NET application perspective, this requires that Medium/Partial Trust be utilized. Given the amount of unmanaged code in Commerce Server and the fact that Web service calls may need to be made for payment processing – Medium/Partial trust cannot be utilized.
For hosting providers looking to offer Commerce Server hosting, it would be better to offer low-end hardware in a dedicated capacity or to provide virtual environments leveraging Virtual Server, Windows Server 2008 Hyper-V, or a 3rd party operating system virtualization solution such as VMWare. Commerce Server has not been tested with application-level virtualization solutions such as SWSoft’s Virtuozzo. Though it may in fact work, utilizing something like Virtuozzo may lead to unpredictable results and lack of support from Microsoft.