Why Use Commerce Server Staging?

Commerce Server Staging (CSS) provides many benefits for maintaining and updating high-demand Web servers.

Publishing Content

Creating content is only part of the picture. After you create it, you have to publish it to the Web server. This may be as simple as copying the file over in a non-protected small Web shop. However, in a large, secure, operations-based system, you must meet security and accountability requirements for the Web servers.

Working with Live Web Servers

It seems fairly common to find Web servers temporarily under construction or unavailable on the Web as people take them off-line to update the active content. This is unacceptable in services that need high availability and is not a valid option for those that must update regularly.

In order to enable updates to appear as close to atomic as possible and to minimize the time that the server is in an inconsistent state, CSS supports a transaction-based replication method. This method updates the files by using a rename out/rename in operation. This method supports the following:

  • Transmission finishes before any changes are applied.

  • Very fast application of large sets of changes.

  • Because IIS opens the files as read only for shared, rename is enabled when the file is open. The transaction application code supports retry with delay for files which are held busy.

  • Rollback of replications is supported for up to N replications where N is configurable.

  • The ability, by way of an API, for an application to delay the applying of the transactions when it needs a consistent state but still enables the publishing and transmission of the transactions to continue.

Keeping Destination Points In Sync

In a real operations environment, there are many ways that the content on different servers can be out of sync. Replication services that rely only on change notification or operating system attributes have no reasonable mechanism for re-synching without deleting the whole tree and re-copying. In addition, there is more to a file system than only file content. There are directory structures, access information, file date/time information and other attributes that are important to the operation of a Commerce Server site.

When staging Web content in the "Force deployment of all content" staging mode, information about the whole scanned replication set is exchanged with the destination server. This enables a full synchronization of the servers that includes creating and deleting directory structures and deleting files. All file dates and attributes are replicated.

Geographic Distribution

The primary Web site may be in Seattle. However, many of your customers are in Europe. Distributing large binaries over the Internet from one location can slow down network links and cause customer dissatisfaction. By building mirrored servers in remote locations, you can both spread the network load and keep customers happy.

Manageability and Accountability

When a system has many staging levels and lots of activity, it becomes difficult to manage and maintain all aspects of the system. You must make sure that the staging system reports on the replications and notifies operations whether it fails or is successful.

CSS generates reports that contain replication statistics on success or failure. Both CSS servers and projects can be configured to send e-mail notifications. You can configure which events should be logged and which events should cause an e-mail message to be sent. CSS can also generate NT events on replication failures which can be monitored by the operations staff.

Flexibility

Frequently, the data that is being replicated requires that a special action be performed after the data has been delivered. This action may involve calling a third-party application to post-process the data or removing a set of files that are no longer required. Some applications need the ability to freeze the Web server when it is in a consistent state. Other applications need a per-file notification interface.

For those who do not want to program additional functionality in CSS, you can run command scripts at the start or end of a replication. These command scripts can contain batch files, scripts, or any command line executable.

Performance

You may frequently publish lots of content across many local mirrors. This can occur when you release new binaries, replicating large search indexes, adding new servers and sites, and so on.

CSS supports parallel replication to multiple destination points to reduce the overall time that is required to publish large amounts of content.

See Also

Other Resources

How Does Staging Work?

What are the Staging Project Options?

What is Commerce Server Staging?