There are many potential flavors and permutations of configuring Commerce Server to run in multiple environments. For the purposes of this discussion, it is assumed that the following actual environments will be utilized for the sake of bounding the problem:

1. Live Web Site – This is where customers access the site to purchase merchandize over the Internet.

2. Staging Site – This is where the next version of content for the live site is kept and validated for quality purposes.

3. Content Production – This is where business users make changes and preview them. There may be multiple versions of this environment based upon brands, seasonal merchandizing policies, etc. Creative look-and-feel changes will typically occur here.

4. Code Development – This is where developers make functional changes to the Commerce Server application.

5. Code Testing – This is where testers validate functional changes made by developers.

In terms of aligning to prescribed product deployment topologies:

· The Live and Staging and Content Production sites correspond to the prescribed Enterprise Deployment in the core product documentation

· The Code Development and Testing sites correspond to the Development Environment deployment in the core product documentation

From a physical deployment perspective, this can be enumerated as:

· Web Tier – machines that are directly connected to the Internet (via a firewall)

· Data Tier – machines one layer removed from the Internet that provide data processing capabilities

· Corporate Tier – Machines residing at corporate headquarters for internal business management functions.

Each of these shall now be examined in requisite detail.

The Web Tier
Overview

The Web Tier handles front-end user experience and transaction processing. It is scaled horizontally based on transaction volume. Depending upon the number of transactions, this tier can get extremely large – spanning potentially into dozens of servers or more. Depending upon whether or not a content delivery network such as Akamai is utilized, this may be scaled out accordingly beyond the bounds of a single data center. This environment represents the Internet-facing portion of the Live Site.

Virtualization Considerations

Given the rigorous performance and scale requirements, it does not typically make sense to consider virtualization for the Web Tier.

Software Considerations

The following software considerations should be taken into account:

· Operating Systems – The Web servers can leverage the base editions of Windows Server, such as Standard Edition or Web Edition. Domain controllers must utilize at least Standard Edition.

· Commerce Server – Enterprise Edition must be utilized.

· SharePoint – MOSS should be utilized given Web farm support. 

· Operations Manager – Any version supported by the base platforms can be chosen.

Directory Configuration

It is assumed that Active Directory will be utilized, with a trust relationship to the Data Tier.

Server Configurations

This environment will leverage the following servers:

· 2 Active Directory Domain Controllers

· 2 or more Web Servers based upon transaction volume

· 1-2 Operations Manager servers (depending upon the level of redundancy desired)

Hardware Considerations

In this configuration, there are quite a few hardware considerations that one must examine:

· Firewall

o A firewall should be installed between the front-end Web servers and the Internet.

o A second firewall should be installed between the Web Tier and the Data Tier.

o Firewalls should be redundant to prevent single points of failure.

· Load Balancer

o Redundant hardware load balancers should be utilized. The scale of this type of environment precludes Windows Server’s Network Load Balancing feature from being a practical solution.

· Network

o For the Web Servers, it makes the most sense to have these be dual-homed, with one NIC pointing to the Internet and the other pointing to the Data Tier.

o Care must be taken to ensure that sufficient bandwidth exists between the Web servers and the Data Tier.

· Server Hardware

o Dual socket Web servers typically provide the best mix of price versus performance given the overall linear scalability of Microsoft’s Web platform. (For example, four dual socket Web servers will perform better than a single eight socket Web server in almost all instances.)

Database Considerations

As there are no SQL Servers in the Web tier, there are no data-specific considerations.

The Data Tier
Overview

The Data Tier provides several functions in the overall deployment and serves as the central nervous system of the entire e-commerce ecosystem within the organization. Some of its purposes include:

· Providing data storage for the Web Tier

· Providing a staging environment for data transfer from the Corporate Tier and previewing it before putting it into production

· Data interchange with line-of-business systems

· Web analytics

It corresponds to the non-Internet-facing portion of the Live Site plus the Staging Site.

Virtualization Considerations

Given the rigorous performance and scale requirements, it does not make sense to consider virtualization for the Data Tier.

Software Considerations

The following software considerations should be taken into account:

