FTP Home   WSS Home   Customer Service   Site Map
 

Consolidate Your Web Servers with IIS 6.0
The latest version of IIS is perhaps the best reason to move to Windows Server 2003
by Danielle Ruest and Nelson Ruest

Posted February 12, 2004

For This Solution: Windows Server 2003, all editions, Internet Information Services 6.0, ASP-to-ASP.NET conversion tool, Internet Information Services 6.0 Migration Tool

Sitting on the fence and waiting for others to migrate to Windows Server 2003 first? A conservative approach is often considered the best approach when it comes to upgrades. The customary signal that an operating system is ready for wide deployment is Microsoft's release of the first service pack. This might be changing though. Despite the lack of a service pack for Windows Server 2003, there's evidence Webmasters find it ready for prime time today.

Consider each time you set up a new Web server with Windows 2000 (We won't even discuss Windows NT—you aren't still using this platform for Web servers, are you?): You have to apply a series of different patches and/or service packs before you can even use the server. Although this might become the case with Windows Server in time, it isn't now. Of course, you can slipstream the service packs on Windows 2000, that is, integrate them directly to your installation source code so that you don't need to apply them once Windows 2000 is installed, but this isn't the only reason it isn't as practical as Windows Server 2003 to host Web sites.

One of the greatest areas where Windows 2000 and Windows Server 2003 differ is with Internet Information Services (IIS). As you know, Windows 2000 hosts IIS 5.0 and Windows Server hosts IIS 6.0. The difference between the two lies in the architecture underpinning each. Another significant difference is in the installation; Windows 2000 automatically installs IIS 5.0, whereas in Windows Server 2003 you need to install IIS separately. In addition, the default installation of IIS 5.0 enables everything from Web-based Distributed Authoring and Versioning (WebDAV) to the IIS HTML Administration Tool, whereas the installation of IIS 6.0 doesn't enable any extraneous components (see Figure 1). In IIS 5.0, you need to run the IIS Lockdown Wizard, whereas IIS 6.0 is locked down by default. To further protect your IIS 5.0 server, you need to install URLScan, a utility that, as its name suggests, will scan URLs to verify that they meet defined requirements before passing them on to IIS. In IIS 6.0, URLScan is practically obsolete because IIS manages URLs natively.

There are more reasons why IIS 6.0 is the right choice. It natively supports the .NET Framework because the latter is integrated to the Windows Server 2003 operating system. This means you can migrate all of your applications to ASP.NET to further profit from advanced security features (see the sidebar, "Migrating to IIS 6.0"). IIS 6.0 is faster, leaner, and meaner than any previous version letting you run multiple Web sites on the same server—almost double the number of sites as IIS 5.0 according to some tests—and that includes sites with static or dynamic content. In fact, you can use IIS 6.0 to pool your Web resources and demand more from your servers.

Pool Your Web Resources
IIS 6.0 boasts a brand new application execution architecture that can go a long way toward securing your Web sites from malicious intent and providing greater stability for your Web applications. Windows 2000 and IIS 5.0 included an architecture that provided the potential for compromise. This is because it includes three different application execution modes: In-Process, Pooled Out-of-Process, and Isolated Out-of-Process (see Figure 2).

The first, In-Process, lets applications execute in the same process as the Inetinfo.exe service. This means that if someone can corrupt an application, he or she can potentially corrupt the entire Web service on the server hosting the application.

The second, Pooled Out-of-Process, is the default application mode. Applications using this mode execute in a process that is separate from Inetinfo.exe, but all applications using this mode execute in the same process. This means that if someone corrupts an application, he or she can potentially corrupt all applications running in the pool.

The final mode, Isolated Out-of-Process, provides complete isolation for an application. If someone corrupts an application in this mode, that has no impact on other applications because it operates alone within its own process.

The problem with IIS 5.0 is that few people operated applications in the isolated mode because this mode required more resources than any other. It had a tendency to slow the operation of the entire server. This is one reason why Microsoft modified the architecture in IIS 6.0. Now applications can operate in one of two modes: Worker Process Isolation Mode, which is the default for new installations of Windows Server 2003 (see Figure 3), and IIS 5.0 Isolation Mode (see Figure 4).

Microsoft included the IIS 5.0 Isolation Mode in IIS 6.0 for backward compatibility. You can use this operating mode if your applications are not compatible with IIS 6.0 or require access to the old DLLHost.exe component of IIS 5.0. Operating in this mode gives you access to the three application modes of IIS 5.0—In-Process, Pooled Out-of-Process, and Isolated Out-of-Process—and all the corresponding security risks. This mode is activated by default when you upgrade from either IIS 4.0 or 5.0.

Using the new Worker Process Isolation Mode, you can gain greater reliability and stability for your applications. This application mode gives you access to all of the application support features of IIS 6.0. Each application can use its own pool of resources, making it independent of all others. In addition, applications can be recycled on a regular basis. This means that you can automatically restart applications based on duration of operation, number of requests treated, scheduled times, or memory consumption (see Figure 5). One advantage of this feature is fewer server reboots because the processes are constantly refreshed. Using this mode also means that you can monitor the health of your applications and control their behavior when untoward events occur (see Figure 6). Finally, you can create special application pools, running several applications in a single pool or several instances of the same application in the same pool. In IIS 5.0, the only pool available was for Pooled Out-of-Process applications.

Applications running in worker processes can also run in Web gardens. Although both IIS 5.0 and IIS 6.0 support the concept of a Web farm—a series of identical servers running the same application and communicating through clustering or load balancing services—only IIS 6.0 can support Web gardens. A Web garden is a special application pool that is configured to run multiple worker processes. It is configured by indicating to IIS how many worker processes the application pool can generate (see Figure 7). The advantage of this feature is that multiple instances of the application can respond to requests. HTTP.SYS will automatically redirect requests to the different worker processes in the pool, providing added response for your application. To further improve the performance of Web gardens, you can assign processor affinity for the pool—forcing the application pool to use only specific processors on the server and making sure these processors are reserved for the applications running in the pool.

Why Wait Until Tomorrow?
It goes without saying that you should aim for Worker Process Isolation Mode for all your applications. This might mean that you have to convert your applications to make them completely compatible with IIS 6.0 (see Migrating Applications to IIS 6.0), but the long-term advantage is there. Any applications running in this mode are completely isolated from all others. This is one reason why Microsoft claims you can run Web sites from major competitors on the same box running IIS 6.0 without any impact whatsoever. Does this mean we will one day see the Microsoft Web site running on the same box as Sun Microsystems'? Probably not, despite the new features of IIS 6.0.

Meanwhile, you can take advantage of IIS 6.0 today without having to make major changes to your infrastructure. Windows Server 2003 will run well as a member server in either a Windows NT domain or a Windows 2000 Active Directory. You can also choose between either the Web or standard editions of Windows Server, saving money on licenses without compromising performance. Because all editions of Windows Server include Network Load Balancing, you can even take advantage of this feature to implement Web farms and gain performance. In short, migrating to IIS 6.0 offers many advantages and few disadvantages. For this reason, you should consider IIS a good place to start the migration process to Windows Server 2003.

About the Authors
Danielle Ruest and Nelson Ruest (MCSE, MCT) are book authors focusing on systems design, administration, and management. They run a small consulting company that concentrates on IT infrastructure architecture and change and configuration management. You can reach them at .