Microsoft Makes Case for Upgrading to IIS 8.0
Microsoft's Scott Guthrie highlighted several improvements to Internet Information Service 8.0 Web server role that make it a "no brainer" upgrade. Scott Guthrie, the corporate vice president of Microsoft's Server and Tools Business, offered the high-level overview of IIS 8.0, amid technical demonstrations during an August 8 Webinar attended by members of the press. Microsoft mostly contrasted its own IIS 8.0 on Windows Server 2012 vs. the IIS 7.5 Web server role running on Windows Server 2008 R2 during the presentation.
Microsoft's chief competition in the Web server world is Linux and Unix, with Apache-based Web servers currently dominating the field. A July survey of 665 million sites conducted by Netcraft, a Bath, U.K.-based Internet service provider, found global Apache Web server role use leading at 61 percent. Distantly following were Microsoft Web server roles (14.6 percent), nginx server roles (11 percent) and Google Web server roles (three percent).
Despite those considerations, the press demo focused on Microsoft's improvements over its own IIS 7.5 product, particularly for organizations managing multiple Web servers or big server farms. Guthrie associated IIS 8.0's advancements with other improvements in Microsoft technologies, such as the scalability capabilities of Windows Server 2012 and Microsoft's Windows Azure public cloud service, as well as architectural improvements in the .NET Framework 4.5. Microsoft is releasing Windows Server 2012 with .NET Framework 4.5 included by default.
"One of the things we've tried to do is build Windows Server 2012 in parallel with Windows Azure," Guthrie said. "And the need to kind of scale a cloud service that has hundreds of thousands of servers that we manage and that store petabytes of storage and have literally tens of millions of cores or hundreds of millions of cores now…that's kind of really driven a bunch of requirements and a bunch of improvements into our core Windows Server 2012 product. I think a lot of people that have played with it and tried it out and kicked the tires on it have kind of noticed that this thing is a lot faster, a lot more manageable, a lot more scalable and a lot more robust."
Guthrie suggested that Microsoft has equally focused on enabling scalability at the application level with .NET Framework 4.5. The framework supports server-based data consumption technologies via REST and JSON APIs, along with HTML 5 technologies. Support for asynchronous programming techniques allows server apps to be built that are more scalable, he added.
Improvements in IIS 8.0
Microsoft previously described its IIS 8.0 improvements in early March, and not much has changed since that time. The final Windows Server 2012 product is scheduled for general availability on September 4.
Here are those IIS 8.0 improvements in a nutshell, with a list available in this TechNet library article. Microsoft introduced new CPU throttling capabilities in IIS 8.0, adding two options. One option is called "Throttle," where users can specify CPU load percentages; the other is called "ThrottleUnderLoad," which automatically assesses available CPU resources in determining the load. IIS 8.0 also has scalability benefits derived from supporting non-uniform memory access (NUMA) hardware. Another new feature is a centralized certificate store that facilitates certificate updating by IT pros. The centralized certificate store also adds speed improvements when turning on Web sites.
On the security side, Microsoft added dynamic IP restrictions, as well as an improved clamp-down process on FTP log-on attempts that doesn't shut out legitimate users so readily. In addition, a server name indication (SNI) capability was added to IIS 8.0 that's designed to allow hosted headers and Secure Sockets Layer (SSL) certificates to share the same IP address.
As an illustration of IIS 8.0's improved scalability benefits, Won Yoo, a principal program manager lead on IIS at Microsoft, demonstrated Microsoft's application request router (ARR) extension technology. The demo compared memory resource consumption on two sites within a server farm.
"ARR has a feature, especially in a multitenant environment, that has the capability to increment host headers and be able to route and affinitize the site to the specific machine behind the farm," Yoo explained. He added that this approach can be used to localize and isolate the resource consumption by the tenant, which can be leveraged to achieve better scale-out performance in multitenant environments. His test example used a 3,400-server farm.
Yoo ran 20 get-requests to start Web sites on two servers, one running IIS 8.0 on Windows Server 2012 while the other ran IIS 7.5 on Windows Server 2008 R2. The server running IIS 7.5 consumed 410 MB of memory during this process compared with 330 MB for IIS 8.0. On top of this memory consumption improvement, the demo showed that Windows Server 2008 R2 with IIS 7.5 was 10 times slower in loading requests to start Web sites than IIS 8.0.
Microsoft has been working to improve SSL certificate handling. A second demo by Yoo showed how IIS 8.0 can save IT pros some time by means of its centralized file share for storing certificates. His example was 500 sites provisioned for SSL certificates using IIS 7.5. He sent a single get-request to start one Web site among the 500 sites, which requires loading all 500 certificates under IIS 7.5. He contrasted that example with running a get-request to start one site among 10,000 sites running IIS 8.0 using the centralized file store for certificates. The upshot of the demo was that sending one get-request took just 340 milliseconds on IIS 8.0 compared with 11 seconds on IIS 7.5. The speed improvement is due to the mapping enabled by the certificate file store, which supports one IP address for multiple sites.
"From a management perspective, I can just have one IP address despite the fact that I have 10,000 sites provisioned on IIS 8, as opposed to under the R2 system I actually have to have 500 unique IP addresses for each of 500 Web sites that I have on R2," Yoo explained.
It's also easier to find and update expired certificates on IIS 8.0. IT pros can organize certificates within the file share, sorting them by expiration date. After that step, they can copy and replace the certificates that have expired. Adding new machines to a server farm is easy and "takes a matter of seconds" by simply pointing them to the certificate file share and creating one SSL binding, Yoo explained.
Scalability at the App Level
Microsoft also made the case for programmers optimizing the use of multicore servers by using async programming techniques enabled by the Microsoft .NET Framework 4.5. Scott Hunter, a principal program manager lead on the ASP.NET team at Microsoft, demonstrated a JQuery Mobile emulator, which lets developers emulate aspects of an iPhone, letting them see "all of things you find in an MVC [model view controller] app." It's a tool for Web app developers wanting to optimize both desktop and mobile experiences.
Hunter said that it is easy to build asynchronous code by tapping the .NET Framework 4.5's async features. Without writing any call backs or changing much code, it's possible to improve the return time of a Web app. The demo showed a Web app returning in 1.13 seconds using async technology vs. 2 seconds without it.
"One of the ways to make Web APIs, or Web apps, scalable is to make them async," Hunter explained. "Today, if you are calling a Web server, it has a limited number of threads that can actually call and respond to things. And so, in the async world, what happens is a response comes in, and once the async step comes back we'll give the thread back to the Web server so it can handle other requests, and we'll go run those tasks in the background."