Special Report: IIS Architecture Overhauled for Reliability in 6.0
- By Scott Bekker
Internet Information Services team rewrote the architecture of IIS for version 6.0 to make the Web server more reliable.
A new kernel mode driver and some other application reliability enhancements are new features of IIS 6.0, the centerpiece of Windows 2002 Beta 2. Microsoft also worked to make the latest version more manageable and scalable.
"In our original design for IIS, we said performance was the No. 1 thing for IIS," said Andrew Cushman, IIS group manager, in a press briefing prior to the Beta 2 release. "We ran everything in process because that's faster."
A major problem of that design was the Microsoft allowed customers to run third-party code in process as well. "That, of course, had dramatic impact on reliability," Cushman said.
The company's subsequent efforts to improve reliability included the IIS Reset tool in IIS 5.0 that shipped with Windows 2000 and out-of-process enhancements.
"But really solving this problem required a fundamental change in our architecture," Cushman said.
What Microsoft came up with was a modular stack. The company divided out the HTTP request listening and responding function into a kernel mode driver called HTTP.SYS.
Applications are now managed by the Web Application Service Manager (WAS), which will restart applications without restarting the whole server.
WAS also makes it possible to run multiple instances of the same application, useful for "application recycling" and scalability.
In application recycling, IIS 6 will create a new instance of the application after a some administrator-set threshold such as a time period or number of hits. The new instance will handle all incoming requests, while the old instance will flush out its queue and turn off.
Unlike with reliable restart feature in IIS 5, there is no interruption in service.
Also, if an application crashes, HTTP.SYS will continue queuing requests for the affected namespace and will demand a restart of the application, again hiding application restarts from users.
Multiple instances of Web applications also plays into Microsoft's scalability improvements for IIS 6. A feature known as Web Gardens creates a virtual Web farm within one physical server. By creating several instances of a Web application and using new processor affinity capabilities within IIS, an administrator could create a Web server where each of eight instances is associated with one processor in an eight-processor system.
An important scalability addition in IIS 6 is the ability to handle more than 3 GB of RAM, the memory limit for Windows NT 4.0. Windows 2000 broke through that limit, but IIS 5 was not capable of following Windows 2000 beyond 3 GB.
Windows 2002 servers are designed to support both 32-bit and 64-bit systems, and IIS 6 will support both as well.
Cushman said hosting 10,000 sites on a single server is the public scalability goal for IIS 6.
"We continue to push to make sure that you can host thousands of sites on a single box," he said.
Microsoft' scale-out or horizontal scaling story will be helped with some of the manageability plans for IIS 6. The Beta 2 IIS 6 includes a XML-based metabase, the repository for configuration information, that opens in Notepad. That metabase replaces a binary file formerly accessible through a COM object or through the Active Directory Services Interface.
"Customers told us that was kind of like black magic to figure out how this was structured, how it worked," Cushman said.
The text-based version can be edited in Notepad and resaved. The changes are reflected without a service restart.
That format allows administrators to create system-wide templates of security or other settings that can be included in a script that grabs the IP address for a new server and puts it online quickly without administrator intervention.
An automatic backup and versioning makes it possible to rollback to a good configuration if bad changes are made to the metabase.
IIS 6 also brings IIS into the command line era, a major push with Windows 2002 that allows "headless" operation.
"You can Telnet into your Windows IIS Server and use command line scripts to administer," Cushman said. – Scott Bekker
More Articles in ENT’s Special Report on Windows 2002 Beta 2:
Microsoft Renames Whistler 'Windows 2002'
Windows 2002 Takes Shape With Beta 2
IIS Architecture Overhauled for Reliability in 6.0
Microsoft Looking to Shift Its Server Mix With Windows 2002
Beta 2 Distribution on a Much Bigger Scale Than Beta 1
Column: Don't Lose Sleep over Windows XP
ENT's Coverage of Microsoft's Beta 1 Release of Whistler
Scott Bekker is editor in chief of Redmond Channel Partner magazine.