· Operating Systems – Active Directory domain controllers will need to utilize at least Standard Edition of Windows Server. Commerce Server Web servers can use either the Standard or Web Editions of Windows Server. Database and BizTalk Servers will need to leverage clustering-enabled versions of Windows Server, such as Enterprise or Data Center Edition.

· Commerce Server – Enterprise Edition must be utilized.

· SharePoint – MOSS must be utilized.

· Operations Manager – Any version supported by the base platforms can be chosen.

· SQL Server – Clustering-enabled versions of SQL Server must be utilized.

· BizTalk Server – Clustering-enabled versions of SQL Server must be utilized.

Directory Configuration

It is assumed that Active Directory will be utilized, with multiple trust relationships:

· Trust with the Web Tier

· Trust with the Corporate Tier

These should be one way trusts for maximum security.

Server Configurations

This environment will leverage the following servers:

· 2 Active Directory Domain Controllers

· 1-2 Operations Manager servers (depending upon the level of redundancy desired)

· Two 2-node clusters running SQL Server for the live site’s databases

· At least 2 Web servers for running the Web Services (for emergency data changes on the live site itself and to support the BizTalk adapters in Commerce Server 2007)

· At least 2 Web servers for staging and running the Web Services (for data changes inside of the staging environment)

· A 2-node cluster running SQL Server for the staging site’s databases

· A 2-node SQL cluster and 2-node BizTalk cluster for data interchange with the live site. This may need to be scaled further based upon data volumes being processed through BizTalk.

· An environment for running the Commerce Server Data Warehouse (if desired), which would entail:

o 1 server for log collection and importation

o 1 server for SQL Analysis Services

o 1 server for SQL Reporting Services

Hardware Considerations

In this configuration, there are quite a few hardware considerations that one must examine:

· Firewall

o A firewall should be installed between the Web Tier and the Data Tier

o A second firewall should be installed between the Data Tier and the Corporate Tier

o Firewalls should be made redundant to eliminate single points of failure

· Load Balancers

o In this environment, hardware load balancers for the Web Servers are not strictly necessary and the Network Load Balancing feature of Windows Server could suffice. However, redundant hardware load balancers will always provide better and more reliable performance.

· Network

o Care must be taken to ensure that sufficient bandwidth exists between the Web Tier and the database servers. Likewise, other infrastructure servers speaking to the database server must also have sufficient bandwidth. This may require multi-homing and network segmentation.

· Clustering-aware Hardware

o Both the SQL Server and BizTalk Server configurations must support Windows Server’s clustering capabilities.

· Server Hardware

o Dual socket Web servers typically provide the best mix of price versus performance given the overall linear scalability of Microsoft’s Web platform. (For example, four dual socket Web servers will perform better than a single eight socket Web server in almost all instances.)

o Database and BizTalk servers should be based upon projected performance/scale – in some cases this may need to be sized to be very large scale (e.g. – 8-64+ socket servers).

o Storage Area Networks (SANs) will provide the best performance for the SQL database servers

Database Considerations

To provide maximal performance, two Active/Active clusters should be utilized for the database servers supporting the main site:

Cluster Node

Cluster 1

Cluster 2

Node 1

· MSCS_Admin

· Profiles

· Catalog (with Inventory included)

Node 2

· Transactions and TransactionConfig

· Marketing

This configuration will provide the best use of hardware and logical superstation of data storage based upon query behavior and joins.

For the staging environment’s 2-node SQL cluster, the following configuration will provide the best performance:

Server 1

Server 2

· MSCS_Admin

· Profiles

· Transactions and TransactionConfig

· Catalog (with Inventory included)

· Marketing

Given that this is a controlled, dedicated environment, it is assumed that Active Directory and Windows Authentication for SQL Server are in use.

The Corporate Tier
Overview

The Corporate Tier is where all business functions occur, including:

· Code Development

· Code Testing

· Content Production , involving creative changes (look-and-feel, page styles, etc.) as well as business data changes (prices, promotions, etc.).

Tying back to the prescribed Commerce Server deployment topologies, it mixes part of the Enterprise Deployment with the Development Environments as specified in the Commerce Server product documentation.

Virtualization Considerations

