Keeping Web Site Servers in Sync
Keeping Web sites in sync across multiple servers in a clustered environment has never been an easy task. Not only do you need to keep content and Web pages in sync, server settings need to be maintained as well. The Archive and Deploy capabilities in ColdFusion MX provide improved Web site maintenance. We will discuss this functionality along with some other options in the following section.
What to Maintain?
When you are attempting to maintain your Web site across multiple servers, what do you need to maintain? This is sometimes a tough question to answer if you are not solely responsible for all of the Web servers, their operating systems, and Web applications. Typically these responsibilities are shared between several individuals, each with their own methods for maintaining settings. You might want to consider these settings when you're attempting to keep your Web site servers in sync:
Operating system and Web server software updates, service packs, security patches, and hot fixes.
Operating system configuration settings for services, registry, installed software, mappings, and so on.
Web server configuration settings, including virtual path mappings, security settings, Web site configurations, and other Web server settings.
JDBC and database settings.
ColdFusion MX administrator settings.
HTML pages and images and CFML pages, and so on.
Keeping up with all of these different sets of configurations can be a gargantuan task requiring patience and attention to detail. There are several methods for performing these functions, but no one method performs all of them by itself. You may want to employ a combination of techniques for deploying and maintaining your clustered server farm. Here is a partial list of options:
FTP. Copy files and directory structures from server to server. Disadvantages: Not automated, requires separate connections to each server, and only covers files and directories.
Deployment Software. Purchase software that performs automated copying of files, directories, and other settings. Disadvantages: Might not offer all functionality required. Roll You Own. Create your own program that gathers all required information and deploys to the cluster. Disadvantages: Requires time to write and test code. May not offer all functionality required.
ColdFusion MX Archive and Deploy. Built into ColdFusion MX and is an easy method for deploying your Web site directories, content, and ColdFusion Administrator settings.
Archive and Deploy
Macromedia introduced Archive and Deploy in ColdFusion 5.0. It's an effective option that is built using Java technology, and it's quick and easy to set up. You archive ColdFusion settings and include Web application files and directories in your archive. Using the ColdFusion Administrator, you can schedule your deployment or manually deploy the archive.
Building an Archive
The archive features are available under the Server Settings menu in ColdFusion MX Administrator. To create a new archive, follow these steps:
In ColdFusion Administrator, select Archive and Deployment. In the Archive and Deployment management screen (see Figure 3.5), verify the working directory in which temporary files associated with the archival process will be stored. Be sure that sufficient disk space is available and that ColdFusion has the privileges required to write to that directory.
Input the archive's name and click Create. The Archive Wizard window opens. Here you can set files and directories, server settings, data sources, and other ColdFusion server settings.
Click on an item from the Archive Information menu to change settings for selecting files and directories to deploy (see Figure 3.6). Notice that the root directory for the Web site is selected and the custom tags directory for selecting data sources to deploy (see Figure 3.7). For those of us that are forgetful, you can create messages for before deployment and after deployment as well.
Figure 3.6 Associated files and directories.
Figure 3.7 Data sources to deploy.
Review the archive and deployment settings by clicking on Archive Settings. When you're finished, close the window.
Click the Build Archive button next to your new archive. The Build CAR File Archive Summary window opens (see Figure 3.8). Review your settings and click Next.
- Choose an archive file location and click Next (see Figure
Figure 3.9 Choose archive file location.
Your archive and deployment file will be built. When it is complete a message will appear indicating the status of the build. You can also review build steps in detail (see Figure 3.10).
Figure 3.10 Build CAR File ArchiveBuild Status.
Figure 3.5 The Archive and Deployment screen.
Figure 3.8 Build CAR File Archive Summary.
After you have created the archive, redeploying the archive to the original server, or to another destination server, is easy. Use the Deploy an Existing Archive option under Archives and Deployment in the ColdFusion MX Administrator.
Browse the server for the deployment CAR file and click Deploy (see Figure 3.11).
Figure 3.11 Deploy an existing archive.
Review your deployment settings and click Next (see Figure 3.12).
Figure 3.12 Review your Archive Summary.
Review your deployment locations and note the to do message at the top of the window. Click Next to deploy (see Figure 3.13).
Figure 3.13 Deploy Location window.
After deployment completes you will see a status message indicating success or failure. You can also review deployment steps (see Figure 3.14).
Figure 3.14 Deployment status.
Many other options exist for deploying applications and copying files. None of these options will deploy ColdFusion MX administrator settings, but they can deploy other information to your Web servers. Options include source control software like Visual Source Safe from Microsoft. Visual Source Safe can deploy files and directories to servers by pulling the latest version from its database and copying to a working directory.
Other software, such as Robocopy, from the Microsoft Windows Resource Kit, can copy files and directories utilizing scripts. Using Robocopy is as simple as invoking it from the command line, specifying a target and source directory, and pressing Enter. Robocopy also supplies several useful command-line attributes that enable you to customize your replication system as you see fit. Robo-copy enables you to use UNCs so you can access content on NT servers across a network. After you determine your content-replication scheme, simply put your Robocopy command in a CMD file somewhere in the system path and trigger it with the Windows 2000 Task Scheduler Utility.
Mirroring software like Symantec's Ghost will create an exact image of your server and allow you to copy this image onto another server. This provides a complete solution for creating an exact copy of each server in your environment.
Setting up a dedicated file system on a back-end machine that contains your entire Web site is another alternative for synchronizing content. You would point the roots of each machine's Web server at that shared volume. If you have a fast network, and the dedicated file system is highly optimized and reliable, this option can be efficient. You don't need to worry about sending copies of each file to each server. One risk, though, is that the file system will receive a huge amount of load, and it will become a single point of failure. Consider setting up a redundant clustered file system in case you suffer an extremely rare event, such as a controller card failure. The major disadvantage of this approach is that accessing files over the network is always slower than accessing a drive on the same machine. You also have to worry about network collisions due to the high network traffic to this single file system.
While there are many solutions for deploying your Web site to multiple servers, none of them are complete solutions and some will not run in environments other than Windows. There are several solutions for maintaining files and directories, but none of the options we discussed offer methods for keeping your operating systems and Web servers in sync, excluding Symantec's Ghost. ColdFusion MX's Archive and Deployment options provide a robust solution for synchronizing you ColdFusion environment in any server environment that ColdFusion MX supports. This is a viable solution for the ColdFusion developer.