Lately there has been a great deal of discussion about WS2008 Core amongst the Web Platform Architect Evangelists and several of the great people in the IIS and Commerce/Hosting product teams. Ever since I first learned of LongHorn Core (now Windows Server 2008 Core), I was very excited about the possibilities that such a concept presented in a web hosting scenario.


For any not familiar with Server Core, it is designed to be minimal environment, or in other words, only running exactly what is needed in order to support a specified server function. One of the most visible manifestations of this concept shows itself in the lack of a Graphical User Interface. If you log into a Server Core box, your session will just look like a command prompt. Beyond the lack of a GUI, the minimalist approach of Server Core limits installed binaries to only the subset of the binaries that are required by the supported server roles. Sound familiar to anyone?


My question is, why do you really need a GUI for a web server? Apart from a manual initial configuration, how often do you really need the GUI elements to manage your web server? And even then, it is so easy to automate a build/install of a server, you shouldn't even need a GUI for that. Most people use some kind of web-based control panel anyway, by which the GUI portions of administrations are accomplished via a web site. In my opinion, that is where the GUI belongs, on the Web. Most administrative tasks that you want to do should be programatic, scripted, and automated. In my years of running and administering Unix and Linux-based web servers, I can honestly tell you that I never once used a console/terminal based GUI to manage anything about that environment. I'm glad that Microsoft has finally created a product that fits this model.




You see, the current thinking for Server Core is that it will only support specific, pre-defined, server roles. While there are a variety of roles that can be utilized, there are a number of scenarios that aren't supported in server core. For example, as of today, you can implement Server Core with a Web Server role (IIS). Unfortunately not all of the features of IIS are supported on Server Core. Most prominent among these unsupported features is the .Net CLR. Whoops!


There have been many among the IIS product team and hosting focused folks at Microsoft that have been pushing hard to have this fixed. I can't say for sure that we'll be successful, but I have good hopes here :) As I've had some interesting internal discussions about how something like the .Net CLR could be left out of Server Core, I've certainly made my opinion about the matter known. Now I'm sharing it with you, my readers so that I can garner your comments on this matter. I am one voice, but I hope that I can hear from those of you who feel similarly so that we can really draw attention to the importance of this.


Basically, my opinion is that if Server Core is truly a minimalistic install, it should support ANY role that can be run independently of a GUI. A GUI should depend on the platform, not the other way around. There isn't any reason that something running on a server should require a graphic interface to configure something. As long as there is an API or script-based way to accomplish a task, I should be able to push the administration for such a service to a centralized, off-server approach that wouldn't require any type of GUI-based shell on the server itself.


Don't get me wrong, I'm not a pessimist. I believe that we'll get there some day. But we need to broaden the definition of Server Core.


I'm really curious what you think. Here is a list of all of the supported roles for Server Core as of today. Check it here to see updates.


Active Directory Domain Services

Active Directory Lightweight Directory Services (AD LDS)

Dynamic Host Configuration Protocol (DHCP) Server

DNS Server

File Services

Print Server

Streaming Media Services

Web Server (IIS)

The following optional features are also supported:

Microsoft Failover Cluster

Network Load Balancing

Subsystem for UNIX-based Applications

Windows Backup

Multipath I/O

Removable Storage Management

Windows Bitlocker Drive Encryption

Simple Network Management Protocol (SNMP)

Windows Internet Naming Service (WINS)

Telnet client

Quality of Service (QoS)


So my question to you all is this. What is missing from this list? Are there any other glaring holes that will affect the hosting industry?