Given that the corporate tier represents internal business functions that are not subject to the rigors of performance and scale of a live site – unless an extremely large number of business users are involved – it may make sense to selectively run parts of the Corporate Tier under virtual servers. It is assumed, however, that the minimum break-out of servers described herein is still maintained – regardless of whether they are implemented on physical or virtual hardware.

Software Considerations

The following software considerations should be taken into account:

· Operating Systems – Active Directory domain controllers will need to utilize at least Standard Edition of Windows Server. Commerce Server Web servers can use either the Standard or Web Editions of Windows Server. Database and BizTalk Servers will need to leverage clustering-enabled versions of Windows Server, such as Enterprise or Data Center Edition – where appropriate.

· Commerce Server – Enterprise Edition must be utilized for all aspects of content management and integration testing.

· SharePoint – MOSS must be utilized such that Content Deployment can be used for moving content to production. 

· Operations Manager – Any version supported by the base platforms can be chosen.

· SQL Server – Clustering-enabled versions of SQL Server should be utilized.

· BizTalk – Enterprise Edition, to support clustering.

MSDN licenses should be considered for Code Development and Testing to save on software license costs. However, anything that is utilized for ANYTHING other than code development or testing (such as content management, business data editing, look-and-feel changes, etc.) need full commercial licenses to be legal.

Directory Configuration

It is assumed that Active Directory will be utilized, with a trust relationship to the Data Tier.

Server Configurations

This environment will leverage the following servers:

· At least 2 Active Directory domain controllers, though this function is usually accounted for by the internal corporate Active Directory structure

· For the Content Development environment:

o At least 2 Web Servers, running both the site and the Web Services for supporting the business user management tools – this will need to be scaled based upon the number of

o At least a 2-node SQL cluster should be utilized to provide redundancy

· For the Code Development environment:

o At least 1 Web Server and SQL Server that can support integrating the results of the internal development team together into a single environment

o Single-box deployment configurations for developer desktops

o Other hardware as appropriate to support the development environment tools being utilized, such as Microsoft Visual Studio Team System (VSTS)

· For the Code Testing environment:

o A subset of the Web and Data Tier environments that can reasonably approximate the performance characteristics (in an extrapolated manner when utilizing a methodology for Web performance testing such as Transactional Cost Analysis) of the actual environment

o At minimum this would probably include:

§ 2-4++ Web Servers to simulate the live site

§ At least 2 Web servers to simulate the Web services and staging

§ 2 SQL clusters

§ A BizTalk cluster

§ A load testing tool and enough supporting hardware to simulate real-world performance scenarios

Hardware Considerations

For the Corporate Tier, the following hardware considerations should be made:

· Firewall

o A firewall should be installed between the Data Tier and the Corporate Tier

o Firewalls should be made redundant to eliminate single points of failure

o Code testing environments may want to utilize firewalls for testing purposes to ensure that there are no performance bottlenecks caused by the firewall hardware

· Load Balancers

o In this environment, hardware load balancers for the Web Servers are not strictly necessary and the Network Load Balancing feature of Windows Server could suffice. However, redundant hardware load balancers will always provide better and more reliable performance.

o Code testing environments should utilize similar hardware load balancers as the production environment to provide like-for-like performance results

· Network

o The code testing environment should probably be segregated into its own network, as performance testing is extremely bandwidth-intensive and could cause severe disruption on a network shared with other users

· Clustering-aware Hardware

o The Content Development environment should utilize clustering-aware hardware for redundancy’s sake, to prevent downtime to business users

o The Code Testing environment should approximate the live Web Tier and Data Tier configurations to provide for comparable results when testing

· Server Hardware

o Dual socket servers should suffice for Content Development and Code Development environments

o The Code Testing environment should approximate the actual live production environment

Database Considerations

For the Content Development environment, as a 2-node SQL cluster is recommended the standard configuration should be utilized:

Server 1

Server 2

· MSCS_Admin

· Profiles

· Transactions and TransactionConfig

· Catalog (with Inventory included)

· Marketing

For the Code Development environment, as single servers could be utilized, the only guiding principle should be to separate Commerce Server resources into their own databases.

For the Code Testing environment, it should mirror production to provide accurate performance analysis results.