Server core, IIS7, things I can't tell you, and why Powershell means you'll still have a job.

[note to self. Work on snappier titles]

Eileen called me from Tech-ed in Florida on Monday and said how Fantastic it all was, and that in the keynote Bob Muglia announced that that IIS 7 would run on Windows 2008 server "core". Mary Jo Foley was one of the first to write it up. Interestingly she also has another post on our "Green Datacenter campaign"

We've been taking some flak about the IIS7 on Core situation. For background IIS 7 needs the .NET framework, and when you choose to install Windows Server in it's "Core" form there's no .NET framework. (In case you weren't aware we will have standard, Enterprise and Datacenter versions of Server each of which can be installed as "Full" or "Core". If you want to switch from one to the other you re-install.). No .NET framework also means no PowerShell on Core installations. The IIS situation Making it worse is some bright spark tried running Apache on core and having no special windows dependencies it works.  Now Apache working isn't a  bad thing - customers using the LAMP stack (Linux, Apache, MySQL, PHP) don't want to switch to an all Microsoft "WISA" one (Windows, IIS, SQL server, ASP) so they can have a "WAMP" stack.

There has been talk of a minimal .NET framework for IIS, but that's not what's been done here. Over on the IIS.net blog Bill Staples writes "Currently the .NET Framework is not on Server Core, which means ASP.NET is currently not available. This is something the .NET team wants to add and we're working on adding it as soon as possible. Classic ASP works just fine, and with the new FastCGI support, PHP also runs great on Server Core.".

So the question that will naturally get asked is when will we be able to get this ?  The smart money is on it being in an the interim post-beta 3 build of Server 2008 before we get to RC-1. I've been told what the planned date for the first of these is, but plans change so I'm going to leave it to the product group to make the announcement. The intervals between builds won't be any surprise if you remember what the intervals were for these builds with Vista.

It's pretty clear that not everyone gets the idea of server core. I recently shared the stage at a partner event with an interesting chap from Intel, he was talking about the changes that multi-core chips bring and one of those was the drive to consolidate work loads - instead of workload=physical server, a workload might be a virtual machine, and he saw Server Core VMs as a great idea. He also made a throw away comment along the lines of "People don't want to hear about "Green" datacentrers - but they're very keen to hear about "energy efficient" ones. There seem to be two very distinct camps on server core

  • "Why would I want a Windows server without a GUI ?"
  • "If my servers are in a 'lights out' data-center, why do they need a GUI ?" / "Does each virtual workload need to implement its own GUI".

The data-center with a common workload running on a farm of servers is the natural place for core. IIS 7 farms can share a single configuration - reducing management and improving consistency. No one wants to repeat the tasks on each server - and nor do they want to go the servers and fire up CMD or PowerShell - hence it's not that serious that Powershell doesn't run on Core : ideally ALL management of core is remote either a GUI program on an administrators workstation or a script to carry out repeated tasks. Without scripting every task is a one off task. . If you read my infrastructure optimization pop quiz  one of my measures for testing dynamic / standardized / basic was "Frequent tasks here rely on... an Automated process / a checklist / Me" and the message. If every task is a one off task you're not optimized.   The corollary is obvious you can't optimize your operations without scripting.

I was skimming I've found some interesting links on the PowerShell Guy's blog , including one by Don Jones called "Do you get it" . I've got Don's book from the Microsoft library - which seems to have been done without the help of a proof-reader. Don takes issue with something Michael at 4Sysops.com said: the key bit for me is:

I think that Windows doesn’t really need a powerful command shell because it has very powerful GUI tools.

Powerful GUI tools are fantastic for one off tasks. But if you want to get of the bottom rung of the optimization ladder you need to move beyond one off tasks. Michael asks why you use get-process | ForEach-Object { write-host $_.ProcessName $_.CPU}   instead of launching task manager.  I wouldn't do it ... unless I wanted to know how much CPU time a my database process used each day for a month.  

 

Technorati tags: Microsoft, longhorn, server 2008, Core, IIS, Powershell